@slango.configs/eslint 1.1.13 → 1.1.16

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.
@@ -1,4 +1,4 @@
1
1
 
2
- > @slango.configs/eslint@1.1.13 lint /home/runner/work/slango/slango/configs/eslint
2
+ > @slango.configs/eslint@1.1.16 lint /home/runner/work/slango/slango/configs/eslint
3
3
  > eslint . --max-warnings 0
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @slango.configs/eslint
2
2
 
3
+ ## 1.1.16
4
+
5
+ ### Patch Changes
6
+
7
+ - 5ba1c5a: Presets normalization
8
+
9
+ ## 1.1.15
10
+
11
+ ### Patch Changes
12
+
13
+ - fb024e5: Dependencies bump
14
+
15
+ ## 1.1.14
16
+
17
+ ### Patch Changes
18
+
19
+ - 7d6305d: Dependencies bump
20
+
3
21
  ## 1.1.13
4
22
 
5
23
  ### Patch Changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@slango.configs/eslint",
3
- "version": "1.1.13",
3
+ "version": "1.1.16",
4
4
  "private": false,
5
5
  "description": "Slango eslint configs",
6
6
  "type": "module",
@@ -11,25 +11,25 @@
11
11
  "@eslint-community/eslint-plugin-eslint-comments": "4.5.0",
12
12
  "@eslint/compat": "1.4.0",
13
13
  "@eslint/eslintrc": "3.3.1",
14
- "@eslint/js": "9.36.0",
14
+ "@eslint/js": "9.37.0",
15
15
  "@next/eslint-plugin-next": "15.5.4",
16
16
  "eslint-config-next": "15.5.4",
17
17
  "eslint-config-prettier": "10.1.8",
18
18
  "eslint-import-resolver-typescript": "4.4.4",
19
19
  "eslint-plugin-import-x": "4.16.1",
20
- "eslint-plugin-perfectionist": "4.15.0",
20
+ "eslint-plugin-perfectionist": "4.15.1",
21
21
  "eslint-plugin-prettier": "5.5.4",
22
- "eslint-plugin-react-hooks": "5.2.0",
23
- "eslint-plugin-react-refresh": "0.4.22",
22
+ "eslint-plugin-react-hooks": "6.1.1",
23
+ "eslint-plugin-react-refresh": "0.4.23",
24
24
  "eslint-plugin-regexp": "2.10.0",
25
25
  "globals": "16.4.0",
26
26
  "typescript-eslint": "8.45.0"
27
27
  },
28
28
  "peerDependencies": {
29
- "eslint": "^9.36.0"
29
+ "eslint": "^9.37.0"
30
30
  },
31
31
  "devDependencies": {
32
- "eslint": "9.36.0"
32
+ "eslint": "9.37.0"
33
33
  },
