@slango.configs/oxlint 0.0.0 → 0.1.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.
Files changed (56) hide show
  1. package/README.md +30 -24
  2. package/dist/common.d.ts +32 -0
  3. package/dist/common.d.ts.map +1 -0
  4. package/dist/common.js +99 -0
  5. package/dist/common.js.map +1 -0
  6. package/dist/presets/javascript-node.d.ts +7 -0
  7. package/dist/presets/javascript-node.d.ts.map +1 -0
  8. package/dist/presets/javascript-node.js +7 -0
  9. package/dist/presets/javascript-node.js.map +1 -0
  10. package/dist/presets/typescript-browser.d.ts +7 -0
  11. package/dist/presets/typescript-browser.d.ts.map +1 -0
  12. package/dist/presets/typescript-browser.js +8 -0
  13. package/dist/presets/typescript-browser.js.map +1 -0
  14. package/dist/presets/typescript-isomorphic.d.ts +7 -0
  15. package/dist/presets/typescript-isomorphic.d.ts.map +1 -0
  16. package/{src → dist}/presets/typescript-isomorphic.js +5 -9
  17. package/dist/presets/typescript-isomorphic.js.map +1 -0
  18. package/dist/presets/typescript-next.d.ts +7 -0
  19. package/dist/presets/typescript-next.d.ts.map +1 -0
  20. package/dist/presets/typescript-next.js +40 -0
  21. package/dist/presets/typescript-next.js.map +1 -0
  22. package/dist/presets/typescript-node.d.ts +7 -0
  23. package/dist/presets/typescript-node.d.ts.map +1 -0
  24. package/dist/presets/typescript-node.js +7 -0
  25. package/dist/presets/typescript-node.js.map +1 -0
  26. package/dist/presets/typescript-react.d.ts +9 -0
  27. package/dist/presets/typescript-react.d.ts.map +1 -0
  28. package/dist/presets/typescript-react.js +17 -0
  29. package/dist/presets/typescript-react.js.map +1 -0
  30. package/dist/presets/typescript.d.ts +7 -0
  31. package/dist/presets/typescript.d.ts.map +1 -0
  32. package/dist/presets/typescript.js +7 -0
  33. package/dist/presets/typescript.js.map +1 -0
  34. package/package.json +13 -9
  35. package/src/common.js +0 -135
  36. package/src/presets/javascript-node.d.ts +0 -8
  37. package/src/presets/javascript-node.js +0 -11
  38. package/src/presets/options.d.ts +0 -6
  39. package/src/presets/typescript-browser.d.ts +0 -8
  40. package/src/presets/typescript-browser.js +0 -12
  41. package/src/presets/typescript-isomorphic.d.ts +0 -8
  42. package/src/presets/typescript-next.d.ts +0 -8
  43. package/src/presets/typescript-next.js +0 -14
  44. package/src/presets/typescript-node.d.ts +0 -8
  45. package/src/presets/typescript-node.js +0 -11
  46. package/src/presets/typescript-react.d.ts +0 -8
  47. package/src/presets/typescript-react.js +0 -12
  48. package/src/presets/typescript.d.ts +0 -8
  49. package/src/presets/typescript.js +0 -11
  50. package/src/rules/javascript-node.js +0 -143
  51. package/src/rules/typescript-browser.js +0 -214
  52. package/src/rules/typescript-isomorphic.js +0 -214
  53. package/src/rules/typescript-next.js +0 -361
  54. package/src/rules/typescript-node.js +0 -214
  55. package/src/rules/typescript-react.js +0 -320
  56. package/src/rules/typescript.js +0 -214
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Slango oxlint Configs (@slango.configs/oxlint)
2
2
 
