const path = require("path"); /** * @type {import('eslint').Linter.Config} */ module.exports = { extends: path.resolve(__dirname, "../../.eslintrc.js"), ignorePatterns: ["!**/*", ".eslintrc.js"], overrides: [ { files: ["*.ts"], parserOptions: { project: [path.resolve(__dirname, "./tsconfig.json")], }, plugins: ["eslint-plugin-unicorn"], rules: { "@angular-eslint/component-selector": [ "error", { type: "element", prefix: "a365", style: "kebab-case", }, ], "@angular-eslint/directive-class-suffix": "off", "@angular-eslint/directive-selector": [ "error", { type: "attribute", prefix: "a365", style: "camelCase", }, ], "@typescript-eslint/array-type": [ "error", { default: "array-simple", }, ], "@typescript-eslint/dot-notation": "off", "@typescript-eslint/no-explicit-any": "error", "@typescript-eslint/no-require-imports": "error", "@typescript-eslint/no-shadow": [ "off", { hoist: "all", }, ], "@typescript-eslint/no-this-alias": "off", "@typescript-eslint/no-var-requires": "error", "arrow-parens": ["error", "always"], "brace-style": ["error", "1tbs"], "comma-dangle": "error", "default-case": "error", "dot-notation": "off", "guard-for-in": "off", "id-denylist": "error", "import/no-extraneous-dependencies": "off", "import/no-internal-modules": "off", "import/order": "off", indent: "off", "max-classes-per-file": ["error", 1], "max-len": [ "error", { code: 200, }, ], "no-duplicate-case": "error", "no-duplicate-imports": "error", "no-empty-function": "off", "no-extra-bind": "off", "no-multiple-empty-lines": "error", "no-new-func": "error", "no-octal": "error", "no-octal-escape": "error", "no-redeclare": "error", "no-restricted-syntax": [ "error", { message: "Forbidden write to document.domain.", selector: 'AssignmentExpression[left.type="MemberExpression"][left.object.name="document"][left.property.name="domain"]', }, { message: "Forbidden write to document.domain.", selector: 'AssignmentExpression[left.type="MemberExpression"][left.object.type="MemberExpression"][left.object.object.name="window"][left.object.property.name="document"][left.property.name="domain"]', }, ], "no-return-await": "off", "no-sequences": "error", "no-shadow": "off", "no-sparse-arrays": "error", "no-template-curly-in-string": "error", "no-unused-expressions": "error", "no-use-before-define": "off", "prefer-object-spread": "error", semi: "error", "space-in-parens": ["error", "never"], }, }, { files: ["*.html"], rules: {}, }, ], };