21 lines
606 B
JavaScript
Executable File
21 lines
606 B
JavaScript
Executable File
#!/usr/bin/env -S node -r esbin
|
|
import { readdirSync, writeFileSync } from 'node:fs';
|
|
import { camelCase } from 'lodash';
|
|
|
|
const files = readdirSync('./src/rules')
|
|
.filter(file => file.endsWith('.ts'))
|
|
.filter(file => file !== 'index.ts')
|
|
.map(file => file.slice(0, -3));
|
|
|
|
const entryFile = `
|
|
import type { Rule } from 'eslint';
|
|
|
|
${files.map(file => `import ${camelCase(file)} from "./${file}"`).join(';\n')}
|
|
|
|
export const rules: Record<string, Rule.RuleModule> = {
|
|
${files.map(file => `"${file}": ${camelCase(file)}`).join(',\n ')}
|
|
};
|
|
`.trim();
|
|
|
|
writeFileSync('./src/rules/index.ts', entryFile);
|