@1stg/oxlint-config 1.1.0 → 1.2.0

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#457](https://github.com/1stG/configs/pull/457) [`eb778e9`](https://github.com/1stG/configs/commit/eb778e937c9225f5f38c47bf5b14b90b24510e2a) Thanks [@JounQin](https://github.com/JounQin)! - Restore recommended-rule coverage by reusing `oxlint-config-recommended` for the
8
+ supported ESLint, typescript-eslint, and Unicorn rules. ESLint reuses
9
+ `eslint-plugin-unicorn` recommended; `eslint-plugin-oxlint` disables the rules
10
+ already covered by Oxlint. Code mode is inferred from `typescript-eslint`, so
11
+ consumers without it keep it disabled. Unicorn rules that conflict with Oxfmt
12
+ comments or would force public API renames are disabled. The legacy TypeScript
13
+ exception for `no-array-callback-reference` is preserved.
14
+
3
15
  ## 1.1.0
4
16
 
5
17
  ### Minor Changes
package/README.md CHANGED
@@ -31,21 +31,21 @@ Use `defineConfig` only when you need options.
31
31
 
32
32
  ## Options
33
33
 
34
- | Option | Default | Description |
35
- | ---------------- | ---------------------------------------- | ------------------------------------------------------------ |
36
- | `categories` | `{ correctness: 'error', perf: 'warn' }` | Oxlint categories. |
37
- | `jsdoc` | `true` | Enable the JSDoc plugin. |
38
- | `jsPlugins` | `[]` | ESLint plugins to load (alpha). |
39
- | `rules` | `{}` | Extra rule overrides. |
40
- | `ignorePatterns` | `[]` | Native Oxlint ignore patterns. |
41
- | `node` | `true` | Node.js globals and rules. |
42
- | `promise` | `true` | Enable the Promise plugin. |
43
- | `react` | installed `react` | React, JSX accessibility and perf rules. |
44
- | `vue` | installed `vue` | Vue rules. |
45
- | `vitest` | installed `vitest` | Vitest globals and rules. |
46
- | `jest` | installed `jest` | Jest globals and rules. |
47
- | `typeAware` | installed `oxlint-tsgolint` | Enable rules requiring type info. |
48
- | `noMagicNumbers` | `undefined` | Options merged into `no-magic-numbers`; `false` disables it. |
34
+ | Option | Default | Description |
35
+ | ---------------- | ---------------------------------------- | ------------------------------------------------------------------ |
36
+ | `categories` | `{ correctness: 'error', perf: 'warn' }` | Oxlint categories. |
37
+ | `jsdoc` | `true` | Enable the JSDoc plugin. |
38
+ | `jsPlugins` | `[]` | ESLint plugins to load (alpha). |
39
+ | `rules` | `{}` | Extra rule overrides. |
40
+ | `ignorePatterns` | `[]` | Native Oxlint ignore patterns. |
41
+ | `node` | `true` | Node.js globals and rules. |
42
+ | `promise` | `true` | Enable the Promise plugin. |
43
+ | `react` | installed `react` | React 17+ automatic JSX runtime; JSX accessibility and perf rules. |
44
+ | `vue` | installed `vue` | Vue rules. |
45
+ | `vitest` | installed `vitest` | Vitest globals and rules. |
46
+ | `jest` | installed `jest` | Jest globals and rules. |
47
+ | `typeAware` | installed `oxlint-tsgolint` | Enable rules requiring type info. |
48
+ | `noMagicNumbers` | `undefined` | Options merged into `no-magic-numbers`; `false` disables it. |
49
49
 
50
50
  `ignorePatterns` is the native Oxlint field and can be passed directly; there
51
51
  is no separate `ignores` alias.
package/lib/index.d.ts CHANGED
@@ -3,17 +3,29 @@ type OxlintRules = NonNullable<OxlintConfig['rules']>;
3
3
  type NoMagicNumbersRule = NonNullable<OxlintRules['no-magic-numbers']>;
4
4
  type NoMagicNumbersOptions = Extract<NoMagicNumbersRule, [unknown, unknown]>[1];