34
34
  "scripts": {
35
35
  "lint": "eslint . --max-warnings 0",
package/src/common.js CHANGED
@@ -13,15 +13,22 @@ export const globs = {
13
13
 
14
14
  export const ignorePatterns = ['dist/**', 'coverage/**'];
15
15
 
16
- export const commonConfigs = (files) =>
17
- [
16
+ export const normalizeConfig = (config) => (Array.isArray(config) ? config : [config]);
17
+
18
+ export const applyFilesGlob = (configs, files) => configs.map((config) => ({ ...config, files }));
19
+
20
+ export const commonConfigs = (files) => {
21
+ const configs = [
18
22
  eslintJs.configs.recommended,
19
23
  eslintPluginImportX.flatConfigs.recommended,
20
24
  comments.recommended,
21
25
  perfectionistPlugin.configs['recommended-natural'],
22
26
  prettierPluginRecommendedConfig,
23
27
  regexPluginConfigs['flat/recommended'],
24
- ].map((config) => ({ ...config, files }));
28
+ ];
29
+
30
+ return configs.flatMap((config) => applyFilesGlob(normalizeConfig(config), files));
31
+ };
25
32
 
26
33
  const sortModulesRule = ['error', { partitionByNewLine: true }];
27
34
 
@@ -76,8 +83,5 @@ export const commonRules = (options) => {
76
83
 
77
84
  export const typescriptConfigs = (files) => [
78
85
  ...commonConfigs(files),
79
- ...tsEslint.configs.recommendedTypeChecked.map((config) => ({
80
- ...config,
81
- files,
82
- })),
86
+ ...applyFilesGlob(normalizeConfig(tsEslint.configs.recommendedTypeChecked), files),
83
87
  ];
@@ -1,7 +1,7 @@
1
1
  import globals from 'globals';
2
2
  import tsEslint from 'typescript-eslint';
3
3
 
4
- import { globs, normalizeOptions, typescriptConfigs } from '../common.js';
4
+ import { globs, normalizeConfig, normalizeOptions, typescriptConfigs } from '../common.js';
5
5
  import { createJavascriptNodeConfig } from './javascript-node.js';
6
6
  import { baseTypescriptConfig } from './typescript.js';
7
7
 
@@ -27,9 +27,8 @@ export const createTypescriptBrowserConfig = (options = {}) => {
27
27
  const opts = normalizeOptions(options);
28
28
  return [
29
29
  ...createJavascriptNodeConfig(opts),
30
- ...tsEslint.config(
31
- ...typescriptConfigs(globs.typescript),
32
- browserTypescriptBrowserConfig(opts),
30
+ ...normalizeConfig(
31
+ tsEslint.config(...typescriptConfigs(globs.typescript), browserTypescriptBrowserConfig(opts)),
33
32
  ),
34
33
  ];
35
34
  };
@@ -1,7 +1,7 @@
1
1
  import globals from 'globals';
2
2
  import tsEslint from 'typescript-eslint';
3
3
 
4
- import { globs, normalizeOptions, typescriptConfigs } from '../common.js';
4
+ import { globs, normalizeConfig, normalizeOptions, typescriptConfigs } from '../common.js';
5
5
  import { createJavascriptNodeConfig } from './javascript-node.js';
6
6
  import { browserTypescriptBrowserConfig } from './typescript-browser.js';
7
7
 
@@ -25,9 +25,11 @@ export const createTypescriptIsomorphicConfig = (options = {}) => {
25
25
  const opts = normalizeOptions(options);
26
26
  return [
27
27
  ...createJavascriptNodeConfig(opts),
28
- ...tsEslint.config(
29
- ...typescriptConfigs(globs.typescript),
30
- isomorphicTypescriptBrowserConfig(opts),
28
+ ...normalizeConfig(
29
+ tsEslint.config(
30
+ ...typescriptConfigs(globs.typescript),
31
+ isomorphicTypescriptBrowserConfig(opts),
32
+ ),
31
33
  ),
32
34
  ];
33
35
  };
@@ -5,7 +5,7 @@ import path from 'node:path';
5
5
  import { fileURLToPath } from 'node:url';
6
6
  import tsEslint from 'typescript-eslint';
7
7
 
8
- import { globs, normalizeOptions, typescriptConfigs } from '../common.js';
8
+ import { globs, normalizeConfig, normalizeOptions, typescriptConfigs } from '../common.js';
9
9
  import { getTsConfigFile } from '../utils.js';
10
10
  import { createJavascriptNodeConfig } from './javascript-node.js';
11
11
  import { browserTypescriptBrowserConfig } from './typescript-browser.js';
@@ -20,16 +20,16 @@ const compat = new FlatCompat({
20
20
  recommendedConfig: eslintJs.configs.recommended,
21
21
  });
22
22
 
23
- const patchedConfig = fixupConfigRules([...compat.extends('next/core-web-vitals')]).map(
24
- (config) => ({
25
- ...config,
26
- languageOptions: {
27
- parserOptions: {
28
- project,
29
- },
23
+ const patchedConfig = normalizeConfig(
24
+ fixupConfigRules(normalizeConfig(compat.extends('next/core-web-vitals'))),
25
+ ).map((config) => ({
26
+ ...config,
27
+ languageOptions: {
28
+ parserOptions: {
29
+ project,
30
30
  },
31
- }),
32
- );
31
+ },
32
+ }));
33
33
 
34
34
  export const createTypescriptNextConfig = (options = {}) => {
35
35
  const opts = normalizeOptions(options);
@@ -37,23 +37,25 @@ export const createTypescriptNextConfig = (options = {}) => {
37
37
 
38
38
  return [
39
39
  ...createJavascriptNodeConfig(opts),
40
- ...tsEslint.config(
41
- ...typescriptConfigs(globs.typescript),
42
- {
43
- ...browserConfig,
44
- languageOptions: {
45
- ...browserConfig.languageOptions,
46
- globals: {
47
- ...browserConfig.languageOptions.globals,
48
- process: true,
49
- NodeJS: 'readonly',
40
+ ...normalizeConfig(
41
+ tsEslint.config(
42
+ ...typescriptConfigs(globs.typescript),
43
+ {
44
+ ...browserConfig,
45
+ languageOptions: {
46
+ ...browserConfig.languageOptions,
47
+ globals: {
48
+ ...browserConfig.languageOptions.globals,
49
+ process: true,
50
+ NodeJS: 'readonly',
51
+ },
50
52
  },
51
53
  },
52
- },
53
- ...patchedConfig,
54
- {
55
- ignores: ['.next/*'],
56
- },
54
+ ...patchedConfig,
55
+ {
56
+ ignores: ['.next/*'],
57
+ },
58
+ ),
57
59
  ),
58
60
  ];
59
61
  };
@@ -1,7 +1,7 @@
1
1
  import globals from 'globals';
2
2
  import tsEslint from 'typescript-eslint';
3
3
 
4
- import { globs, normalizeOptions, typescriptConfigs } from '../common.js';
4
+ import { globs, normalizeConfig, normalizeOptions, typescriptConfigs } from '../common.js';
5
5
  import { createJavascriptNodeConfig } from './javascript-node.js';
6
6
  import { baseTypescriptConfig } from './typescript.js';
7
7
 
@@ -22,7 +22,9 @@ export const createTypescriptNodeConfig = (options = {}) => {
22
22
 
23
23
  return [
24
24
  ...createJavascriptNodeConfig(opts),
25
- ...tsEslint.config(...typescriptConfigs(globs.typescript), nodeTypescriptConfig),
25
+ ...normalizeConfig(
26
+ tsEslint.config(...typescriptConfigs(globs.typescript), nodeTypescriptConfig),
27
+ ),
26
28
  ];
27
29
  };
28
30
 
@@ -3,7 +3,7 @@ import reactRefresh from 'eslint-plugin-react-refresh';
3
3
  import globals from 'globals';
4
4
  import tsEslint from 'typescript-eslint';
5
5
 
6
- import { globs, normalizeOptions, typescriptConfigs } from '../common.js';
6
+ import { globs, normalizeConfig, normalizeOptions, typescriptConfigs } from '../common.js';
7
7
  import { createJavascriptNodeConfig } from './javascript-node.js';
8
8
  import { browserTypescriptBrowserConfig } from './typescript-browser.js';
9
9
  import { baseTypescriptConfig } from './typescript.js';
@@ -26,13 +26,13 @@ export const reactTypescriptBrowserConfig = (options = {}) => {
26
26
 
27
27
  export const createTypescriptReactConfig = (options = {}) => {
28
28
  const opts = normalizeOptions(options);
29
+
29
30
  return [
30
31
  ...createJavascriptNodeConfig(opts),
31
- reactHooks.configs['recommended-latest'],
32
- reactRefresh.configs.recommended,
33
- ...tsEslint.config(
34
- ...typescriptConfigs(globs.typescript),
35
- browserTypescriptBrowserConfig(opts),
32
+ ...normalizeConfig(reactHooks.configs['recommended-latest']),
33
+ ...normalizeConfig(reactRefresh.configs.recommended),
34
+ ...normalizeConfig(
35
+ tsEslint.config(...typescriptConfigs(globs.typescript), browserTypescriptBrowserConfig(opts)),
36
36
  ),
37
37
  ];
38
38
  };
@@ -6,6 +6,7 @@ import {
6
6
  commonRules,
7
7
  globs,
8
8
  ignorePatterns,
9
+ normalizeConfig,
9
10
  normalizeOptions,
10
11
  typescriptConfigs,
11
12
  } from '../common.js';
@@ -41,7 +42,9 @@ export const createTypescriptConfig = (options = {}) => {
41
42
  const opts = normalizeOptions(options);
42
43
  return [
43
44
  ...createJavascriptNodeConfig(opts),
44
- ...tsEslint.config(...typescriptConfigs(globs.typescript), baseTypescriptConfig(opts)),
45
+ ...normalizeConfig(
46
+ tsEslint.config(...typescriptConfigs(globs.typescript), baseTypescriptConfig(opts)),
47
+ ),
45
48
  { ignores: ignorePatterns },
46
49
  ];
47
50
  };