diff --git a/.gitignore b/.gitignore index 3ef78df..28f2efa 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ eslint-plugin-import eslint-plugin-jsx-a11y eslint-plugin-react +eslint-plugin-n jsx-ast-utils /react diff --git a/dist/package.json b/dist/package.json index 254d62d..da3110e 100644 --- a/dist/package.json +++ b/dist/package.json @@ -1,21 +1,23 @@ { "name": "@aet/eslint-rules", - "version": "0.0.1-beta.16", + "version": "0.0.1-beta.17", "license": "UNLICENSED", "peerDependencies": { "typescript": "^5.1.6" }, "bin": { - "eslint-add-alias": "./addAlias.js" + "eslint-add-alias": "./add-alias.js", + "eslint-remove-alias": "./remove-alias.js" }, "dependencies": { - "@types/eslint": "^8.44.0", + "@types/eslint": "^8.44.1", "aria-query": "^5.3.0", "axe-core": "4.7.2", "axobject-query": "^3.2.1", "damerau-levenshtein": "1.0.8", "debug": "^4.3.4", "doctrine": "^3.0.0", + "emoji-regex": "^10.2.1", "eslint-define-config": "^1.21.0", "eslint-import-resolver-node": "^0.3.7", "eslint-module-utils": "^2.8.0", diff --git a/esbuild.ts b/esbuild.ts index 35bdb48..52bcb31 100755 --- a/esbuild.ts +++ b/esbuild.ts @@ -227,5 +227,6 @@ main('./eslint-plugin-import/src/index.js', './dist/import/index.js'); main('./eslint-plugin-jsx-a11y/src/index.js', './dist/jsx-a11y/index.js'); main('./eslint-plugin-react-hooks/index.ts', './dist/react-hooks/index.js'); main('./eslint-plugin-n/lib/index.js', './dist/n/index.js'); -main('./src/addAlias.ts', './dist/addAlias.js'); +main('./src/add-alias.ts', './dist/add-alias.js'); +main('./src/remove-alias.ts', './dist/remove-alias.js'); main('./src/rules/index.ts', './dist/rules/index.js'); diff --git a/patch/jsx-ast-utils.patch b/patch/jsx-ast-utils.patch index ec4cef8..6be7653 100644 --- a/patch/jsx-ast-utils.patch +++ b/patch/jsx-ast-utils.patch @@ -71,7 +71,7 @@ index 0f1cd04..bfed363 100644 +export { hasProp } from './src'; \ No newline at end of file diff --git a/package.json b/package.json -index 738d1b3..befb66e 100644 +index 40f7947..4759eca 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ diff --git a/src/addAlias.ts b/src/add-alias.ts similarity index 61% rename from src/addAlias.ts rename to src/add-alias.ts index a59a1cb..b540966 100644 --- a/src/addAlias.ts +++ b/src/add-alias.ts @@ -6,9 +6,9 @@ import { name } from '../dist/package.json'; const pkgPath = resolve(process.cwd(), 'package.json'); const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8')); -pkg.devDependencies ??= {}; +const devDeps = (pkg.devDependencies ??= {}); -Object.assign(pkg.devDependencies, { +Object.assign(devDeps, { 'eslint-plugin-import': `file:./node_modules/${name}/import`, 'eslint-plugin-jsx-a11y': `file:./node_modules/${name}/jsx-a11y`, 'eslint-plugin-local': `file:./node_modules/${name}/local`, @@ -17,4 +17,19 @@ Object.assign(pkg.devDependencies, { 'eslint-plugin-react-hooks': `file:./node_modules/${name}/react-hooks`, }); +devDeps['@typescript-eslint/eslint-plugin'] ??= '6.2.0'; +devDeps['@typescript-eslint/parser'] ??= '6.2.0'; + fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2)); + +const eslintrc = resolve(process.cwd(), '.eslintrc.js'); +if (fs.existsSync(eslintrc)) { + fs.writeFileSync( + eslintrc, + `const { extendConfig } = require('@aet/eslint-rules/basic'); + +module.exports = extendConfig({ + extends: [], +});`, + ); +} diff --git a/src/remove-alias.ts b/src/remove-alias.ts new file mode 100644 index 0000000..41676c9 --- /dev/null +++ b/src/remove-alias.ts @@ -0,0 +1,23 @@ +#!/usr/bin/env node +import fs from 'node:fs'; +import { resolve } from 'node:path'; +import { name } from '../dist/package.json'; + +const pkgPath = resolve(process.cwd(), 'package.json'); +const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8')); + +const devDeps = (pkg.devDependencies ??= {}); +for (const dep of [ + 'eslint-plugin-import', + 'eslint-plugin-jsx-a11y', + 'eslint-plugin-local', + 'eslint-plugin-rules', + 'eslint-plugin-react', + 'eslint-plugin-react-hooks', +]) { + if (devDeps[dep]?.startsWith(`file:./node_modules/${name}/`)) { + delete devDeps[dep]; + } +} + +fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2));