mirror of
https://github.com/mastodon/mastodon.git
synced 2025-05-12 04:31:11 +00:00
59 lines
1.3 KiB
TypeScript
59 lines
1.3 KiB
TypeScript
/// <reference types="vitest" />
|
|
|
|
import fs from 'fs';
|
|
import path from 'path';
|
|
|
|
import react from '@vitejs/plugin-react';
|
|
import RailsPlugin from 'vite-plugin-rails';
|
|
import svgr from 'vite-plugin-svgr';
|
|
import { defineConfig, configDefaults } from 'vitest/config';
|
|
|
|
const sourceCodeDir = 'app/javascript';
|
|
const items = fs.readdirSync(sourceCodeDir);
|
|
const directories = items.filter((item) =>
|
|
fs.lstatSync(path.join(sourceCodeDir, item)).isDirectory(),
|
|
);
|
|
const aliasesFromJavascriptRoot: Record<string, string> = {};
|
|
directories.forEach((directory) => {
|
|
aliasesFromJavascriptRoot[directory] = path.resolve(
|
|
__dirname,
|
|
sourceCodeDir,
|
|
directory,
|
|
);
|
|
});
|
|
|
|
export default defineConfig({
|
|
resolve: {
|
|
alias: {
|
|
...aliasesFromJavascriptRoot,
|
|
},
|
|
},
|
|
plugins: [
|
|
RailsPlugin(),
|
|
react({
|
|
include: ['**/*.jsx', '**/*.tsx'],
|
|
babel: {
|
|
plugins: ['formatjs', 'preval', 'transform-react-remove-prop-types'],
|
|
},
|
|
}),
|
|
svgr(),
|
|
],
|
|
test: {
|
|
environment: 'jsdom',
|
|
include: [
|
|
...configDefaults.include,
|
|
'**/__tests__/**/*.{js,mjs,cjs,ts,mts,cts,jsx,tsx}',
|
|
],
|
|
exclude: [
|
|
...configDefaults.exclude,
|
|
'**/node_modules/**',
|
|
'vendor/**',
|
|
'config/**',
|
|
'log/**',
|
|
'public/**',
|
|
'tmp/**',
|
|
],
|
|
globals: true,
|
|
},
|
|
});
|