UNPKG

@perfective/eslint-config

Version:
45 lines 2.65 kB
import { configurationFiles, typescriptDeclarationFiles } from "../linter/glob.js"; import { languageOptions } from "../linter/language-options.js"; import { linterConfig } from "../linter/linter-config.js"; import { arrayFuncConfig } from "./array-func/array-func-config.js"; import { eslintConfig } from "./eslint/eslint-config.js"; import { eslintCommentsConfig } from "./eslint-comments/eslint-comments-config.js"; import { importConfig, importJavascriptConfig, importTypescriptConfig } from "./import/import-config.js"; import { importNoExtraneousDependencies } from "./import/index.js"; import { jsdocConfig, jsdocJavascriptConfig } from "./jsdoc/jsdoc-config.js"; import { nodeConfig } from "./node/node-config.js"; import { preferArrowConfig } from "./prefer-arrow/prefer-arrow-config.js"; import { promiseConfig } from "./promise/promise-config.js"; import { securityConfig } from "./security/security-config.js"; import { simpleImportSortConfig } from "./simple-import-sort/simple-import-sort-config.js"; import { stylisticJsConfig } from "./stylistic/js/stylistic-js-config.js"; import { stylisticJsxConfig } from "./stylistic/jsx/stylistic-jsx-config.js"; import { stylisticPlusConfig } from "./stylistic/plus/stylistic-plus-config.js"; import { stylisticTsConfig } from "./stylistic/ts/stylistic-ts-config.js"; import { typescriptEslintConfig } from "./typescript-eslint/typescript-eslint-config.js"; import { unicornConfig } from "./unicorn/unicorn-config.js"; export function perfectiveEslintConfig(configs = []) { return [{ languageOptions: languageOptions() }, { ignores: ['**/dist', typescriptDeclarationFiles] }, eslintConfig(), typescriptEslintConfig(), arrayFuncConfig(), eslintCommentsConfig(), importConfig(), importJavascriptConfig(), importTypescriptConfig(), jsdocConfig(), jsdocJavascriptConfig(), nodeConfig(), preferArrowConfig(), promiseConfig(), securityConfig(), simpleImportSortConfig(), stylisticJsConfig(), stylisticJsxConfig(), stylisticPlusConfig(), stylisticTsConfig(), unicornConfig(), configurationFilesConfig()].concat(configs.map(linterConfig)); } function configurationFilesConfig() { return { files: configurationFiles, rules: { 'import/extensions': ['error', 'ignorePackages'], 'import/no-default-export': ['off'], 'import/no-extraneous-dependencies': ['error', importNoExtraneousDependencies({ devDependencies: configurationFiles })], 'n/no-unpublished-import': ['error', { allowModules: ['gulp', '@perfective/build'], convertPath: { 'dist/**/*.js': ['^dist/(.+)?\\.js$', '$1.js'] } }] } }; }