@vp-tw/eslint-config 0.0.14 → 0.0.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.
Files changed (42) hide show
  1. package/README.md +1 -0
  2. package/dist/configs/mdx.d.ts +3 -2
  3. package/dist/configs/mdx.js +22 -60
  4. package/dist/configs/prettier.d.ts +2 -1
  5. package/dist/configs/prettier.js +8 -24
  6. package/dist/configs/storybook.d.ts +6 -6
  7. package/dist/configs/storybook.js +20 -42
  8. package/dist/esm/configs/mdx.d.ts +3 -2
  9. package/dist/esm/configs/mdx.mjs +34 -76
  10. package/dist/esm/configs/prettier.d.ts +2 -1
  11. package/dist/esm/configs/prettier.mjs +13 -24
  12. package/dist/esm/configs/storybook.d.ts +6 -6
  13. package/dist/esm/configs/storybook.mjs +30 -45
  14. package/dist/esm/extends/_utils.d.ts +1 -1
  15. package/dist/esm/extends/_utils.mjs +1 -1
  16. package/dist/esm/extends/imports.d.ts +3 -3
  17. package/dist/esm/extends/imports.mjs +55 -66
  18. package/dist/esm/extends/javascript.d.ts +4 -3
  19. package/dist/esm/extends/javascript.mjs +30 -41
  20. package/dist/esm/extends/jsonc.d.ts +6 -6
  21. package/dist/esm/extends/jsonc.mjs +50 -118
  22. package/dist/esm/extends/react.d.ts +10 -3
  23. package/dist/esm/extends/react.mjs +39 -45
  24. package/dist/esm/extends/typescript.d.ts +4 -3
  25. package/dist/esm/extends/typescript.mjs +37 -48
  26. package/dist/esm/extends/yaml.d.ts +4 -4
  27. package/dist/esm/extends/yaml.mjs +23 -47
  28. package/dist/extends/_utils.d.ts +1 -1
  29. package/dist/extends/_utils.js +1 -1
  30. package/dist/extends/imports.d.ts +3 -3
  31. package/dist/extends/imports.js +38 -52
  32. package/dist/extends/javascript.d.ts +4 -3
  33. package/dist/extends/javascript.js +26 -37
  34. package/dist/extends/jsonc.d.ts +6 -6
  35. package/dist/extends/jsonc.js +29 -101
  36. package/dist/extends/react.d.ts +10 -3
  37. package/dist/extends/react.js +28 -43
  38. package/dist/extends/typescript.d.ts +4 -3
  39. package/dist/extends/typescript.js +35 -46
  40. package/dist/extends/yaml.d.ts +4 -4
  41. package/dist/extends/yaml.js +28 -52
  42. package/package.json +22 -4
@@ -1,56 +1,45 @@
1
- import { omit } from "es-toolkit";
1
+ import defu from "defu";
2
+ import { omit, pick } from "es-toolkit";
2
3
  import { extendsConfig } from "../utils/extendsConfig.mjs";
3
4
  import { ignoreKeys } from "./_utils.mjs";
4
5
  const configNamesMapSource = {
5
- rules: "vdustr/typescript/rules"
6
+ typescript: "vdustr/typescript/rules"
6
7
  };