5
5
  export interface OxlintConfigOptions extends OxlintConfig {
6
+ /** Enable the JSDoc plugin. @default true */
6
7
  jsdoc?: boolean;
8
+ /** Enable Node.js globals and rules. @default true */
7
9
  node?: boolean;
10
+ /** Enable the Promise plugin. @default true */
8
11
  promise?: boolean;
12
+ /** Enable React and JSX accessibility rules. @default false */
9
13
  react?: boolean;
14
+ /** Enable Vue rules. @default false */
10
15
  vue?: boolean;
16
+ /** Enable Vitest globals and rules. @default false */
11
17
  vitest?: boolean;
18
+ /** Enable Jest globals and rules. @default false */
12
19
  jest?: boolean;
20
+ /** Enable rules that require type information. @default installed `oxlint-tsgolint` */
13
21
  typeAware?: boolean;
22
+ /** Options merged into `no-magic-numbers`; `false` disables the rule. */
14
23
  noMagicNumbers?: false | NoMagicNumbersOptions;
15
24
  }
25
+ /**
26
+ * Build an Oxlint configuration. Oxlint discovers `oxlint.config.ts` automatically; pass `--config`
27
+ * only for a custom file name.
28
+ */
16
29
  export declare const defineConfig: ({ categories, jest, typeAware, noMagicNumbers, jsdoc, node, promise, react, vitest, vue, plugins: extraPlugins, env: extraEnv, rules: extraRules, overrides: extraOverrides, ignorePatterns: extraIgnorePatterns, ...options }?: OxlintConfigOptions) => OxlintConfig;
17
30
  declare const _default: OxlintConfig;
18
31
  export default _default;
19
- //# sourceMappingURL=index.d.ts.map
package/lib/index.js CHANGED
@@ -10,6 +10,7 @@ var __rest = (this && this.__rest) || function (s, e) {
10
10
  return t;
11
11
  };
12
12
  import { isPkgAvailable } from '@pkgr/utils';
