This commit is contained in:
Alex
2024-08-02 23:04:37 -04:00
parent ba20685f2e
commit e5546e21ad
9 changed files with 110 additions and 26 deletions

View File

@ -6,39 +6,48 @@ import { tailwind } from './presets/tailwind';
import { reactQuery } from './presets/misc';
import { testingLibrary } from './presets/testing-library';
const middlewares = {
react,
reactRefresh,
tailwind,
storybook,
reactQuery,
testingLibrary,
};
export const envs: {
dependency: string;
eslintPlugin?: string;
middleware: Middleware;
middleware: keyof typeof middlewares;
}[] = [
{
dependency: 'react',
middleware: react,
middleware: 'react',
},
{
dependency: '@vitejs/plugin-react',
eslintPlugin: 'eslint-plugin-react-refresh',
middleware: reactRefresh,
middleware: 'reactRefresh',
},
{
dependency: 'tailwindcss',
eslintPlugin: 'eslint-plugin-tailwindcss',
middleware: tailwind,
middleware: 'tailwind',
},
{
dependency: 'storybook',
eslintPlugin: 'eslint-plugin-storybook',
middleware: storybook,
middleware: 'storybook',
},
{
dependency: '@tanstack/react-query',
eslintPlugin: '@tanstack/eslint-plugin-query',
middleware: reactQuery,
middleware: 'reactQuery',
},
{
dependency: '@testing-library/react',
eslintPlugin: 'eslint-plugin-testing-library',
middleware: testingLibrary,
middleware: 'testingLibrary',
},
];
@ -64,7 +73,7 @@ export function* checkEnv(): Generator<Middleware> {
for (const { dependency, eslintPlugin, middleware } of envs) {
if (deps.has(dependency) && (!eslintPlugin || deps.has(eslintPlugin))) {
yield middleware;
yield middlewares[middleware];
}
}
}

View File

@ -135,7 +135,7 @@ interface MiddlewareFunctions {
*/
export function extendConfig(
of: InputConfig & {
middlewares: Middleware[];
middlewares?: Middleware[];
} = {
middlewares: [],
},

View File

@ -9,11 +9,7 @@ const packages = uniq(
.map(_ => _.eslintPlugin!),
);
console.log('Installing missing ESLint plugins:');
for (const pkg of packages) {
console.log(`- ${pkg}`);
}
console.log();
console.log('Installing missing ESLint plugins.\n');
void installPackage(packages, {
silent: false,