7
8
  const typescriptInternal = (composer, options) => {
8
- extendsConfig(composer, "antfu/typescript/rules", (config) => [
9
- config,
10
- {
11
- /**
12
- * Inherited.
13
- */
14
- ...omit(config, ignoreKeys),
15
- /**
16
- * Default.
17
- */
18
- name: configNamesMapSource.rules,
19
- /**
20
- * Overridable.
21
- */
22
- ...options,
23
- rules: {
24
- /**
25
- * Default.
26
- */
27
- /**
28
- * Use `Array<T>` instead of `T[]` for better DX.
29
- *
30
- * - [Array<T> vs T[]: Which is better?](https://www.totaltypescript.com/array-types-in-typescript)
31
- * - [Array Types in TypeScript](https://tkdodo.eu/blog/array-types-in-type-script)
32
- */
33
- "ts/array-type": ["error", { default: "generic" }],
34
- /**
35
- * Namespaces are useful for centralizing the management of types. Just avoid
36
- * overusing them with runtime code.
37
- *
38
- * - References:
39
- * - <https://x.com/mattpocockuk/status/1805606072167940167>
40
- */
41
- "ts/no-namespace": "off",
42
- "ts/no-redeclare": "off",
43
- /**
44
- * Check for unused variables in TypeScript.
45
- */
46
- "ts/no-unused-vars": "off",
47
- /**
48
- * Overridable.
49
- */
50
- ...options?.rules
51
- }
52
- }
53
- ]);
9
+ extendsConfig(composer, "antfu/typescript/rules", (config) => {
10
+ const modifiedConfig = defu(pick(options?.typescript ?? {}, ["files", "ignores"]), config);
11
+ const omittedConfig = omit(modifiedConfig, ignoreKeys);
12
+ const rulesConfig = defu(
13
+ omit(options?.typescript ?? {}, ["files", "ignores"]),
14
+ {
15
+ name: configNamesMapSource.typescript,
16
+ rules: {
17
+ /**
18
+ * Use `Array<T>` instead of `T[]` for better DX.
19
+ *
20
+ * - [Array<T> vs T[]: Which is better?](https://www.totaltypescript.com/array-types-in-typescript)
21
+ * - [Array Types in TypeScript](https://tkdodo.eu/blog/array-types-in-type-script)
22
+ */
23
+ "ts/array-type": ["error", { default: "generic" }],
24
+ /**
25
+ * Namespaces are useful for centralizing the management of types. Just avoid
26
+ * overusing them with runtime code.
27
+ *
28
+ * - References:
29
+ * - <https://x.com/mattpocockuk/status/1805606072167940167>
30
+ */
31
+ "ts/no-namespace": "off",
32
+ "ts/no-redeclare": "off",
33
+ /**
34
+ * Check for unused variables in TypeScript.
35
+ */
36
+ "ts/no-unused-vars": "off"
37
+ }
38
+ },
39
+ omittedConfig
40
+ );
41
+ return [modifiedConfig, rulesConfig];
42
+ });
54
43
  };