13
+ import recommended from 'oxlint-config-recommended';
13
14
  const DEFAULT_MAGIC_NUMBERS = [
14
15
  -1, 0, 1, 2, 3, 5, 7, 10, 12, 15, 20, 24, 28, 29, 30, 31, 50, 60, 100, 365, 366, 500, 1000, 1024,
15
16
  3600,
@@ -24,8 +25,12 @@ const DEFAULT_NO_MAGIC_NUMBERS_OPTIONS = {
24
25
  ignoreReadonlyClassProperties: true,
25
26
  ignoreTypeIndexes: true,
26
27
  };
28
+ /**
29
+ * Build an Oxlint configuration. Oxlint discovers `oxlint.config.ts` automatically; pass `--config`
30
+ * only for a custom file name.
31
+ */
27
32
  export const defineConfig = (_a = {}) => {
28
- var _b;
33
+ var _b, _c;
29
34
  var { categories = { correctness: 'error', perf: 'warn' }, jest = isPkgAvailable('jest'), typeAware = isPkgAvailable('oxlint-tsgolint/package.json'), noMagicNumbers, jsdoc = true, node = true, promise = true, react = isPkgAvailable('react'), vitest = isPkgAvailable('vitest'), vue = isPkgAvailable('vue'), plugins: extraPlugins = [], env: extraEnv, rules: extraRules, overrides: extraOverrides, ignorePatterns: extraIgnorePatterns } = _a, options = __rest(_a, ["categories", "jest", "typeAware", "noMagicNumbers", "jsdoc", "node", "promise", "react", "vitest", "vue", "plugins", "env", "rules", "overrides", "ignorePatterns"]);
30
35
  const plugins = ['oxc', 'unicorn', 'typescript', 'import'];
31
36
  if (promise) {
@@ -56,8 +61,8 @@ export const defineConfig = (_a = {}) => {
56
61
  'error',
57
62
  Object.assign(Object.assign(Object.assign({}, DEFAULT_NO_MAGIC_NUMBERS_OPTIONS), noMagicNumbers), { ignore: [...new Set([...DEFAULT_MAGIC_NUMBERS, ...((_b = noMagicNumbers === null || noMagicNumbers === void 0 ? void 0 : noMagicNumbers.ignore) !== null && _b !== void 0 ? _b : [])])] }),
58
63
  ];
59
- return Object.assign(Object.assign({}, options), { options: Object.assign(Object.assign({}, options.options), (typeAware && { typeAware: true })), plugins,
60
- categories, env: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ builtin: true }, (node && { node: true })), (react && { browser: true })), (vue && { vue: true })), (vitest && { vitest: true })), (jest && { jest: true })), extraEnv), rules: Object.assign(Object.assign(Object.assign({}, (typeAware && {
64
+ return Object.assign(Object.assign({}, options), { extends: [recommended, ...((_c = options.extends) !== null && _c !== void 0 ? _c : [])], options: Object.assign(Object.assign({}, options.options), (typeAware && { typeAware: true })), plugins,
65
+ categories, env: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ builtin: true }, (node && { node: true })), (react && { browser: true })), (vue && { vue: true })), (vitest && { vitest: true })), (jest && { jest: true })), extraEnv), rules: Object.assign(Object.assign(Object.assign({ 'unicorn/consistent-date-clone': 'off', 'unicorn/consistent-function-scoping': 'off', 'unicorn/no-array-reduce': 'off', 'unicorn/no-null': 'off', 'unicorn/no-unreadable-array-destructuring': 'off', 'unicorn/prefer-module': 'off', 'unicorn/prefer-object-from-entries': 'off', 'unicorn/catch-error-name': ['error', { name: 'error', ignore: ['^e(rr)?$'] }], 'unicorn/filename-case': ['error', { cases: { kebabCase: true, pascalCase: true } }], 'unicorn/prefer-export-from': ['error', { checkUsedVariables: false }] }, (typeAware && {
61
66
  'typescript/await-thenable': 'error',
62
67
  'typescript/no-deprecated': 'error',
63
68
  'typescript/no-floating-promises': 'error',
@@ -70,7 +75,7 @@ export const defineConfig = (_a = {}) => {
70
75
  'typescript/prefer-reduce-type-parameter': 'error',
71
76
  'typescript/require-array-sort-compare': ['error', { ignoreStringArrays: true }],
72
77
  'typescript/restrict-plus-operands': 'error',
73
- })), { 'arrow-body-style': 'error', curly: ['error', 'all'], eqeqeq: ['error', 'always'], 'no-case-declarations': 'error', 'no-else-return': ['error', { allowElseIf: false }], 'no-empty': ['error', { allowEmptyCatch: true }], 'no-empty-function': 'error', 'no-fallthrough': 'error', 'no-magic-numbers': noMagicNumbersRule, 'no-negated-condition': 'error', 'no-prototype-builtins': 'error', 'no-redeclare': 'error', 'no-regex-spaces': 'error', 'no-var': 'error', 'object-shorthand': 'error', 'prefer-const': ['error', { destructuring: 'all' }], 'prefer-object-spread': 'error', 'prefer-regex-literals': 'error', 'preserve-caught-error': 'error', 'import/newline-after-import': 'error', 'import/no-duplicates': 'error', 'typescript/consistent-type-definitions': ['error', 'interface'], 'typescript/no-unused-vars': ['error', { argsIgnorePattern: '^_', varsIgnorePattern: '^_' }], 'unicorn/prefer-node-protocol': 'error', 'unicorn/prefer-number-properties': 'error', 'unicorn/prefer-string-starts-ends-with': 'error' }), extraRules), overrides: [
78
+ })), { 'arrow-body-style': 'error', curly: ['error', 'all'], eqeqeq: ['error', 'always'], 'no-case-declarations': 'error', 'no-else-return': ['error', { allowElseIf: false }], 'no-empty': ['error', { allowEmptyCatch: true }], 'no-empty-function': 'error', 'no-fallthrough': 'error', 'no-magic-numbers': noMagicNumbersRule, 'no-negated-condition': 'error', 'no-prototype-builtins': 'error', 'no-redeclare': 'error', 'no-regex-spaces': 'error', 'no-var': 'error', 'object-shorthand': 'error', 'prefer-const': ['error', { destructuring: 'all' }], 'prefer-object-spread': 'error', 'prefer-regex-literals': 'error', 'preserve-caught-error': 'error', 'import/newline-after-import': 'error', 'import/no-duplicates': 'error', 'react/react-in-jsx-scope': 'off', 'typescript/consistent-type-definitions': ['error', 'interface'], 'typescript/no-unused-vars': ['error', { argsIgnorePattern: '^_', varsIgnorePattern: '^_' }], 'unicorn/prefer-node-protocol': 'error', 'unicorn/prefer-number-properties': 'error', 'unicorn/prefer-string-starts-ends-with': 'error' }), extraRules), overrides: [
74
79
  {
75
80
  files: ['**/*.d.{ts,mts,cts}', '**/*.d.*.{ts,mts,cts}'],
76
81
  rules: {
@@ -79,6 +84,27 @@ export const defineConfig = (_a = {}) => {
79
84
  'import/no-duplicates': 'off',
80
85
  },
81
86
  },
87
+ {
88
+ files: ['**/*.{cts,mts,ts,tsx}'],
89
+ rules: {
90
+ // Legacy ts-base disabled this; callback references are type-safe.
91
+ 'unicorn/no-array-callback-reference': 'off',
92
+ },
93
+ },
94
+ {
95
+ files: ['**/*.{cjs,cts,js}'],
96
+ rules: {
97
+ 'typescript/no-require-imports': 'off',
98
+ 'unicorn/prefer-top-level-await': 'off',
99
+ },
100
+ },
101
+ {
102
+ files: ['tests/**'],
103
+ rules: {
104
+ 'typescript/no-extraneous-class': 'off',
105
+ 'typescript/no-unsafe-type-assertion': 'off',
106
+ },
107
+ },
82
108
  ...(extraOverrides !== null && extraOverrides !== void 0 ? extraOverrides : []),
83
109
  ], ignorePatterns: [
84
110
  '**/.dsh',
@@ -96,4 +122,3 @@ export const defineConfig = (_a = {}) => {
96
122
  ] });
