eslint-config-airbnb-extended 2.0.0-beta-2 → 2.0.0-beta-3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,7 +4,7 @@
4
4
  export declare const rules: {
5
5
  readonly base: Record<"strict" | "imports" | "variables" | "bestPractices" | "errors" | "es6" | "style" | "node", import("eslint").Linter.Config>;
6
6
  readonly react: Record<"base" | "jsxA11y" | "hooks", import("eslint").Linter.Config>;
7
- readonly typescript: Record<"overrides" | "base", import("eslint").Linter.Config>;
7
+ readonly typescript: Record<"overrides" | "base" | "settings", import("eslint").Linter.Config>;
8
8
  };
9
9
  export declare const configs: {
10
10
  readonly base: Record<"recommended" | "typescript" | "legacy", import("eslint").Linter.Config[]>;
@@ -3,23 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const config_1 = __importDefault(require("../../../legacy/configs/typescript/config"));
6
+ const typescript_1 = __importDefault(require("../../../legacy/configs/base/typescript"));
7
7
  const utils_1 = require("../../../utils");
8
8
  const legacyReactTypescriptConfig = [
9
- ...Object.values(config_1.default),
9
+ ...typescript_1.default,
10
10
  {
11
11
  name: 'airbnb/config/react-configurations/typescript/legacy',
12
12
  files: utils_1.tsFiles,
13
- settings: {
14
- // Append 'ts' extensions to Airbnb 'import/resolver' setting
15
- // Prepend 'mjs' to match shared config
16
- // Original: ['.js', '.jsx', '.json']
17
- 'import/resolver': {
18
- node: {
19
- extensions: ['.mjs', '.js', '.jsx', '.json', '.ts', '.tsx', '.d.ts'],
20
- },
21
- },
22
- },
23
13
  rules: {
24
14
  // Append 'tsx' to Airbnb 'react/jsx-filename-extension' rule
25
15
  // Original: ['.jsx']
@@ -31,5 +21,27 @@ const legacyReactTypescriptConfig = [
31
21
  ],
32
22
  },
33
23
  },
24
+ {
25
+ name: 'airbnb/config/react-configurations/typescript-settings/legacy',
26
+ files: utils_1.allFiles,
27
+ settings: {
28
+ // Apply special parsing for TypeScript files
29
+ 'import/parsers': {
30
+ '@typescript-eslint/parser': utils_1.tsExtensionsWithReactDTS,
31
+ },
32
+ // Append 'ts' extensions to Airbnb 'import/resolver' setting
33
+ // Prepend 'mjs' to match shared config
34
+ // Original: ['.js', '.jsx', '.json']
35
+ 'import/resolver': {
36
+ node: {
37
+ extensions: [...utils_1.tsExtensionsWithReactDTS, '.json'],
38
+ },
39
+ typescript: true,
40
+ },
41
+ // Append 'ts' extensions to Airbnb 'import/extensions' setting
42
+ // Original: ['.js', '.mjs', '.jsx']
43
+ 'import/extensions': utils_1.tsExtensionsWithReactDTS,
44
+ },
45
+ },
34
46
  ];
35
47
  exports.default = legacyReactTypescriptConfig;
@@ -5,8 +5,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const typescript_1 = __importDefault(require("../../../legacy/rules/typescript/typescript"));
7
7
  const typescriptOverrides_1 = __importDefault(require("../../../legacy/rules/typescript/typescriptOverrides"));
8
+ const typescriptSettings_1 = __importDefault(require("../../../legacy/rules/typescript/typescriptSettings"));
8
9
  const legacyTypescriptConfig = {
9
10
  base: typescript_1.default,
10
11
  overrides: typescriptOverrides_1.default,
12
+ settings: typescriptSettings_1.default,
11
13
  };
12
14
  exports.default = legacyTypescriptConfig;
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const globals_1 = __importDefault(require("globals"));
7
+ const getDevDepsList_1 = __importDefault(require("../../helpers/getDevDepsList"));
7
8
  const utils_1 = require("../../utils");
8
9
  // eslint-disable-next-line @typescript-eslint/no-require-imports, unicorn/prefer-module
9
10
  const plugin = require('eslint-plugin-import');
@@ -23,10 +24,10 @@ const legacyImportsRules = {
23
24
  settings: {
24
25
  'import/resolver': {
25
26
  node: {
26
- extensions: ['.mjs', '.js', '.json'],
27
+ extensions: [...utils_1.jsExtensions, '.json'],
27
28
  },
28
29
  },
29
- 'import/extensions': ['.js', '.mjs', '.jsx'],
30
+ 'import/extensions': utils_1.jsExtensionsWithReact,
30
31
  'import/core-modules': [],
31
32
  'import/ignore': ['node_modules', String.raw `\.(coffee|scss|css|less|hbs|svg|json)$`],
32
33
  },
@@ -68,30 +69,7 @@ const legacyImportsRules = {
68
69
  'import/no-extraneous-dependencies': [
69
70
  'error',
70
71
  {
71
- devDependencies: [
72
- 'test/**', // tape, common npm pattern
73
- 'tests/**', // also common npm pattern
74
- 'spec/**', // mocha, rspec-like pattern
75
- '**/__tests__/**', // jest pattern
76
- '**/__mocks__/**', // jest pattern
77
- 'test.{js,jsx}', // repos with a single test file
78
- 'test-*.{js,jsx}', // repos with multiple top-level test files
79
- '**/*{.,_}{test,spec}.{js,jsx}', // tests where the extension or filename suffix denotes that it is a test
80
- '**/jest.config.js', // jest config
81
- '**/jest.setup.js', // jest setup
82
- '**/vue.config.js', // vue-cli config
83
- '**/webpack.config.js', // webpack config
84
- '**/webpack.config.*.js', // webpack config
85
- '**/rollup.config.js', // rollup config
86
- '**/rollup.config.*.js', // rollup config
87
- '**/gulpfile.js', // gulp config
88
- '**/gulpfile.*.js', // gulp config
89
- '**/Gruntfile{,.js}', // grunt config
90
- '**/protractor.conf.js', // protractor config
91
- '**/protractor.conf.*.js', // protractor config
92
- '**/karma.conf.js', // karma config
93
- '**/.eslintrc.js', // eslint config
94
- ],
72
+ devDependencies: (0, getDevDepsList_1.default)(utils_1.jsExtensions.map((ext) => ext.slice(1)).join(',')),
95
73
  optionalDependencies: false,
96
74
  },
97
75
  ],
@@ -25,7 +25,7 @@ const legacyReactBaseRules = {
25
25
  settings: {
26
26
  'import/resolver': {
27
27
  node: {
28
- extensions: ['.js', '.jsx', '.json'],
28
+ extensions: [...utils_1.jsExtensionsWithReact, '.json'],
29
29
  },
30
30
  },
31
31
  react: {
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const typescript_eslint_1 = require("typescript-eslint");
7
+ const getDevDepsList_1 = __importDefault(require("../../../helpers/getDevDepsList"));
7
8
  const best_practices_1 = __importDefault(require("../../../legacy/rules/best-practices"));
8
9
  const errors_1 = __importDefault(require("../../../legacy/rules/errors"));
9
10
  const es6_1 = __importDefault(require("../../../legacy/rules/es6"));
@@ -29,25 +30,6 @@ const legacyTypescriptBaseRules = {
29
30
  projectService: true,
30
31
  },
31
32
  },
32
- settings: {
33
- // Apply special parsing for TypeScript files
34
- 'import/parsers': {
35
- '@typescript-eslint/parser': ['.ts', '.tsx', '.d.ts'],
36
- },
37
- // Append 'ts' extensions to Airbnb 'import/resolver' setting
38
- // Original: ['.mjs', '.js', '.json']
39
- 'import/resolver': {
40
- node: {
41
- extensions: ['.mjs', '.js', '.json', '.ts', '.d.ts'],
42
- },
43
- typescript: true,
44
- },
45
- // Append 'ts' extensions to Airbnb 'import/extensions' setting
46
- // Original: ['.js', '.mjs', '.jsx']
47
- 'import/extensions': ['.js', '.mjs', '.jsx', '.ts', '.tsx', '.d.ts'],
48
- // Resolve type definition packages
49
- 'import/external-module-folders': ['node_modules', 'node_modules/@types'],
50
- },
51
33
  rules: {
52
34
  // Replace Airbnb 'brace-style' rule with '@typescript-eslint' version
53
35
  // https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/brace-style.md
@@ -238,15 +220,11 @@ const legacyTypescriptBaseRules = {
238
220
  // Append 'ts' and 'tsx' extensions to Airbnb 'import/no-extraneous-dependencies' rule
239
221
  // https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-extraneous-dependencies.md
240
222
  'import/no-extraneous-dependencies': [
241
- baseImportsRules['import/no-extraneous-dependencies'][0],
242
- Object.assign(Object.assign({}, baseImportsRules['import/no-extraneous-dependencies'][1]), { devDependencies: baseImportsRules['import/no-extraneous-dependencies'][1].devDependencies.reduce((result, devDep) => {
243
- const toAppend = [devDep];
244
- const devDepWithTs = devDep.replaceAll(/\bjs(x?)\b/g, 'ts$1');
245
- if (devDepWithTs !== devDep) {
246
- toAppend.push(devDepWithTs);
247
- }
248
- return [...result, ...toAppend];
249
- }, []) }),
223
+ 'error',
224
+ {
225
+ devDependencies: (0, getDevDepsList_1.default)([...utils_1.jsExtensions, ...utils_1.tsExtensions].map((ext) => ext.slice(1)).join(',')),
226
+ optionalDependencies: false,
227
+ },
250
228
  ],
251
229
  },
252
230
  };
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utils_1 = require("../../../utils");
4
+ const legacyTypescriptSettingsRules = {
5
+ name: 'airbnb/config/typescript/settings/legacy',
6
+ files: utils_1.allFiles,
7
+ settings: {
8
+ // Apply special parsing for TypeScript files
9
+ 'import/parsers': {
10
+ '@typescript-eslint/parser': utils_1.tsExtensionsResolver,
11
+ },
12
+ // Append 'ts' extensions to Airbnb 'import/resolver' setting
13
+ // Original: ['.mjs', '.js', '.json']
14
+ 'import/resolver': {
15
+ node: {
16
+ extensions: [...utils_1.tsExtensionsResolver, '.json'],
17
+ },
18
+ typescript: true,
19
+ },
20
+ // Append 'ts' extensions to Airbnb 'import/extensions' setting
21
+ // Original: ['.js', '.mjs', '.jsx']
22
+ 'import/extensions': utils_1.tsExtensionsResolver,
23
+ // Resolve type definition packages
24
+ 'import/external-module-folders': ['node_modules', 'node_modules/@types'],
25
+ },
26
+ };
27
+ exports.default = legacyTypescriptSettingsRules;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eslint-config-airbnb-extended",
3
- "version": "2.0.0-beta-2",
3
+ "version": "2.0.0-beta-3",
4
4
  "description": "Eslint Airbnb Config Extended",
5
5
  "keywords": [
6
6
  "eslint",