55
44
  const typescript = Object.assign(typescriptInternal, {
56
45
  configNamesMapSource
@@ -2,8 +2,8 @@ import type { ConfigNames, TypedFlatConfigItem } from "@antfu/eslint-config";
2
2
  import type { FlatConfigComposer } from "eslint-flat-config-utils";
3
3
  import type { ConfigOverrides, ResolveConfigNamesMap } from "../types";
4
4
  declare const configNamesMapSource: {
5
- readonly rules: "vdustr/yaml/rules";
6
- readonly sortKeys: "vdustr/yaml/sortKeys";
5
+ readonly yaml: "vdustr/yaml/rules";
6
+ readonly sortKeys: "vdustr/yaml/sort-keys/rules";
7
7
  };
8
8
  declare module "../types" {
9
9
  interface ConfigNamesMap extends ResolveConfigNamesMap<yaml.ConfigNamesMapSource> {
@@ -18,8 +18,8 @@ declare namespace yaml {
18
18
  }
19
19
  declare const yaml: ((composer: FlatConfigComposer<TypedFlatConfigItem, ConfigNames>, options?: yaml.Options) => void) & {
20
20
  configNamesMapSource: {
21
- readonly rules: "vdustr/yaml/rules";
22
- readonly sortKeys: "vdustr/yaml/sortKeys";
21
+ readonly yaml: "vdustr/yaml/rules";
22
+ readonly sortKeys: "vdustr/yaml/sort-keys/rules";
23
23
  };
24
24
  };
25
25
  export { yaml };
@@ -1,34 +1,23 @@
1
- import { omit } from "es-toolkit";
1
+ import defu from "defu";
2
+ import { omit, pick } from "es-toolkit";
2
3
  import eslintPluginYml from "eslint-plugin-yml";
3
4
  import { GLOB_PNPM_WORKSPACE_YAML } from "../globs.mjs";
4
5
  import { extendsConfig } from "../utils/extendsConfig.mjs";
5
6
  import { renameRules } from "../utils/renameRules.mjs";
6
7
  import { ignoreKeys } from "./_utils.mjs";
7
8
  const configNamesMapSource = {
8
- rules: "vdustr/yaml/rules",
9
- sortKeys: "vdustr/yaml/sortKeys"
9
+ yaml: "vdustr/yaml/rules",
10
+ sortKeys: "vdustr/yaml/sort-keys/rules"
10
11
  };
11
12
  const yamlInternal = (composer, options) => {
12
- extendsConfig(composer, "antfu/yaml/rules", (config) => [
13
- config,
14
- {
15
- /**
16
- * Inherited.
17
- */
18
- ...omit(config, ignoreKeys),
19
- /**
20
- * Default.
21
- */
22
- name: configNamesMapSource.rules,
23
- /**
24
- * Overridable.
25
- */
26
- ...options,
27
- rules: {
28
- /**
29
- * Inherited from `eslint-plugin-yml`.
30
- */
31
- ...renameRules({
13
+ extendsConfig(composer, "antfu/yaml/rules", (config) => {
14
+ const modifiedConfig = defu(pick(options?.yaml ?? {}, ["files", "ignores"]), config);
15
+ const omittedConfig = omit(modifiedConfig, ignoreKeys);
16
+ const rulesConfig = defu(
17
+ omit(options?.yaml ?? {}, ["files", "ignores"]),
18
+ {
19
+ name: configNamesMapSource.yaml,
20
+ rules: renameRules({
32
21
  ...Object.fromEntries([
33
22
  ...eslintPluginYml.configs["flat/recommended"].flatMap(
34
23
  (config2) => Object.entries(config2.rules ?? {})
@@ -37,27 +26,14 @@ const yamlInternal = (composer, options) => {
37
26
  (config2) => Object.entries(config2.rules ?? {})
38
27
  )
39
28
  ])
40
- }),
41
- /**
42
- * Overridable.
43
- */
44
- ...options?.yaml?.rules
45
- }
46
- },
47
- {
48
- /**
49
- * Inherited.
50
- */
51
- ...config,
52
- /**
53
- * Default.
54
- */
29
+ })
30
+ },
31
+ omittedConfig
32
+ );
33
+ const sortKeysConfig = defu(options?.sortKeys, {
34
+ ...omit(omittedConfig, ["files", "ignores"]),
55
35
  name: configNamesMapSource.sortKeys,
56
- /**
57
- * Overridable.
58
- */
59
- ...options?.sortKeys,
60
- files: [GLOB_PNPM_WORKSPACE_YAML, ...options?.sortKeys?.files ?? []],
36
+ files: [GLOB_PNPM_WORKSPACE_YAML],
61
37
  rules: {
62
38
  "yaml/sort-keys": [
63
39
  "error",
@@ -69,11 +45,11 @@ const yamlInternal = (composer, options) => {
69
45
  natural: true
70
46
  }
71
47
  }
72
- ],
73
- ...options?.sortKeys?.rules
48
+ ]
74
49
  }
75
- }
76
- ]);
50
+ });
51
+ return [modifiedConfig, rulesConfig, sortKeysConfig];
52
+ });
77
53
  };
78
54
  const yaml = Object.assign(yamlInternal, {
79
55
  configNamesMapSource
@@ -1,2 +1,2 @@
1
- declare const ignoreKeys: ("plugins" | "rules")[];
1
+ declare const ignoreKeys: ("plugins" | "name" | "processor" | "rules")[];
2
2
  export { ignoreKeys };
@@ -4,4 +4,4 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.ignoreKeys = void 0;
7
- const ignoreKeys = exports.ignoreKeys = ["plugins", "rules"];
7
+ const ignoreKeys = exports.ignoreKeys = ["name", "plugins", "processor", "rules"];
@@ -3,7 +3,7 @@ import type { FlatConfigComposer } from "eslint-flat-config-utils";
3
3
  import type { ConfigOverrides, ResolveConfigNamesMap } from "../types";
4
4
  declare const configNamesMapSource: {
5
5
  readonly imports: "vdustr/imports/rules";
6
- readonly noDefaultExport: "vdustr/no-default-export/rules";
6
+ readonly noDefaultExport: "vdustr/imports/no-default-export/rules";
7
7
  };
8
8
  declare module "../types" {
9
9
  interface ConfigNamesMap extends ResolveConfigNamesMap<imports.ConfigNamesMapSource> {
@@ -13,13 +13,13 @@ declare namespace imports {
13
13
  type ConfigNamesMapSource = typeof configNamesMapSource;
14
14
  interface Options {
15
15
  imports?: ConfigOverrides;
16
- noDefaultExport: ConfigOverrides;
16
+ noDefaultExport?: ConfigOverrides;
17
17
  }
18
18
  }
19
19
  declare const imports: ((composer: FlatConfigComposer<TypedFlatConfigItem, ConfigNames>, options?: imports.Options) => void) & {
20
20
  configNamesMapSource: {
21
21
  readonly imports: "vdustr/imports/rules";
22
- readonly noDefaultExport: "vdustr/no-default-export/rules";
22
+ readonly noDefaultExport: "vdustr/imports/no-default-export/rules";
23
23
  };
24
24
  };
25
25
  export { imports };
@@ -5,66 +5,52 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.imports = void 0;
7
7
  var _eslintConfig = require("@antfu/eslint-config");
8
+ var _defu = _interopRequireDefault(require("defu"));
8
9
  var _esToolkit = require("es-toolkit");
9
10
  var _globs = require("../globs");
10
11
  var _extendsConfig = require("../utils/extendsConfig");
11
12
  var _utils = require("./_utils");
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
14
  const configNamesMapSource = {
13
15
  imports: "vdustr/imports/rules",
14
- noDefaultExport: "vdustr/no-default-export/rules"
16
+ noDefaultExport: "vdustr/imports/no-default-export/rules"
15
17
  };
16
18
  const importsInternal = (composer, options) => {
17
- (0, _extendsConfig.extendsConfig)(composer, "antfu/imports/rules", config => [config, {
18
- /**
19
- * Inherited.
20
- */
21
- ...(0, _esToolkit.omit)(config, _utils.ignoreKeys),
22
- /**
23
- * Default.
24
- */
25
- name: configNamesMapSource.imports,
26
- /**
27
- * Overridable.
28
- */
29
- ...options?.imports,
30
- rules: {
31
- /**
32
- * Default.
33
- */
34
- /**
35
- * Forbid `import {} from "module"`.
36
- */
37
- "import/no-empty-named-blocks": "error",
38
- /**
39
- * Wildcard imports can prevent tree shaking and cause name conflicts.
40
- * Consider using named imports instead.
41
- */
42
- "import/no-namespace": "error",
43
- /**
44
- * Overridable.
45
- */
46
- ...options?.imports?.rules
47
- }
48
- }, {
49
- name: configNamesMapSource.noDefaultExport,
50
- /**
51
- * Overridable.
52
- */
53
- ...options?.noDefaultExport,
54
- rules: {
55
- /**
56
- * Enforcing named exports improves consistency, enhances auto-completion and refactoring, and avoids issues
57
- * with default export renaming. Additionally, default exports might lead to different behavior when transformed
58
- * to CJS.
59
- */
60
- "import/no-default-export": "error",
61
- ...options?.noDefaultExport?.rules
62
- },
63
- files: [_eslintConfig.GLOB_JS, _eslintConfig.GLOB_JSX, _eslintConfig.GLOB_TS, _eslintConfig.GLOB_TSX, ...(options?.noDefaultExport?.files || [])],
64
- ignores: [
65
- // Configuration files
66
- _globs.GLOB_CONFIG_JS, _eslintConfig.GLOB_MARKDOWN_CODE, _eslintConfig.GLOB_ASTRO_TS, ...(options?.noDefaultExport?.ignores || [])]
67
- }]);
19
+ (0, _extendsConfig.extendsConfig)(composer, "antfu/imports/rules", config => {
20
+ const modifiedConfig = (0, _defu.default)((0, _esToolkit.pick)(options?.imports ?? {}, ["files", "ignores"]), config);
21
+ const omittedConfig = (0, _esToolkit.omit)(modifiedConfig, _utils.ignoreKeys);
22
+ const rulesConfig = (0, _defu.default)((0, _esToolkit.omit)(options?.imports ?? {}, ["files", "ignores"]), {
23
+ name: configNamesMapSource.imports,
24
+ rules: {
25
+ /**
26
+ * Forbid `import {} from "module"`.
27
+ */
28
+ "import/no-empty-named-blocks": "error",
29
+ /**
30
+ * Wildcard imports can prevent tree shaking and cause name conflicts.
31
+ * Consider using named imports instead.
32
+ */
33
+ "import/no-namespace": "error"
34
+ }
35
+ }, omittedConfig);
36
+ const noDefaultExportConfig = (0, _defu.default)(options?.noDefaultExport, {
37
+ name: configNamesMapSource.noDefaultExport,
38
+ rules: {
39
+ /**
40
+ * Enforcing named exports improves consistency, enhances
41
+ * auto-completion and refactoring, and avoids issues with default
42
+ * export renaming. Additionally, default exports might lead to
43
+ * different behavior when transformed to CJS.
44
+ */
45
+ "import/no-default-export": "error"
46
+ },
47
+ files: [_eslintConfig.GLOB_JS, _eslintConfig.GLOB_JSX, _eslintConfig.GLOB_TS, _eslintConfig.GLOB_TSX, ...(options?.noDefaultExport?.files || [])],
48
+ ignores: [
49
+ // Configuration files
50
+ _globs.GLOB_CONFIG_JS, _eslintConfig.GLOB_MARKDOWN_CODE, _eslintConfig.GLOB_ASTRO_TS, ...(options?.noDefaultExport?.ignores || [])]
51
+ }, (0, _esToolkit.omit)(omittedConfig, ["files", "ignores"]));
52
+ return [modifiedConfig, rulesConfig, noDefaultExportConfig];
53
+ });
68
54
  };
69
55
  const imports = exports.imports = Object.assign(importsInternal, {
70
56
  configNamesMapSource
@@ -2,7 +2,7 @@ import type { ConfigNames, TypedFlatConfigItem } from "@antfu/eslint-config";
2
2
  import type { FlatConfigComposer } from "eslint-flat-config-utils";
3
3
  import type { ConfigOverrides, ResolveConfigNamesMap } from "../types";
4
4
  declare const configNamesMapSource: {
5
- readonly rules: "vdustr/javascript/rules";
5
+ readonly javascript: "vdustr/javascript/rules";
6
6
  };
7
7
  declare module "../types" {
8
8
  interface ConfigNamesMap extends ResolveConfigNamesMap<javascript.ConfigNamesMapSource> {
@@ -10,12 +10,13 @@ declare module "../types" {
10
10
  }
11
11
  declare namespace javascript {
12
12
  type ConfigNamesMapSource = typeof configNamesMapSource;
13
- interface Options extends ConfigOverrides {
13
+ interface Options {
14
+ javascript?: ConfigOverrides;
14
15
  }
15
16
  }
16
17
  declare const javascript: ((composer: FlatConfigComposer<TypedFlatConfigItem, ConfigNames>, options?: javascript.Options) => void) & {
17
18
  configNamesMapSource: {
18
- readonly rules: "vdustr/javascript/rules";
19
+ readonly javascript: "vdustr/javascript/rules";
19
20
  };
20
21
  };
21
22
  export { javascript };
@@ -4,49 +4,38 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.javascript = void 0;
7
+ var _defu = _interopRequireDefault(require("defu"));
7
8
  var _esToolkit = require("es-toolkit");
8
9
  var _extendsConfig = require("../utils/extendsConfig");
9
10
  var _utils = require("./_utils");
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
12
  const configNamesMapSource = {
11
- rules: "vdustr/javascript/rules"
13
+ javascript: "vdustr/javascript/rules"
12
14
  };
13
15
  const javascriptInternal = (composer, options) => {
14
- (0, _extendsConfig.extendsConfig)(composer, "antfu/javascript/rules", config => [config, {
15
- /**
16
- * Inherited.
17
- */
18
- ...(0, _esToolkit.omit)(config, _utils.ignoreKeys),
19
- /**
20
- * Default.
21
- */
22
- name: configNamesMapSource.rules,
23
- /**
24
- * Overridable.
25
- */
26
- ...options,
27
- rules: {
28
- /**
29
- * Default.
30
- */
31
- /**
32
- * Some callbacks are purposefully named to make the code self-documenting.
33
- */
34
- "prefer-arrow-callback": "off",
35
- /**
36
- * This rule does not integrate well with JSDoc `@link` tags. It's advised
37
- * to verify its behavior with TypeScript instead.
38
- */
39
- "no-unused-vars": "off",
40
- "unused-imports/no-unused-vars": "off",
41
- "unused-imports/no-unused-imports-ts": "off",
42
- "unused-imports/no-unused-vars-ts": "off",
43
- "unused-imports/no-unused-imports": "off",
44
- /**
45
- * Overridable.
46
- */
47
- ...options?.rules
48
- }
49
- }]);
16
+ (0, _extendsConfig.extendsConfig)(composer, "antfu/javascript/rules", config => {
17
+ const modifiedConfig = (0, _defu.default)((0, _esToolkit.pick)(options?.javascript ?? {}, ["files", "ignores"]), config);
18
+ const omittedConfig = (0, _esToolkit.omit)(modifiedConfig, _utils.ignoreKeys);
19
+ const rulesConfig = (0, _defu.default)((0, _esToolkit.omit)(options?.javascript ?? {}, ["files", "ignores"]), {
20
+ name: configNamesMapSource.javascript,
21
+ rules: {
22
+ /**
23
+ * Some callbacks are purposefully named to make the code self-documenting.
24
+ */
25
+ "prefer-arrow-callback": "off",
26
+ /**
27
+ * This rule does not integrate well with JSDoc `@link` tags. It's advised
28
+ * to verify its behavior with TypeScript instead.
29
+ */
30
+ "no-unused-vars": "off",
31
+ "unused-imports/no-unused-vars": "off",
32
+ "unused-imports/no-unused-imports-ts": "off",
33
+ "unused-imports/no-unused-vars-ts": "off",
34
+ "unused-imports/no-unused-imports": "off"
35
+ }
36
+ }, omittedConfig);
37
+ return [modifiedConfig, rulesConfig];
38
+ });
50
39
  };
51
40
  const javascript = exports.javascript = Object.assign(javascriptInternal, {
52
41
  configNamesMapSource
@@ -2,8 +2,8 @@ import type { ConfigNames, TypedFlatConfigItem } from "@antfu/eslint-config";
2
2
  import type { FlatConfigComposer } from "eslint-flat-config-utils";
3
3
  import type { ConfigOverrides, ResolveConfigNamesMap } from "../types";
4
4
  declare const configNamesMapSource: {
5
- readonly rules: "vdustr/jsonc/rules";
6
- readonly sortArrayValues: "vdustr/jsonc/sortArrayValues";
5
+ readonly jsonc: "vdustr/jsonc/rules";
6
+ readonly sortArrayValues: "vdustr/jsonc/sort-array-values/rules";
7
7
  readonly packageJsonSetup: "vdustr/package-json/setup";
8
8
  readonly packageJsonRules: "vdustr/package-json/rules";
9
9
  };
@@ -15,14 +15,14 @@ declare namespace jsonc {
15
15
  type ConfigNamesMapSource = typeof configNamesMapSource;
16
16
  interface Options {
17
17
  jsonc?: ConfigOverrides;
18
+ sortArrayValues?: ConfigOverrides;
18
19
  packageJson?: ConfigOverrides;
19
- sortArrayValues: ConfigOverrides;
20
20
  }
21
21
  }
22
- declare const jsonc: ((composer: FlatConfigComposer<TypedFlatConfigItem, ConfigNames>, options?: jsonc.Options) => void) & {
22
+ declare const jsonc: ((composer: FlatConfigComposer<TypedFlatConfigItem, ConfigNames>, options?: jsonc.Options) => Promise<void>) & {
23
23
  configNamesMapSource: {
24
- readonly rules: "vdustr/jsonc/rules";
25
- readonly sortArrayValues: "vdustr/jsonc/sortArrayValues";
24
+ readonly jsonc: "vdustr/jsonc/rules";
25
+ readonly sortArrayValues: "vdustr/jsonc/sort-array-values/rules";
26
26
  readonly packageJsonSetup: "vdustr/package-json/setup";
27
27
  readonly packageJsonRules: "vdustr/package-json/rules";
28
28
  };
@@ -4,64 +4,30 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.jsonc = void 0;
7
+ var _eslintConfig = require("@antfu/eslint-config");
8
+ var _defu = _interopRequireDefault(require("defu"));
7
9
  var _esToolkit = require("es-toolkit");
8
- var _recommended = _interopRequireDefault(require("eslint-plugin-package-json/configs/recommended"));
9
10
  var _globs = require("../globs");
10
11
  var _extendsConfig = require("../utils/extendsConfig");
11
12
  var _utils = require("./_utils");
12
13
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
14
  const configNamesMapSource = {
14
- rules: "vdustr/jsonc/rules",
15
- sortArrayValues: "vdustr/jsonc/sortArrayValues",
15
+ jsonc: "vdustr/jsonc/rules",
16
+ sortArrayValues: "vdustr/jsonc/sort-array-values/rules",
16
17
  packageJsonSetup: "vdustr/package-json/setup",
17
18
  packageJsonRules: "vdustr/package-json/rules"
18
19
  };
19
- const jsoncInternal = (composer, options) => {
20
+ const jsoncInternal = async (composer, options) => {
21
+ await (0, _eslintConfig.ensurePackages)(["eslint-plugin-package-json"]);
22
+ const packageJson = await (0, _eslintConfig.interopDefault)(Promise.resolve().then(() => require("eslint-plugin-package-json/configs/recommended")));
20
23
  (0, _extendsConfig.extendsConfig)(composer, "antfu/jsonc/rules", config => {
21
- config = {
22
- ...config,
23
- files: [
24
- /**
25
- * Inherited.
26
- */
27
- ...(config.files ?? []),
28
- /**
29
- * Default.
30
- */
31
- _globs.GLOB_CODE_WORKSPACE,
32
- /**
33
- * Overridable.
34
- */
35
- ...(options?.jsonc?.files ?? [])],
36
- ignores: [
37
- /**
38
- * Inherited.
39
- */
40
- ...(config.ignores ?? []),
41
- /**
42
- * Default.
43
- */
44
- _globs.GLOB_PACKAGE_JSON,
45
- /**
46
- * Overridable.
47
- */
48
- ...(options?.jsonc?.ignores ?? [])]
49
- };
50
- return [config, {
51
- /**
52
- * Inherited.
53
- */
54
- ...(0, _esToolkit.omit)(config, _utils.ignoreKeys),
55
- /**
56
- * Default.
57
- */
58
- name: configNamesMapSource.rules,
59
- files: [...(config.files ?? [])],
60
- ignores: [...(config.ignores ?? [])],
61
- /**
62
- * Overridable.
63
- */
64
- ...(0, _esToolkit.omit)(options?.jsonc ?? {}, ["files", "ignores"]),
24
+ const modifiedConfig = (0, _defu.default)((0, _esToolkit.pick)(options?.jsonc ?? {}, ["files", "ignores"]), config, {
25
+ files: [_globs.GLOB_CODE_WORKSPACE],
26
+ ignores: [_globs.GLOB_PACKAGE_JSON]
27
+ });
28
+ const omittedConfig = (0, _esToolkit.omit)(modifiedConfig, _utils.ignoreKeys);
29
+ const rulesConfig = (0, _defu.default)((0, _esToolkit.omit)(options?.jsonc ?? {}, ["files", "ignores"]), {
30
+ name: configNamesMapSource.jsonc,
65
31
  rules: {
66
32
  /**
67
33
  * Default.
@@ -73,58 +39,12 @@ const jsoncInternal = (composer, options) => {
73
39
  caseSensitive: false,
74
40
  natural: true
75
41
  }
76
- }],
77
- /**
78
- * Overridable.
79
- */
80
- ...options?.jsonc?.rules
81
- }
82
- }, {
83
- plugins: _recommended.default.plugins,
84
- name: configNamesMapSource.packageJsonSetup
85
- }, {
86
- /**
87
- * Inherited.
88
- */
89
- ...(0, _esToolkit.omit)(_recommended.default, ["plugins"]),
90
- /**
91
- * Default.
92
- */
93
- name: configNamesMapSource.packageJsonRules,
94
- /**
95
- * Overridable.
96
- */
97
- ...options?.packageJson,
98
- plugins: {
99
- /**
100
- * Inherited.
101
- */
102
- ..._recommended.default.plugins,
103
- /**
104
- * Overridable.
105
- */
106
- ...options?.packageJson?.plugins
107
- },
108
- rules: {
109
- /**
110
- * Inherited.
111
- */
112
- ..._recommended.default.rules,
113
- /**
114
- * Overridable.
115
- */
116
- ...options?.packageJson?.rules
42
+ }]
117
43
  }
118
- }, {
119
- /**
120
- * Default.
121
- */
44
+ }, omittedConfig);
45
+ const sortArrayValuesConfig = (0, _defu.default)(options?.sortArrayValues, {
122
46
  name: configNamesMapSource.sortArrayValues,
123
- /**
124
- * Overridable.
125
- */
126
- ...options?.sortArrayValues,
127
- files: [_globs.GLOB_CSPELL_JSON, ...(options?.sortArrayValues?.files ?? [])],
47
+ files: [_globs.GLOB_CSPELL_JSON],
128
48
  rules: {
129
49
  "jsonc/sort-array-values": ["error", {
130
50
  pathPattern: ".*",
@@ -133,10 +53,18 @@ const jsoncInternal = (composer, options) => {
133
53
  caseSensitive: false,
134
54
  natural: true
135
55
  }
136
- }],
137
- ...options?.sortArrayValues?.rules
56
+ }]
138
57
  }
139
- }];
58
+ });
59
+ const packageJsonSetupConfig = {
60
+ plugins: packageJson.plugins,
61
+ name: configNamesMapSource.packageJsonSetup
62
+ };
63
+ const packageJsonRulesConfig = (0, _defu.default)(options?.packageJson, {
64
+ ...(0, _esToolkit.omit)(packageJson, ["name", "plugins"]),
65
+ name: configNamesMapSource.packageJsonRules
66
+ });
67
+ return [modifiedConfig, rulesConfig, sortArrayValuesConfig, packageJsonSetupConfig, packageJsonRulesConfig];
140
68
  }, ["antfu/sort/package-json", "antfu/sort/tsconfig-json"]);
141
69
  };
142
70
  const jsonc = exports.jsonc = Object.assign(jsoncInternal, {