3
- oxlint presets mirroring [`@slango.configs/eslint`](../eslint/README.md), for projects on
4
- TypeScript 7 where typescript-eslint can no longer run. Type-aware rules are provided by
3
+ oxlint presets replacing [`@slango.configs/eslint`](../eslint/README.md) for projects on
4
+ TypeScript 7, where typescript-eslint can no longer run. Type-aware rules are provided by
5
5
  [tsgolint](https://github.com/oxc-project/tsgolint) (built on TypeScript 7), everything
6
6
  oxlint has no native port for (`perfectionist`, `regexp`) is loaded through oxlint's JS plugin
7
7
  bridge from this package, so consumers need no extra plugin dependencies.
@@ -18,34 +18,37 @@ bridge from this package, so consumers need no extra plugin dependencies.
18
18
 
19
19
  ## Included rules
20
20
 
21
- The rule tables in `src/rules/*.js` are **generated** from the ESLint presets
22
- (`pnpm generate:rules`): the effective ESLint rule set of each preset is resolved, mapped
23
- to oxlint's rule names and filtered to what oxlint implements. That keeps both packages in
24
- parity; regenerate after bumping `@slango.configs/eslint` or `oxlint`.
25
-
26
- | Source | Available in preset | How |
27
- | ----------------------------------------------------------------- | --------------------------- | ------------------------------------------------ |
28
- | `@eslint/js` recommended | `all` | native |
29
- | `eslint-plugin-import-x` recommended | `all` | native (`import/*`) |
30
- | `eslint-plugin-regexp` recommended | `all` | JS plugin |
31
- | `eslint-plugin-perfectionist` (tiered) | `all` | JS plugin, see below |
32
- | `typescript-eslint` recommendedTypeChecked | `all typescript presets` | native, type-aware via tsgolint (`typescript/*`) |
33
- | `eslint-plugin-jsx-a11y` recommended | `typescript-react`, `-next` | native (`jsx-a11y/*`) |
34
- | `eslint-plugin-react-hooks` (`rules-of-hooks`, `exhaustive-deps`) | `typescript-react`, `-next` | native (`react/*`) |
35
- | `eslint-plugin-react-refresh` `only-export-components` | `typescript-react` | native (`react/only-export-components`) |
36
- | `@next/eslint-plugin-next` core-web-vitals | `typescript-next` | native (`nextjs/*`) |
37
-
38
- Intentionally not carried over:
21
+ Presets enable oxlint's own recommended set, the **`correctness`** category ("code that is
22
+ definitely wrong or useless"), for oxlint's default plugins (`eslint`, `typescript`, `unicorn`,
23
+ `oxc`) plus `import`, `node` and `promise`. React presets add the `react` and `jsx-a11y` plugins,
24
+ the Next preset adds `nextjs`. With `--type-aware`, the category also covers tsgolint's typed
25
+ rules (`no-floating-promises`, `await-thenable`, `unbound-method`, ...).
26
+
27
+ On top of the category:
28
+
29
+ | Source | Available in preset | How |
30
+ | --------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------- |
31
+ | `eslint-plugin-regexp` recommended | `all` | JS plugin, rule list read from the plugin |
32
+ | `eslint-plugin-perfectionist` (tiered) | `all` | JS plugin, see options |
33
+ | `no-unused-vars` (`ignoreRestSiblings`), `import/first`, `import/no-anonymous-default-export` | `all` | explicit |
34
+ | `react/rules-of-hooks` | `typescript-react`, `-next` | explicit (oxlint files it under `pedantic`) |
35
+ | `react/only-export-components` | `typescript-react` (`eslint-plugin-react-refresh` vite options), `typescript-next` (next options) | explicit |
36
+
37
+ Other categories (`suspicious`, `pedantic`, `perf`, `style`, `restriction`, `nursery`) are off.
38
+ Enable them in your own config if wanted, e.g. `categories: { suspicious: 'warn' }`. Note that
39
+ oxlint files typescript-eslint's `no-unsafe-*`, `no-misused-promises` and `require-await` under
40
+ `pedantic`, so unlike `@slango.configs/eslint` they are not on by default.
41
+
42
+ Intentionally not carried over from `@slango.configs/eslint`:
39
43
 
40
44
  - `eslint-plugin-prettier`: run prettier directly (lint-staged already does).
41
45
  - `eslint-plugin-eslint-comments`: use `oxlint --report-unused-disable-directives`.
42
- - `import-x/no-unresolved`: oxlint refuses to implement it, `tsc` covers it.
43
- - `no-undef`, `no-octal`, `no-dupe-args`: superseded by TypeScript / strict mode.
44
-
45
- Rules dropped per preset are listed in the `dropped` field of `src/rules/<preset>.js`.
46
46
 