97
123
  };
98
124
  export default defineConfig();
99
- //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1stg/oxlint-config",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "type": "module",
5
5
  "description": "Personal but Shareable Oxlint Configuration for all 1stG.me projects",
6
6
  "repository": "git+https://github.com/1stG/configs.git",
@@ -24,7 +24,7 @@
24
24
  "lib"
25
25
  ],
26
26
  "peerDependencies": {
27
- "oxlint": ">=1.80.0",
27
+ "oxlint": ">=1.89.0",
28
28
  "oxlint-tsgolint": "^7.0.2005"
29
29
  },
30
30
  "peerDependenciesMeta": {
@@ -33,7 +33,8 @@
33
33
  }
34
34
  },
35
35
  "dependencies": {
36
- "@pkgr/utils": "^4.1.0"
36
+ "@pkgr/utils": "^4.1.0",
37
+ "oxlint-config-recommended": "^1.2.1"
37
38
  },
38
39
  "publishConfig": {
39
40
  "access": "public"
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAE1C,KAAK,WAAW,GAAG,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAA;AACrD,KAAK,kBAAkB,GAAG,WAAW,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAA;AACtE,KAAK,qBAAqB,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAkB/E,MAAM,WAAW,mBAAoB,SAAQ,YAAY;IAEvD,KAAK,CAAC,EAAE,OAAO,CAAA;IAEf,IAAI,CAAC,EAAE,OAAO,CAAA;IAEd,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB,KAAK,CAAC,EAAE,OAAO,CAAA;IAEf,GAAG,CAAC,EAAE,OAAO,CAAA;IAEb,MAAM,CAAC,EAAE,OAAO,CAAA;IAEhB,IAAI,CAAC,EAAE,OAAO,CAAA;IAEd,SAAS,CAAC,EAAE,OAAO,CAAA;IAEnB,cAAc,CAAC,EAAE,KAAK,GAAG,qBAAqB,CAAA;CAC/C;AAMD,eAAO,MAAM,YAAY,oOAiBtB,mBAAmB,KAAQ,YA4H7B,CAAA"}
package/lib/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}