Update
This commit is contained in:
30
scripts/build-local-rules.ts
Executable file
30
scripts/build-local-rules.ts
Executable file
@ -0,0 +1,30 @@
|
||||
#!/usr/bin/env tsx
|
||||
import { promises as fs } from 'node:fs';
|
||||
import { camelCase } from 'lodash';
|
||||
|
||||
export async function buildLocalRules() {
|
||||
const files = (await fs.readdir('./src/rules'))
|
||||
.filter(file => file.endsWith('.ts'))
|
||||
.filter(file => file !== 'index.ts')
|
||||
.map(file => file.slice(0, -3));
|
||||
|
||||
const entryFile = /* js */ `
|
||||
import type { Rule } from 'eslint';
|
||||
import type { ESLintUtils } from '@typescript-eslint/utils';
|
||||
|
||||
${files.map(file => `import ${camelCase(file)} from './${file}';`).join('\n')}
|
||||
|
||||
export const rules: Record<
|
||||
string,
|
||||
Rule.RuleModule | ESLintUtils.RuleModule<string, unknown[]>
|
||||
> = {
|
||||
${files.map(file => `'${file}': ${camelCase(file)},`).join('\n ')}
|
||||
};
|
||||
`.trim();
|
||||
|
||||
await fs.writeFile('./src/rules/index.ts', entryFile + '\n');
|
||||
}
|
||||
|
||||
if (require.main === module) {
|
||||
buildLocalRules();
|
||||
}
|
@ -7,7 +7,7 @@ import type { Plugin } from 'esbuild';
|
||||
import { memoize } from 'lodash';
|
||||
import { gray, green } from 'picocolors';
|
||||
import { dependencies } from '../dist/package.json';
|
||||
import { buildLocalRules } from '../src/build-local-rules';
|
||||
import { buildLocalRules } from './build-local-rules';
|
||||
import { dts } from './dts';
|
||||
import { babelPlugin } from './modifier';
|
||||
|
||||
@ -134,7 +134,6 @@ async function main() {
|
||||
|
||||
console.log('Building packages...');
|
||||
await Promise.all([
|
||||
bundle('./packages/eslint-plugin-react/index.js'),
|
||||
bundle('./packages/eslint-plugin-jsx-a11y/src/index.js'),
|
||||
bundle('./packages/eslint-plugin-react-hooks/index.ts'),
|
||||
bundle('./packages/eslint-plugin-n/lib/index.js', './dist/eslint-plugin-n/index.js'),
|
||||
|
@ -1,25 +1,15 @@
|
||||
#!/usr/bin/env tsx
|
||||
import assert from 'node:assert';
|
||||
import { readFileSync, promises as fs } from 'node:fs';
|
||||
import { resolve, extname, relative } from 'node:path';
|
||||
import { isBuiltin } from 'node:module';
|
||||
import esbuild from 'esbuild';
|
||||
import { readFileSync } from 'node:fs';
|
||||
import { resolve, extname } from 'node:path';
|
||||
import type { Loader, Plugin } from 'esbuild';
|
||||
import * as babel from '@babel/core';
|
||||
import { memoize } from 'lodash';
|
||||
import { gray, green } from 'picocolors';
|
||||
import type { types as t, types } from '@babel/core';
|
||||
import { dependencies } from '../dist/package.json';
|
||||
import { createMacro, type MacroHandler } from 'babel-plugin-macros';
|
||||
import * as polyfill from '../src/polyfill';
|
||||
import { buildLocalRules } from '../src/build-local-rules';
|
||||
import { dts } from './dts';
|
||||
|
||||
const polyfills = Object.keys(polyfill);
|
||||
|
||||
const ENV = (process.env.NODE_ENV ??= 'production');
|
||||
const PROD = ENV === 'production';
|
||||
|
||||
class HandlerMap {
|
||||
map = new Map<string, MacroHandler>();
|
||||
|
||||
|
@ -6,5 +6,4 @@ sync() (
|
||||
sync eslint-import-resolver-typescript
|
||||
sync eslint-plugin-jsx-a11y
|
||||
sync eslint-plugin-n
|
||||
sync eslint-plugin-react
|
||||
sync jsx-ast-utils
|
||||
|
Reference in New Issue
Block a user