UNPKG

@nighttrax/eslint-config-base

Version:
100 lines (82 loc) 2.69 kB
const testOverrides = require("./tests.js"); const configOverrides = require("./configs.js"); module.exports = { extends: [ "eslint-config-airbnb-base/rules/best-practices", "eslint-config-airbnb-base/rules/errors", "eslint-config-airbnb-base/rules/node", "eslint-config-airbnb-base/rules/style", "eslint-config-airbnb-base/rules/variables", "eslint-config-airbnb-base/rules/es6", ] .map(require.resolve) .concat([ // This disables all stylistic rules from the above. "prettier", "plugin:@typescript-eslint/recommended", ]), plugins: ["prettier", "import", "@typescript-eslint"], parser: "@typescript-eslint/parser", settings: { "import/resolver": { // use <root>/tsconfig.json typescript: {}, }, }, rules: { "prettier/prettier": "error", "import/no-extraneous-dependencies": [ "error", { devDependencies: [...testOverrides.files, ...configOverrides.files], }, ], "one-var": "off", "one-var-declaration-per-line": "off", "prefer-arrow-callback": "off", strict: "off", "no-use-before-define": ["off", { functions: false }], "no-underscore-dangle": "off", "no-plusplus": "off", // Enforce curly braces even for one liners. curly: ["error", "all"], "padding-line-between-statements": [ "error", { blankLine: "always", prev: "*", next: "return" }, { blankLine: "always", prev: "*", next: "block-like" }, { blankLine: "always", prev: "*", next: "if" }, { blankLine: "always", prev: "*", next: "export" }, ], // These core rules don't work well on TS code, use the ones from the plugin instead. "no-undef": "off", "no-unused-vars": "off", "no-shadow": "off", "no-redeclare": "off", "no-empty-function": "off", "@typescript-eslint/no-unused-vars": [ "error", { // Allow `let { ignored, ...rest} = foo`. ignoreRestSiblings: true, }, ], // Allow `constructor(private foo: number) {}` "no-useless-constructor": "off", // Allow stateless class methods, instead of forcing them to be static. "class-methods-use-this": 0, // TS will take care of this, and the rule disallows the following _valid_ pattern: // function(foo = 'bar', baz?: number) {} "default-param-last": "off", // The strictFunctionTypes compiler flag only works if you define your methods properly. "@typescript-eslint/method-signature-style": "error", }, overrides: [ testOverrides, { files: ["**/*.js"], rules: { "@typescript-eslint/no-var-requires": "off", }, }, ], };