eslint-config-alloy
Version:
AlloyTeam ESLint 规则
41 lines (36 loc) • 1.36 kB
text/typescript
/* eslint-disable @typescript-eslint/no-require-imports */
/**
* 批量删除 eslint-config-prettier 中的规则
*/
import fs from 'fs';
import path from 'path';
import rimraf from 'rimraf';
const prettier = require('eslint-config-prettier');
const prettierReact = require('eslint-config-prettier/react');
const prettierVue = require('eslint-config-prettier/vue');
const prettierTypeScript = require('eslint-config-prettier/@typescript-eslint');
const prettierRules = {
index: prettier.rules,
react: prettierReact.rules,
vue: prettierVue.rules,
typescript: prettierTypeScript.rules,
};
const RULE_PREFIX_MAP = {
index: '',
react: 'react/',
vue: 'vue/',
typescript: '@typescript-eslint/',
};
type RulePrefix = keyof typeof RULE_PREFIX_MAP;
const namespaces: RulePrefix[] = ['index', 'react', 'vue', 'typescript'];
namespaces.forEach((namespace) => {
fs.readdirSync(path.resolve(__dirname, '../test', namespace))
.filter((ruleName) => fs.lstatSync(path.resolve(__dirname, '../test', namespace, ruleName)).isDirectory())
.forEach((ruleName) => {
if (typeof prettierRules[namespace][`${RULE_PREFIX_MAP[namespace]}${ruleName}`] !== 'undefined') {
const rulePath = path.resolve(__dirname, '../test', namespace, ruleName);
rimraf.sync(rulePath);
console.log(`已删除 ${rulePath}`);
}
});
});