47
47
  ## Usage
48
48
 
49
+ The package is written in TypeScript and ships `dist` with declarations, so `oxlint.config.ts`
50
+ files are fully typed against oxlint's `OxlintConfig`.
51
+
49
52
  Add `@slango.configs/oxlint`, `oxlint` and `oxlint-tsgolint` as dev dependencies, then create
50
53
  an `oxlint.config.ts` in the package (only `.ts` / `.mts` config files are auto-discovered):
51
54
 
@@ -96,6 +99,9 @@ export default defineConfig({
96
99
  `tsconfig.json` per package, files outside its `include` should be ignored.
97
100
  - JS plugin fixes are single-pass: `oxlint --fix` may need a second run to fully sort
98
101
  imports and named imports.
102
+ - Rule selection follows oxlint's `correctness` category, not typescript-eslint's
103
+ `recommendedTypeChecked`: expect a few new `unicorn/*` and `oxc/*` findings, and no
104
+ `no-unsafe-*` findings unless you enable `pedantic` rules yourself.
99
105
  - Expect new findings the ESLint presets missed before `@slango.configs/eslint` 1.3:
100
106
  `import/first` (silently off for TypeScript files) and the `react/*` hooks and React Compiler
101
107
  rules (the plugins were registered without rules).
@@ -0,0 +1,32 @@
1
+ import type { OxlintConfig, OxlintEnv, OxlintGlobals } from 'oxlint';
2
+ export type Plugins = NonNullable<OxlintConfig['plugins']>;
3
+ export type Rules = NonNullable<OxlintConfig['rules']>;
4
+ export type PerfectionistLevel = 'off' | 'relaxed' | 'moderate' | 'strict';
5
+ export interface PresetOptions {
6
+ perfectionist?: PerfectionistLevel;
7
+ }
8
+ export declare const globs: {
9
+ javascript: string[];
10
+ typescript: string[];
11
+ };
12
+ export declare const ignorePatterns: string[];
13
+ export declare const jsPlugins: () => string[];
14
+ export declare const categories: OxlintConfig['categories'];
15
+ export declare const regexpRules: Rules;
16
+ export declare const perfectionistLevels: Record<PerfectionistLevel, Rules>;
17
+ export declare const normalizeOptions: (options?: PresetOptions) => Required<PresetOptions>;
18
+ export declare const baseRules: Rules;
19
+ export declare const basePlugins: Plugins;
20
+ export interface BuildConfigInput {
21
+ options: PresetOptions;
22
+ plugins?: Plugins;
23
+ env?: OxlintEnv;
24
+ globals?: OxlintGlobals;
25
+ typescriptEnv?: OxlintEnv;
26
+ typescriptGlobals?: OxlintGlobals;
27
+ rules?: Rules;
28
+ typescriptRules?: Rules;
29
+ ignores?: string[];
30
+ }
31
+ export declare const buildConfig: ({ options, plugins, env, globals, typescriptEnv, typescriptGlobals, rules, typescriptRules, ignores, }: BuildConfigInput) => OxlintConfig;
32
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAkB,MAAM,QAAQ,CAAC;AAKrF,MAAM,MAAM,OAAO,GAAG,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;AAC3D,MAAM,MAAM,KAAK,GAAG,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;AAEvD,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE3E,MAAM,WAAW,aAAa;IAE5B,aAAa,CAAC,EAAE,kBAAkB,CAAC;CACpC;AAED,eAAO,MAAM,KAAK;IAChB,UAAU;IACV,UAAU;CACX,CAAC;AAEF,eAAO,MAAM,cAAc,UAAmC,CAAC;AAM/D,eAAO,MAAM,SAAS,QAAO,MAAM,EAGlC,CAAC;AAKF,eAAO,MAAM,UAAU,EAAE,YAAY,CAAC,YAAY,CAA4B,CAAC;AAG/E,eAAO,MAAM,WAAW,EAAE,KAIhB,CAAC;AAmDX,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,kBAAkB,EAAE,KAAK,CAKjE,CAAC;AAIF,eAAO,MAAM,gBAAgB,aAAa,aAAa,KAAQ,QAAQ,CAAC,aAAa,CAmBpF,CAAC;AAGF,eAAO,MAAM,SAAS,EAAE,KAIvB,CAAC;AAGF,eAAO,MAAM,WAAW,EAAE,OAAuE,CAAC;AAElG,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,iBAAiB,CAAC,EAAE,aAAa,CAAC;IAClC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,eAAe,CAAC,EAAE,KAAK,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAOD,eAAO,MAAM,WAAW,2GAUrB,gBAAgB,KAAG,YAsBrB,CAAC"}
package/dist/common.js ADDED
@@ -0,0 +1,99 @@
1
+ import { configs as regexpConfigs } from 'eslint-plugin-regexp';
2
+ import { fileURLToPath } from 'node:url';
3
+ export const globs = {
4
+ javascript: ['**/*.{js,cjs,mjs,jsx}'],
5
+ typescript: ['**/*.{ts,tsx}'],
6
+ };
7
+ export const ignorePatterns = ['**/dist/**', '**/coverage/**'];
8
+ const resolvePlugin = (name) => fileURLToPath(import.meta.resolve(name));
9
+ export const jsPlugins = () => [
10
+ resolvePlugin('eslint-plugin-perfectionist'),
11
+ resolvePlugin('eslint-plugin-regexp'),
12
+ ];
13
+ export const categories = { correctness: 'error' };
14
+ export const regexpRules = Object.fromEntries(Object.entries(regexpConfigs['flat/recommended'].rules ?? {}).filter(([name]) => name.startsWith('regexp/')));
15
+ const naturalSort = { type: 'natural', order: 'asc' };
16
+ const sortModulesRule = ['error', { ...naturalSort, partitionByNewLine: true }];
17
+ const sortRule = ['error', naturalSort];
18
+ const tier1 = [
19
+ 'sort-imports',
20
+ 'sort-named-imports',
21
+ 'sort-named-exports',
22
+ 'sort-exports',
23
+ 'sort-import-attributes',
24
+ 'sort-export-attributes',
25
+ 'sort-modules',
26
+ ];
27
+ const tier2 = [
28
+ 'sort-union-types',
29
+ 'sort-intersection-types',
30
+ 'sort-heritage-clauses',
31
+ 'sort-object-types',
32
+ 'sort-interfaces',
33
+ 'sort-enums',
34
+ ];
35
+ const tier3 = [
36
+ 'sort-objects',
37
+ 'sort-classes',
38
+ 'sort-jsx-props',
39
+ 'sort-decorators',
40
+ 'sort-switch-case',
41
+ 'sort-variable-declarations',
42
+ 'sort-array-includes',
43
+ 'sort-sets',
44
+ 'sort-maps',
45
+ ];
46
+ const tierRules = (names, enabled) => Object.fromEntries(names.map((name) => [
47
+ `perfectionist/${name}`,
48
+ enabled ? (name === 'sort-modules' ? sortModulesRule : sortRule) : 'off',
49
+ ]));
50
+ export const perfectionistLevels = {
51
+ off: { ...tierRules(tier1, false), ...tierRules(tier2, false), ...tierRules(tier3, false) },
52
+ relaxed: { ...tierRules(tier1, true), ...tierRules(tier2, false), ...tierRules(tier3, false) },
53
+ moderate: { ...tierRules(tier1, true), ...tierRules(tier2, true), ...tierRules(tier3, false) },
54
+ strict: { ...tierRules(tier1, true), ...tierRules(tier2, true), ...tierRules(tier3, true) },
55
+ };
56
+ const defaultOptions = { perfectionist: 'relaxed' };
57
+ export const normalizeOptions = (options = {}) => {
58
+ if (options === null || typeof options !== 'object' || Array.isArray(options)) {
59
+ throw new Error('options must be an object');
60
+ }
61
+ const { perfectionist = defaultOptions.perfectionist, ...rest } = options;
62
+ if (!Object.hasOwn(perfectionistLevels, perfectionist)) {
63
+ throw new Error(`Invalid perfectionist level "${String(perfectionist)}". Expected one of: ${Object.keys(perfectionistLevels).join(', ')}`);
64
+ }
65
+ const unknown = Object.keys(rest);
66
+ if (unknown.length > 0) {
67
+ throw new Error(`Unknown option(s): ${unknown.join(', ')}`);
68
+ }
69
+ return { perfectionist };
70
+ };
71
+ export const baseRules = {
72
+ 'no-unused-vars': ['error', { ignoreRestSiblings: true }],
73
+ 'import/first': 'error',
74
+ 'import/no-anonymous-default-export': 'error',
75
+ };
76
+ export const basePlugins = ['typescript', 'unicorn', 'oxc', 'import', 'node', 'promise'];
77
+ export const buildConfig = ({ options, plugins = [], env = {}, globals = {}, typescriptEnv, typescriptGlobals, rules = {}, typescriptRules = {}, ignores = [], }) => {
78
+ const { perfectionist } = normalizeOptions(options);
79
+ const overrides = [];
80
+ if (typescriptEnv || typescriptGlobals || Object.keys(typescriptRules).length > 0) {
81
+ overrides.push({
82
+ files: globs.typescript,
83
+ ...(typescriptEnv ? { env: typescriptEnv } : {}),
84
+ ...(typescriptGlobals ? { globals: typescriptGlobals } : {}),
85
+ rules: typescriptRules,
86
+ });
87
+ }
88
+ return {
89
+ plugins: [...basePlugins, ...plugins],
90
+ jsPlugins: jsPlugins(),
91
+ categories,
92
+ env: { builtin: true, ...env },
93
+ globals,
94
+ ignorePatterns: [...ignorePatterns, ...ignores],
95
+ rules: { ...regexpRules, ...perfectionistLevels[perfectionist], ...baseRules, ...rules },
96
+ overrides,
97
+ };
98
+ };
99
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { OxlintConfig } from 'oxlint';
2
+ import { type PresetOptions } from '../common.js';
3
+ export type { PresetOptions } from '../common.js';
4
+ export declare const createJavascriptNodeConfig: (options?: PresetOptions) => OxlintConfig;
5
+ declare const _default: OxlintConfig;
6
+ export default _default;
7
+ //# sourceMappingURL=javascript-node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"javascript-node.d.ts","sourceRoot":"","sources":["../../src/presets/javascript-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE3C,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAE/D,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,eAAO,MAAM,0BAA0B,aAAa,aAAa,KAAQ,YAIrE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { buildConfig } from '../common.js';
2
+ export const createJavascriptNodeConfig = (options = {}) => buildConfig({
3
+ options,
4
+ env: { node: true, es2025: true },
5
+ });
6
+ export default createJavascriptNodeConfig();
7
+ //# sourceMappingURL=javascript-node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"javascript-node.js","sourceRoot":"","sources":["../../src/presets/javascript-node.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAsB,MAAM,cAAc,CAAC;AAI/D,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,OAAO,GAAkB,EAAE,EAAgB,EAAE,CACtF,WAAW,CAAC;IACV,OAAO;IACP,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;CAClC,CAAC,CAAC;AAEL,eAAe,0BAA0B,EAAE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { OxlintConfig } from 'oxlint';
2
+ import { type PresetOptions } from '../common.js';
3
+ export type { PresetOptions } from '../common.js';
4
+ export declare const createTypescriptBrowserConfig: (options?: PresetOptions) => OxlintConfig;
5
+ declare const _default: OxlintConfig;
6
+ export default _default;
7
+ //# sourceMappingURL=typescript-browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-browser.d.ts","sourceRoot":"","sources":["../../src/presets/typescript-browser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE3C,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAE/D,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,eAAO,MAAM,6BAA6B,aAAa,aAAa,KAAQ,YAKxE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { buildConfig } from '../common.js';
2
+ export const createTypescriptBrowserConfig = (options = {}) => buildConfig({
3
+ options,
4
+ env: { node: true, es2025: true },
5
+ typescriptEnv: { node: false, browser: true, es2022: true },
6
+ });
7
+ export default createTypescriptBrowserConfig();
8
+ //# sourceMappingURL=typescript-browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-browser.js","sourceRoot":"","sources":["../../src/presets/typescript-browser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAsB,MAAM,cAAc,CAAC;AAI/D,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,OAAO,GAAkB,EAAE,EAAgB,EAAE,CACzF,WAAW,CAAC;IACV,OAAO;IACP,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IACjC,aAAa,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;CAC5D,CAAC,CAAC;AAEL,eAAe,6BAA6B,EAAE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { OxlintConfig } from 'oxlint';
2
+ import { type PresetOptions } from '../common.js';
3
+ export type { PresetOptions } from '../common.js';
4
+ export declare const createTypescriptIsomorphicConfig: (options?: PresetOptions) => OxlintConfig;
5
+ declare const _default: OxlintConfig;
6
+ export default _default;
7
+ //# sourceMappingURL=typescript-isomorphic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-isomorphic.d.ts","sourceRoot":"","sources":["../../src/presets/typescript-isomorphic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE3C,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAE/D,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,eAAO,MAAM,gCAAgC,aAAa,aAAa,KAAQ,YAK3E,CAAC"}
@@ -1,12 +1,8 @@
1
- import { buildConfig, normalizeOptions } from '../common.js';
2
- import generated from '../rules/typescript-isomorphic.js';
3
-
4
- export const createTypescriptIsomorphicConfig = (options = {}) =>
5
- buildConfig({
6
- generated,
7
- options: normalizeOptions(options),
1
+ import { buildConfig } from '../common.js';
2
+ export const createTypescriptIsomorphicConfig = (options = {}) => buildConfig({
3
+ options,
8
4
  env: { node: true, es2025: true },
9
5
  typescriptEnv: { node: true, browser: true, es2022: true },
10
- });
11
-
6
+ });
12
7
  export default createTypescriptIsomorphicConfig();
8
+ //# sourceMappingURL=typescript-isomorphic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-isomorphic.js","sourceRoot":"","sources":["../../src/presets/typescript-isomorphic.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAsB,MAAM,cAAc,CAAC;AAI/D,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,OAAO,GAAkB,EAAE,EAAgB,EAAE,CAC5F,WAAW,CAAC;IACV,OAAO;IACP,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IACjC,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;CAC3D,CAAC,CAAC;AAEL,eAAe,gCAAgC,EAAE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { OxlintConfig } from 'oxlint';
2
+ import { type PresetOptions } from '../common.js';
3
+ export type { PresetOptions } from '../common.js';
4
+ export declare const createTypescriptNextConfig: (options?: PresetOptions) => OxlintConfig;
5
+ declare const _default: OxlintConfig;
6
+ export default _default;
7
+ //# sourceMappingURL=typescript-next.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-next.d.ts","sourceRoot":"","sources":["../../src/presets/typescript-next.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE3C,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAG/D,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,eAAO,MAAM,0BAA0B,aAAa,aAAa,KAAQ,YAqCrE,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { buildConfig } from '../common.js';
2
+ import { reactPlugins, reactRules } from './typescript-react.js';
3
+ export const createTypescriptNextConfig = (options = {}) => buildConfig({
4
+ options,
5
+ plugins: [...reactPlugins, 'nextjs'],
6
+ env: { node: true, es2025: true },
7
+ typescriptEnv: { node: false, browser: true, es2022: true },
8
+ typescriptGlobals: { process: 'readonly', NodeJS: 'readonly' },
9
+ rules: {
10
+ ...reactRules,
11
+ 'react/only-export-components': [
12
+ 'error',
13
+ {
14
+ allowExportNames: [
15
+ 'experimental_ppr',
16
+ 'dynamic',
17
+ 'dynamicParams',
18
+ 'revalidate',
19
+ 'fetchCache',
20
+ 'runtime',
21
+ 'preferredRegion',
22
+ 'maxDuration',
23
+ 'metadata',
24
+ 'generateMetadata',
25
+ 'viewport',
26
+ 'generateViewport',
27
+ 'generateImageMetadata',
28
+ 'generateSitemaps',
29
+ 'generateStaticParams',
30
+ 'instant',
31
+ 'contentType',
32
+ 'size',
33
+ ],
34
+ },
35
+ ],
36
+ },
37
+ ignores: ['**/.next/**'],
38
+ });
39
+ export default createTypescriptNextConfig();
40
+ //# sourceMappingURL=typescript-next.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-next.js","sourceRoot":"","sources":["../../src/presets/typescript-next.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAsB,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAIjE,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,OAAO,GAAkB,EAAE,EAAgB,EAAE,CACtF,WAAW,CAAC;IACV,OAAO;IACP,OAAO,EAAE,CAAC,GAAG,YAAY,EAAE,QAAQ,CAAC;IACpC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IACjC,aAAa,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IAC3D,iBAAiB,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE;IAC9D,KAAK,EAAE;QACL,GAAG,UAAU;QAEb,8BAA8B,EAAE;YAC9B,OAAO;YACP;gBACE,gBAAgB,EAAE;oBAChB,kBAAkB;oBAClB,SAAS;oBACT,eAAe;oBACf,YAAY;oBACZ,YAAY;oBACZ,SAAS;oBACT,iBAAiB;oBACjB,aAAa;oBACb,UAAU;oBACV,kBAAkB;oBAClB,UAAU;oBACV,kBAAkB;oBAClB,uBAAuB;oBACvB,kBAAkB;oBAClB,sBAAsB;oBACtB,SAAS;oBACT,aAAa;oBACb,MAAM;iBACP;aACF;SACF;KACF;IACD,OAAO,EAAE,CAAC,aAAa,CAAC;CACzB,CAAC,CAAC;AAEL,eAAe,0BAA0B,EAAE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { OxlintConfig } from 'oxlint';
2
+ import { type PresetOptions } from '../common.js';
3
+ export type { PresetOptions } from '../common.js';
4
+ export declare const createTypescriptNodeConfig: (options?: PresetOptions) => OxlintConfig;
5
+ declare const _default: OxlintConfig;
6
+ export default _default;
7
+ //# sourceMappingURL=typescript-node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-node.d.ts","sourceRoot":"","sources":["../../src/presets/typescript-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE3C,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAE/D,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,eAAO,MAAM,0BAA0B,aAAa,aAAa,KAAQ,YAIrE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { buildConfig } from '../common.js';
2
+ export const createTypescriptNodeConfig = (options = {}) => buildConfig({
3
+ options,
4
+ env: { node: true, es2025: true },
5
+ });
6
+ export default createTypescriptNodeConfig();
7
+ //# sourceMappingURL=typescript-node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-node.js","sourceRoot":"","sources":["../../src/presets/typescript-node.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAsB,MAAM,cAAc,CAAC;AAI/D,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,OAAO,GAAkB,EAAE,EAAgB,EAAE,CACtF,WAAW,CAAC;IACV,OAAO;IACP,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;CAClC,CAAC,CAAC;AAEL,eAAe,0BAA0B,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { OxlintConfig } from 'oxlint';
2
+ import { type Plugins, type PresetOptions, type Rules } from '../common.js';
3
+ export type { PresetOptions } from '../common.js';
4
+ export declare const reactPlugins: Plugins;
5
+ export declare const reactRules: Rules;
6
+ export declare const createTypescriptReactConfig: (options?: PresetOptions) => OxlintConfig;
7
+ declare const _default: OxlintConfig;
8
+ export default _default;
9
+ //# sourceMappingURL=typescript-react.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-react.d.ts","sourceRoot":"","sources":["../../src/presets/typescript-react.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE3C,OAAO,EAAe,KAAK,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,KAAK,EAAE,MAAM,cAAc,CAAC;AAEzF,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,eAAO,MAAM,YAAY,EAAE,OAA+B,CAAC;AAI3D,eAAO,MAAM,UAAU,EAAE,KAExB,CAAC;AAEF,eAAO,MAAM,2BAA2B,aAAa,aAAa,KAAQ,YAWtE,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { buildConfig } from '../common.js';
2
+ export const reactPlugins = ['react', 'jsx-a11y'];
3
+ export const reactRules = {
4
+ 'react/rules-of-hooks': 'error',
5
+ };
6
+ export const createTypescriptReactConfig = (options = {}) => buildConfig({
7
+ options,
8
+ plugins: reactPlugins,
9
+ env: { node: true, es2025: true },
10
+ typescriptEnv: { node: false, browser: true, es2022: true },
11
+ rules: {
12
+ ...reactRules,
13
+ 'react/only-export-components': ['error', { allowConstantExport: true }],
14
+ },
15
+ });
16
+ export default createTypescriptReactConfig();
17
+ //# sourceMappingURL=typescript-react.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-react.js","sourceRoot":"","sources":["../../src/presets/typescript-react.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAgD,MAAM,cAAc,CAAC;AAIzF,MAAM,CAAC,MAAM,YAAY,GAAY,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AAI3D,MAAM,CAAC,MAAM,UAAU,GAAU;IAC/B,sBAAsB,EAAE,OAAO;CAChC,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,OAAO,GAAkB,EAAE,EAAgB,EAAE,CACvF,WAAW,CAAC;IACV,OAAO;IACP,OAAO,EAAE,YAAY;IACrB,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IACjC,aAAa,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IAC3D,KAAK,EAAE;QACL,GAAG,UAAU;QAEb,8BAA8B,EAAE,CAAC,OAAO,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC;KACzE;CACF,CAAC,CAAC;AAEL,eAAe,2BAA2B,EAAE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { OxlintConfig } from 'oxlint';
2
+ import { type PresetOptions } from '../common.js';
3
+ export type { PresetOptions } from '../common.js';
4
+ export declare const createTypescriptConfig: (options?: PresetOptions) => OxlintConfig;
5
+ declare const _default: OxlintConfig;
6
+ export default _default;
7
+ //# sourceMappingURL=typescript.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../src/presets/typescript.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE3C,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAE/D,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,eAAO,MAAM,sBAAsB,aAAa,aAAa,KAAQ,YAIjE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { buildConfig } from '../common.js';
2
+ export const createTypescriptConfig = (options = {}) => buildConfig({
3
+ options,
4
+ env: { node: true, es2025: true },
5
+ });
6
+ export default createTypescriptConfig();
7
+ //# sourceMappingURL=typescript.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript.js","sourceRoot":"","sources":["../../src/presets/typescript.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAsB,MAAM,cAAc,CAAC;AAI/D,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,OAAO,GAAkB,EAAE,EAAgB,EAAE,CAClF,WAAW,CAAC;IACV,OAAO;IACP,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;CAClC,CAAC,CAAC;AAEL,eAAe,sBAAsB,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@slango.configs/oxlint",
3
- "version": "0.0.0",
3
+ "version": "0.1.0",
4
4
  "private": false,
5
5
  "description": "Slango oxlint configs",
6
6
  "repository": {
@@ -10,10 +10,10 @@
10
10
  },
11
11
  "type": "module",
12
12
  "files": [
13
- "src"
13
+ "dist"
14
14
  ],
15
15
  "exports": {
16
- "./*": "./src/presets/*"
16
+ "./*": "./dist/presets/*"
17
17
  },
18
18
  "dependencies": {
19
19
  "eslint-plugin-perfectionist": "5.11.0",
@@ -24,14 +24,18 @@
24
24
  "oxlint-tsgolint": "^7.0.2001"
25
25
  },
26
26
  "devDependencies": {
27
- "@slango.configs/eslint": "1.2.46",
28
- "eslint": "10.9.1",
27
+ "@slango.configs/typescript": "2.0.16",
28
+ "@types/node": "26.4.1",
29
29
  "oxlint": "1.81.0",
30
- "oxlint-tsgolint": "7.0.2001"
30
+ "oxlint-tsgolint": "7.0.2001",
31
+ "typescript": "7.0.2"
31
32
  },
32
33
  "scripts": {
33
- "generate:rules": "node scripts/generate-rules.js",
34
- "lint": "oxlint --max-warnings 0 .",
35
- "lint:fix": "oxlint --fix --max-warnings 0 ."
34
+ "build": "tsc -p tsconfig.build.json",
35
+ "build:force": "tsc -p tsconfig.build.json --incremental false",
36
+ "build:watch": "tsc -p tsconfig.build.json --watch",
37
+ "build:check": "tsc --noEmit",
38
+ "lint": "oxlint --type-aware --max-warnings 0 .",
39
+ "lint:fix": "oxlint --type-aware --fix --max-warnings 0 ."
36
40
  }
37
41
  }