/* 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', '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}`);
            }
        });
});
