eslint-rules/src/build-local-rules.ts
2023-07-22 01:00:28 -04:00

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);