UNPKG

@tencentcloud/tui-emoji-plugin

Version:

表情回应插件

121 lines (115 loc) 2.29 kB
const stylistic = require('@stylistic/eslint-plugin'); const customizedBaseConfig = stylistic.configs.customize({ semi: true, jsx: false, braceStyle: '1tbs', }); module.exports = { root: true, env: { browser: true, node: true, }, extends: [ 'eslint:recommended', 'plugin:@stylistic/recommended-extends', ], overrides: [ { env: { node: true, }, files: ['.eslintrc.{js,cjs}'], parserOptions: { sourceType: 'module', }, }, { env: { browser: true, }, files: ['*.ts'], extends: [ 'plugin:@typescript-eslint/recommended', ], parser: '@typescript-eslint/parser', parserOptions: { ecmaVersion: 'latest', sourceType: 'module', }, rules: { ...getCustomTypescriptRules() }, }, { env: { browser: true, }, files: ['*.vue'], extends: [ 'plugin:vue/vue3-recommended', '@vue/eslint-config-typescript/recommended', ], parser: 'vue-eslint-parser', parserOptions: { ecmaVersion: 'latest', sourceType: 'module', }, rules: { ...getCustomTypescriptRules(), ...getCustomVueRules(), }, }, { env: { node: true, es6: true, }, files: ['scripts/*.js'], }, ], parserOptions: { ecmaVersion: 'latest', sourceType: 'module', }, plugins: [ 'vue', '@stylistic', ], rules: { ...getCustomStylisticRules(), }, ignorePatterns: [ 'node_modules', 'build', 'dist', 'docs', 'assets', 'debug', ], }; function getCustomTypescriptRules() { return { '@typescript-eslint/no-explicit-any': ['warn', { ignoreRestArgs: true, fixToUnknown: false, }], '@typescript-eslint/array-type': ['warn', { default: 'array-simple', readonly: 'array-simple', }], }; } function getCustomVueRules() { return { 'vue/attribute-hyphenation': 'off', 'vue/v-on-event-hyphenation': 'off', 'vue/multi-word-component-names': 'off', }; } function getCustomStylisticRules() { return { // shared rules ...customizedBaseConfig.rules, // custom rules // @stylistic/${rule} }; }