@kasoa/oxlint-config 0.0.10 → 0.0.12

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.
@@ -0,0 +1,8 @@
1
+ import { OxlintConfig } from "oxlint";
2
+
3
+ //#region src/base/index.d.ts
4
+ declare const BASE_PLUGINS: readonly ["typescript", "unicorn", "oxc", "import", "promise"];
5
+ declare const base: OxlintConfig;
6
+ //#endregion
7
+ export { BASE_PLUGINS, base };
8
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../../src/base/index.ts"],"mappings":";;;cAGa,YAAA;AAAA,cAEA,IAAA,EAAM,YAAA"}
@@ -0,0 +1,163 @@
1
+ import { defineConfig } from "oxlint";
2
+ //#region src/base/index.ts
3
+ const BASE_PLUGINS = [
4
+ "typescript",
5
+ "unicorn",
6
+ "oxc",
7
+ "import",
8
+ "promise"
9
+ ];
10
+ const base = defineConfig({
11
+ plugins: [...BASE_PLUGINS],
12
+ env: {
13
+ serviceworker: true,
14
+ worker: true
15
+ },
16
+ options: {
17
+ reportUnusedDisableDirectives: "error",
18
+ typeAware: true
19
+ },
20
+ categories: {
21
+ correctness: "error",
22
+ suspicious: "error",
23
+ pedantic: "error",
24
+ perf: "error",
25
+ style: "error"
26
+ },
27
+ rules: {
28
+ "capitalized-comments": "off",
29
+ "func-style": "off",
30
+ "id-length": "off",
31
+ "init-declarations": "off",
32
+ "max-classes-per-file": "off",
33
+ "max-lines-per-function": "off",
34
+ "max-statements": "off",
35
+ "no-continue": "off",
36
+ "no-magic-numbers": "off",
37
+ "no-ternary": "off",
38
+ "require-await": "off",
39
+ "sort-imports": "off",
40
+ "sort-keys": "off",
41
+ "vars-on-top": "off",
42
+ complexity: ["error", { max: 10 }],
43
+ curly: [
44
+ "error",
45
+ "multi-line",
46
+ "consistent"
47
+ ],
48
+ "default-case-last": "error",
49
+ eqeqeq: "error",
50
+ "getter-return": "error",
51
+ "grouped-accessor-pairs": ["error", "getBeforeSet"],
52
+ "max-depth": ["error", { max: 3 }],
53
+ "max-nested-callbacks": ["error", { max: 3 }],
54
+ "max-params": ["error", { max: 3 }],
55
+ "new-cap": "off",
56
+ "no-alert": "error",
57
+ "no-bitwise": "error",
58
+ "no-console": ["error", { allow: [
59
+ "info",
60
+ "warn",
61
+ "error"
62
+ ] }],
63
+ "no-duplicate-imports": ["error", { allowSeparateTypeImports: true }],
64
+ "no-param-reassign": ["error", { props: true }],
65
+ "no-plusplus": "error",
66
+ "no-undef": "error",
67
+ "no-unneeded-ternary": "error",
68
+ "no-unreachable": "error",
69
+ "no-useless-return": "error",
70
+ "prefer-template": "error",
71
+ "import/exports-last": "off",
72
+ "import/group-exports": "off",
73
+ "import/no-anonymous-default-export": "off",
74
+ "import/no-named-export": "off",
75
+ "import/no-namespace": "off",
76
+ "import/no-nodejs-modules": "off",
77
+ "import/no-unassigned-import": "off",
78
+ "import/prefer-default-export": "off",
79
+ "import/no-cycle": "error",
80
+ "promise/prefer-await-to-callbacks": "off",
81
+ "typescript/ban-ts-comment": ["error", { minimumDescriptionLength: 10 }],
82
+ "typescript/consistent-type-definitions": "off",
83
+ "typescript/consistent-return": "error",
84
+ "typescript/consistent-type-exports": "error",
85
+ "typescript/consistent-type-imports": ["error", {
86
+ prefer: "type-imports",
87
+ fixStyle: "separate-type-imports"
88
+ }],
89
+ "typescript/dot-notation": "error",
90
+ "typescript/no-confusing-void-expression": "error",
91
+ "typescript/no-dynamic-delete": "error",
92
+ "typescript/no-explicit-any": "error",
93
+ "typescript/no-floating-promises": "error",
94
+ "typescript/no-misused-promises": "error",
95
+ "typescript/no-misused-spread": "error",
96
+ "typescript/no-non-null-assertion": "error",
97
+ "typescript/no-require-imports": "error",
98
+ "typescript/no-unnecessary-condition": "error",
99
+ "typescript/no-unnecessary-qualifier": "error",
100
+ "typescript/no-unnecessary-type-arguments": "error",
101
+ "typescript/no-unnecessary-type-assertion": "error",
102
+ "typescript/no-unnecessary-type-parameters": "error",
103
+ "typescript/no-unsafe-argument": "error",
104
+ "typescript/no-unsafe-assignment": "error",
105
+ "typescript/no-unsafe-call": "error",
106
+ "typescript/no-unsafe-member-access": "error",
107
+ "typescript/no-unsafe-return": "error",
108
+ "typescript/no-useless-default-assignment": "error",
109
+ "typescript/non-nullable-type-assertion-style": "error",
110
+ "typescript/only-throw-error": "error",
111
+ "typescript/prefer-find": "error",
112
+ "typescript/prefer-nullish-coalescing": "error",
113
+ "typescript/prefer-optional-chain": "error",
114
+ "typescript/prefer-readonly": "error",
115
+ "typescript/prefer-regexp-exec": "error",
116
+ "typescript/require-await": "off",
117
+ "typescript/require-array-sort-compare": "error",
118
+ "typescript/restrict-plus-operands": "error",
119
+ "typescript/restrict-template-expressions": "error",
120
+ "typescript/return-await": "error",
121
+ "typescript/strict-boolean-expressions": "error",
122
+ "typescript/strict-void-return": "error",
123
+ "typescript/switch-exhaustiveness-check": "error",
124
+ "typescript/unbound-method": "error",
125
+ "typescript/use-unknown-in-catch-callback-variable": "error",
126
+ "unicorn/no-null": "off",
127
+ "unicorn/no-abusive-eslint-disable": "error",
128
+ "unicorn/filename-case": ["error", { case: "kebabCase" }]
129
+ },
130
+ overrides: [
131
+ {
132
+ files: ["**/*.{cjs,cts}"],
133
+ env: { node: true },
134
+ rules: { "typescript/no-require-imports": "off" }
135
+ },
136
+ {
137
+ files: ["**/*.config.{js,jsx,ts,tsx,mjs,cjs,mts,cts}"],
138
+ rules: { "func-names": "off" }
139
+ },
140
+ {
141
+ files: ["**/*.d.ts"],
142
+ rules: { "typescript/no-empty-interface": "off" }
143
+ },
144
+ {
145
+ files: [
146
+ "**/test/**",
147
+ "**/tests/**",
148
+ "**/__tests__/**",
149
+ "**/*.{test,spec}.{js,jsx,ts,tsx,mjs,cjs,mts,cts}"
150
+ ],
151
+ plugins: [...BASE_PLUGINS, "vitest"],
152
+ env: { vitest: true },
153
+ rules: {
154
+ "vitest/no-importing-vitest-globals": "off",
155
+ "vitest/max-nested-describe": ["error", { max: 3 }]
156
+ }
157
+ }
158
+ ]
159
+ });
160
+ //#endregion
161
+ export { BASE_PLUGINS, base };
162
+
163
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../src/base/index.ts"],"sourcesContent":["import type { OxlintConfig } from \"oxlint\";\nimport { defineConfig } from \"oxlint\";\n\nexport const BASE_PLUGINS = [\"typescript\", \"unicorn\", \"oxc\", \"import\", \"promise\"] as const;\n\nexport const base: OxlintConfig = defineConfig({\n plugins: [...BASE_PLUGINS],\n env: {\n serviceworker: true,\n worker: true,\n },\n options: {\n reportUnusedDisableDirectives: \"error\",\n typeAware: true,\n },\n categories: {\n correctness: \"error\",\n suspicious: \"error\",\n pedantic: \"error\",\n perf: \"error\",\n style: \"error\",\n },\n rules: {\n \"capitalized-comments\": \"off\",\n \"func-style\": \"off\",\n \"id-length\": \"off\",\n \"init-declarations\": \"off\",\n \"max-classes-per-file\": \"off\",\n \"max-lines-per-function\": \"off\",\n \"max-statements\": \"off\",\n \"no-continue\": \"off\",\n \"no-magic-numbers\": \"off\",\n \"no-ternary\": \"off\",\n \"require-await\": \"off\",\n \"sort-imports\": \"off\",\n \"sort-keys\": \"off\",\n \"vars-on-top\": \"off\",\n\n complexity: [\"error\", { max: 10 }],\n curly: [\"error\", \"multi-line\", \"consistent\"],\n \"default-case-last\": \"error\",\n eqeqeq: \"error\",\n \"getter-return\": \"error\",\n \"grouped-accessor-pairs\": [\"error\", \"getBeforeSet\"],\n \"max-depth\": [\"error\", { max: 3 }],\n \"max-nested-callbacks\": [\"error\", { max: 3 }],\n \"max-params\": [\"error\", { max: 3 }],\n \"new-cap\": \"off\",\n \"no-alert\": \"error\",\n \"no-bitwise\": \"error\",\n \"no-console\": [\"error\", { allow: [\"info\", \"warn\", \"error\"] }],\n \"no-duplicate-imports\": [\"error\", { allowSeparateTypeImports: true }],\n \"no-param-reassign\": [\"error\", { props: true }],\n \"no-plusplus\": \"error\",\n \"no-undef\": \"error\",\n \"no-unneeded-ternary\": \"error\",\n \"no-unreachable\": \"error\",\n \"no-useless-return\": \"error\",\n \"prefer-template\": \"error\",\n\n \"import/exports-last\": \"off\",\n \"import/group-exports\": \"off\",\n \"import/no-anonymous-default-export\": \"off\",\n \"import/no-named-export\": \"off\",\n \"import/no-namespace\": \"off\",\n \"import/no-nodejs-modules\": \"off\",\n \"import/no-unassigned-import\": \"off\",\n \"import/prefer-default-export\": \"off\",\n \"import/no-cycle\": \"error\",\n\n \"promise/prefer-await-to-callbacks\": \"off\",\n\n \"typescript/ban-ts-comment\": [\"error\", { minimumDescriptionLength: 10 }],\n \"typescript/consistent-type-definitions\": \"off\",\n \"typescript/consistent-return\": \"error\",\n \"typescript/consistent-type-exports\": \"error\",\n \"typescript/consistent-type-imports\": [\n \"error\",\n { prefer: \"type-imports\", fixStyle: \"separate-type-imports\" },\n ],\n \"typescript/dot-notation\": \"error\",\n \"typescript/no-confusing-void-expression\": \"error\",\n \"typescript/no-dynamic-delete\": \"error\",\n \"typescript/no-explicit-any\": \"error\",\n \"typescript/no-floating-promises\": \"error\",\n \"typescript/no-misused-promises\": \"error\",\n \"typescript/no-misused-spread\": \"error\",\n \"typescript/no-non-null-assertion\": \"error\",\n \"typescript/no-require-imports\": \"error\",\n \"typescript/no-unnecessary-condition\": \"error\",\n \"typescript/no-unnecessary-qualifier\": \"error\",\n \"typescript/no-unnecessary-type-arguments\": \"error\",\n \"typescript/no-unnecessary-type-assertion\": \"error\",\n \"typescript/no-unnecessary-type-parameters\": \"error\",\n \"typescript/no-unsafe-argument\": \"error\",\n \"typescript/no-unsafe-assignment\": \"error\",\n \"typescript/no-unsafe-call\": \"error\",\n \"typescript/no-unsafe-member-access\": \"error\",\n \"typescript/no-unsafe-return\": \"error\",\n \"typescript/no-useless-default-assignment\": \"error\",\n \"typescript/non-nullable-type-assertion-style\": \"error\",\n \"typescript/only-throw-error\": \"error\",\n \"typescript/prefer-find\": \"error\",\n \"typescript/prefer-nullish-coalescing\": \"error\",\n \"typescript/prefer-optional-chain\": \"error\",\n \"typescript/prefer-readonly\": \"error\",\n \"typescript/prefer-regexp-exec\": \"error\",\n \"typescript/require-await\": \"off\",\n \"typescript/require-array-sort-compare\": \"error\",\n \"typescript/restrict-plus-operands\": \"error\",\n \"typescript/restrict-template-expressions\": \"error\",\n \"typescript/return-await\": \"error\",\n \"typescript/strict-boolean-expressions\": \"error\",\n \"typescript/strict-void-return\": \"error\",\n \"typescript/switch-exhaustiveness-check\": \"error\",\n \"typescript/unbound-method\": \"error\",\n \"typescript/use-unknown-in-catch-callback-variable\": \"error\",\n\n \"unicorn/no-null\": \"off\",\n \"unicorn/no-abusive-eslint-disable\": \"error\",\n \"unicorn/filename-case\": [\"error\", { case: \"kebabCase\" }],\n },\n overrides: [\n {\n files: [\"**/*.{cjs,cts}\"],\n env: {\n node: true,\n },\n rules: {\n \"typescript/no-require-imports\": \"off\",\n },\n },\n {\n files: [\"**/*.config.{js,jsx,ts,tsx,mjs,cjs,mts,cts}\"],\n rules: {\n \"func-names\": \"off\",\n },\n },\n {\n files: [\"**/*.d.ts\"],\n rules: {\n \"typescript/no-empty-interface\": \"off\",\n },\n },\n {\n files: [\n \"**/test/**\",\n \"**/tests/**\",\n \"**/__tests__/**\",\n \"**/*.{test,spec}.{js,jsx,ts,tsx,mjs,cjs,mts,cts}\",\n ],\n plugins: [...BASE_PLUGINS, \"vitest\"],\n env: {\n vitest: true,\n },\n rules: {\n \"vitest/no-importing-vitest-globals\": \"off\",\n \"vitest/max-nested-describe\": [\"error\", { max: 3 }],\n },\n },\n ],\n});\n"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { OxlintConfig } from "oxlint";
2
+
3
+ //#region src/react/index.d.ts
4
+ declare const react: OxlintConfig;
5
+ //#endregion
6
+ export { react };
7
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../../src/react/index.ts"],"mappings":";;;cAIa,KAAA,EAAO,YAAA"}
@@ -0,0 +1,40 @@
1
+ import { base } from "../base/index.mjs";
2
+ import { defineConfig } from "oxlint";
3
+ //#region src/react/index.ts
4
+ const react = defineConfig({
5
+ ...base,
6
+ plugins: [
7
+ ...base.plugins ?? [],
8
+ "react",
9
+ "jsx-a11y"
10
+ ],
11
+ rules: {
12
+ ...base.rules,
13
+ "jsx-a11y/alt-text": "error",
14
+ "react/jsx-props-no-spreading": "off",
15
+ "react/react-in-jsx-scope": "off",
16
+ "react/exhaustive-deps": "error",
17
+ "react/jsx-key": "error",
18
+ "react/jsx-max-depth": ["error", { max: 4 }],
19
+ "react/jsx-no-constructed-context-values": "error",
20
+ "react/jsx-no-duplicate-props": "error",
21
+ "react/jsx-no-undef": "error",
22
+ "react/no-array-index-key": "error",
23
+ "react/no-children-prop": "error",
24
+ "react/no-clone-element": "error",
25
+ "react/no-danger": "error",
26
+ "react/no-danger-with-children": "error",
27
+ "react/no-direct-mutation-state": "error",
28
+ "react/no-find-dom-node": "error",
29
+ "react/no-react-children": "error",
30
+ "react/no-string-refs": "error",
31
+ "react/style-prop-object": "off",
32
+ "react/no-unsafe": "error",
33
+ "react/no-unknown-property": "error",
34
+ "react/void-dom-elements-no-children": "error"
35
+ }
36
+ });
37
+ //#endregion
38
+ export { react };
39
+
40
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../src/react/index.ts"],"sourcesContent":["import type { OxlintConfig } from \"oxlint\";\nimport { defineConfig } from \"oxlint\";\nimport { base } from \"../base/index.ts\";\n\nexport const react: OxlintConfig = defineConfig({\n ...base,\n plugins: [...(base.plugins ?? []), \"react\", \"jsx-a11y\"],\n rules: {\n ...base.rules,\n \"jsx-a11y/alt-text\": \"error\",\n\n \"react/jsx-props-no-spreading\": \"off\",\n \"react/react-in-jsx-scope\": \"off\",\n \"react/exhaustive-deps\": \"error\",\n \"react/jsx-key\": \"error\",\n \"react/jsx-max-depth\": [\"error\", { max: 4 }],\n \"react/jsx-no-constructed-context-values\": \"error\",\n \"react/jsx-no-duplicate-props\": \"error\",\n \"react/jsx-no-undef\": \"error\",\n \"react/no-array-index-key\": \"error\",\n \"react/no-children-prop\": \"error\",\n \"react/no-clone-element\": \"error\",\n \"react/no-danger\": \"error\",\n \"react/no-danger-with-children\": \"error\",\n \"react/no-direct-mutation-state\": \"error\",\n \"react/no-find-dom-node\": \"error\",\n \"react/no-react-children\": \"error\",\n \"react/no-string-refs\": \"error\",\n \"react/style-prop-object\": \"off\",\n \"react/no-unsafe\": \"error\",\n \"react/no-unknown-property\": \"error\",\n \"react/void-dom-elements-no-children\": \"error\",\n },\n});\n"],"mappings":";;;AAIA,MAAa,QAAsB,aAAa;CAC9C,GAAG;CACH,SAAS;EAAC,GAAI,KAAK,WAAW,EAAE;EAAG;EAAS;EAAW;CACvD,OAAO;EACL,GAAG,KAAK;EACR,qBAAqB;EAErB,gCAAgC;EAChC,4BAA4B;EAC5B,yBAAyB;EACzB,iBAAiB;EACjB,uBAAuB,CAAC,SAAS,EAAE,KAAK,GAAG,CAAC;EAC5C,2CAA2C;EAC3C,gCAAgC;EAChC,sBAAsB;EACtB,4BAA4B;EAC5B,0BAA0B;EAC1B,0BAA0B;EAC1B,mBAAmB;EACnB,iCAAiC;EACjC,kCAAkC;EAClC,0BAA0B;EAC1B,2BAA2B;EAC3B,wBAAwB;EACxB,2BAA2B;EAC3B,mBAAmB;EACnB,6BAA6B;EAC7B,uCAAuC;EACxC;CACF,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { OxlintConfig } from "oxlint";
2
+
3
+ //#region src/server/index.d.ts
4
+ declare const server: OxlintConfig;
5
+ //#endregion
6
+ export { server };
7
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../../src/server/index.ts"],"mappings":";;;cAIa,MAAA,EAAQ,YAAA"}
@@ -0,0 +1,19 @@
1
+ import { base } from "../base/index.mjs";
2
+ import { defineConfig } from "oxlint";
3
+ //#region src/server/index.ts
4
+ const server = defineConfig({
5
+ ...base,
6
+ plugins: [...base.plugins ?? [], "node"],
7
+ globals: {
8
+ ...base.globals,
9
+ WebSocketPair: "readonly"
10
+ },
11
+ rules: {
12
+ ...base.rules,
13
+ "node/no-exports-assign": "error"
14
+ }
15
+ });
16
+ //#endregion
17
+ export { server };
18
+
19
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../src/server/index.ts"],"sourcesContent":["import type { OxlintConfig } from \"oxlint\";\nimport { defineConfig } from \"oxlint\";\nimport { base } from \"../base/index.ts\";\n\nexport const server: OxlintConfig = defineConfig({\n ...base,\n plugins: [...(base.plugins ?? []), \"node\"],\n globals: {\n ...base.globals,\n WebSocketPair: \"readonly\",\n },\n rules: {\n ...base.rules,\n \"node/no-exports-assign\": \"error\",\n },\n});\n"],"mappings":";;;AAIA,MAAa,SAAuB,aAAa;CAC/C,GAAG;CACH,SAAS,CAAC,GAAI,KAAK,WAAW,EAAE,EAAG,OAAO;CAC1C,SAAS;EACP,GAAG,KAAK;EACR,eAAe;EAChB;CACD,OAAO;EACL,GAAG,KAAK;EACR,0BAA0B;EAC3B;CACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kasoa/oxlint-config",
3
- "version": "0.0.10",
3
+ "version": "0.0.12",
4
4
  "description": "Kasoa's Oxlint configurations",
5
5
  "keywords": [
6
6
  "kasoa",
@@ -27,19 +27,27 @@
27
27
  ],
28
28
  "type": "module",
29
29
  "exports": {
30
- "./base": "./dist/src/base/index.js",
31
- "./server": "./dist/src/server/index.js",
32
- "./react": "./dist/src/react/index.js"
30
+ "./base": {
31
+ "types": "./dist/src/base/index.d.mts",
32
+ "import": "./dist/src/base/index.mjs"
33
+ },
34
+ "./server": {
35
+ "types": "./dist/src/server/index.d.mts",
36
+ "import": "./dist/src/server/index.mjs"
37
+ },
38
+ "./react": {
39
+ "types": "./dist/src/react/index.d.mts",
40
+ "import": "./dist/src/react/index.mjs"
41
+ }
33
42
  },
34
43
  "publishConfig": {
35
44
  "access": "public"
36
45
  },
37
46
  "devDependencies": {
38
47
  "@types/node": "^25.5.0",
39
- "@typescript/native-preview": "^7.0.0-dev.20260319.1",
40
- "oxfmt": "^0.41.0",
41
- "oxlint": "^1.56.0",
42
- "oxlint-tsgolint": "^0.17.0"
48
+ "@typescript/native-preview": "^7.0.0-dev.20260327.2",
49
+ "vite-plus": "^0.1.14",
50
+ "@kasoa/vite-plus-config": "0.0.6"
43
51
  },
44
52
  "peerDependencies": {
45
53
  "oxlint": ">=1.51.0 <2",
@@ -49,11 +57,10 @@
49
57
  "node": ">=24"
50
58
  },
51
59
  "scripts": {
52
- "dev": "tsgo --watch",
53
- "build": "tsgo",
54
- "lint": "oxlint --fix .",
55
- "format": "oxfmt .",
56
- "typecheck": "tsgo --noEmit",
57
- "test": "echo 'No tests'"
60
+ "dev": "vp pack --watch",
61
+ "build": "vp pack",
62
+ "check": "vp check",
63
+ "check:fix": "vp check --fix",
64
+ "test": "vp test --passWithNoTests"
58
65
  }
59
66
  }
@@ -1,3 +0,0 @@
1
- import type { OxlintConfig } from "oxlint";
2
- export declare const base: OxlintConfig;
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/base/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAG3C,eAAO,MAAM,IAAI,EAAE,YAwHjB,CAAC"}
@@ -1,119 +0,0 @@
1
- import { defineConfig } from "oxlint";
2
- export const base = defineConfig({
3
- plugins: ["typescript", "unicorn", "oxc", "import", "promise", "vitest"],
4
- options: {
5
- typeAware: true,
6
- },
7
- categories: {
8
- correctness: "error",
9
- suspicious: "error",
10
- pedantic: "error",
11
- perf: "error",
12
- style: "error",
13
- },
14
- rules: {
15
- "func-style": "off",
16
- "id-length": "off",
17
- "capitalized-comments": "off",
18
- "init-declarations": "off",
19
- "no-magic-numbers": "off",
20
- "no-ternary": "off",
21
- "sort-imports": "off",
22
- "sort-keys": "off",
23
- "vars-on-top": "off",
24
- complexity: ["error", { max: 10 }],
25
- "default-case-last": "error",
26
- eqeqeq: "error",
27
- "getter-return": "error",
28
- "grouped-accessor-pairs": ["error", "getBeforeSet"],
29
- "max-classes-per-file": ["error", { max: 1 }],
30
- "max-depth": ["error", { max: 3 }],
31
- "max-lines-per-function": ["error", { max: 50, skipBlankLines: true, skipComments: true }],
32
- "max-nested-callbacks": ["error", { max: 3 }],
33
- "max-params": ["error", { max: 3 }],
34
- "max-statements": ["error", { max: 10 }],
35
- "no-console": ["error", { allow: ["info", "warn", "error"] }],
36
- "no-duplicate-imports": ["error", { allowSeparateTypeImports: true }],
37
- "no-param-reassign": ["error", { props: true }],
38
- "no-undef": "error",
39
- "no-unneeded-ternary": "error",
40
- "no-unreachable": "error",
41
- "no-useless-return": "error",
42
- "prefer-template": "error",
43
- "import/exports-last": "off",
44
- "import/group-exports": "off",
45
- "import/no-named-export": "off",
46
- "import/no-namespace": "off",
47
- "import/no-nodejs-modules": "off",
48
- "import/prefer-default-export": "off",
49
- "typescript/consistent-type-definitions": "off",
50
- "import/no-cycle": "error",
51
- "typescript/ban-ts-comment": ["error", { minimumDescriptionLength: 10 }],
52
- "typescript/consistent-return": "error",
53
- "typescript/consistent-type-exports": "error",
54
- "typescript/consistent-type-imports": [
55
- "error",
56
- { prefer: "type-imports", fixStyle: "separate-type-imports" },
57
- ],
58
- "typescript/dot-notation": "error",
59
- "typescript/no-confusing-void-expression": "error",
60
- "typescript/no-explicit-any": "error",
61
- "typescript/no-floating-promises": "error",
62
- "typescript/no-misused-promises": "error",
63
- "typescript/no-misused-spread": "error",
64
- "typescript/no-require-imports": "error",
65
- "typescript/no-unnecessary-condition": "error",
66
- "typescript/no-unnecessary-qualifier": "error",
67
- "typescript/no-unnecessary-type-arguments": "error",
68
- "typescript/no-unnecessary-type-assertion": "error",
69
- "typescript/no-unnecessary-type-parameters": "error",
70
- "typescript/no-unsafe-argument": "error",
71
- "typescript/no-unsafe-assignment": "error",
72
- "typescript/no-unsafe-call": "error",
73
- "typescript/no-unsafe-member-access": "error",
74
- "typescript/no-unsafe-return": "error",
75
- "typescript/no-useless-default-assignment": "error",
76
- "typescript/non-nullable-type-assertion-style": "error",
77
- "typescript/only-throw-error": "error",
78
- "typescript/prefer-find": "error",
79
- "typescript/prefer-nullish-coalescing": "error",
80
- "typescript/prefer-optional-chain": "error",
81
- "typescript/prefer-readonly": "error",
82
- "typescript/prefer-readonly-parameter-types": "error",
83
- "typescript/prefer-regexp-exec": "error",
84
- "typescript/promise-function-async": "error",
85
- "typescript/require-array-sort-compare": "error",
86
- "typescript/restrict-plus-operands": "error",
87
- "typescript/restrict-template-expressions": "error",
88
- "typescript/return-await": "error",
89
- "typescript/strict-boolean-expressions": "error",
90
- "typescript/strict-void-return": "error",
91
- "typescript/switch-exhaustiveness-check": "error",
92
- "typescript/unbound-method": "error",
93
- "typescript/use-unknown-in-catch-callback-variable": "error",
94
- "unicorn/no-null": "off",
95
- "unicorn/filename-case": ["error", { case: "kebabCase" }],
96
- },
97
- overrides: [
98
- {
99
- files: ["**/*.{cjs,cts}"],
100
- env: {
101
- node: true,
102
- },
103
- rules: {
104
- "typescript/no-require-imports": "off",
105
- },
106
- },
107
- {
108
- files: ["**/tests/**", "**/__tests__/**", "**/*.{test,spec}.{js,jsx,ts,tsx,mjs,cjs,mts,cts}"],
109
- env: {
110
- vitest: true,
111
- },
112
- rules: {
113
- "max-lines-per-function": ["error", { max: 75, skipBlankLines: true, skipComments: true }],
114
- "vitest/no-importing-vitest-globals": "off",
115
- "vitest/max-nested-describe": ["error", { max: 3 }],
116
- },
117
- },
118
- ],
119
- });
@@ -1,3 +0,0 @@
1
- import type { OxlintConfig } from "oxlint";
2
- export declare const react: OxlintConfig;
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAI3C,eAAO,MAAM,KAAK,EAAE,YA6BlB,CAAC"}
@@ -1,30 +0,0 @@
1
- import { defineConfig } from "oxlint";
2
- import { base } from "../base/index.js";
3
- export const react = defineConfig({
4
- ...base,
5
- plugins: [...(base.plugins ?? []), "react", "react-perf", "jsx-a11y"],
6
- rules: {
7
- ...base.rules,
8
- "jsx-a11y/alt-text": "error",
9
- "react/jsx-props-no-spreading": "off",
10
- "react/exhaustive-deps": "error",
11
- "react/jsx-key": "error",
12
- "react/jsx-max-depth": ["error", { max: 4 }],
13
- "react/jsx-no-constructed-context-values": "error",
14
- "react/jsx-no-duplicate-props": "error",
15
- "react/jsx-no-undef": "error",
16
- "react/no-array-index-key": "error",
17
- "react/no-children-prop": "error",
18
- "react/no-danger-with-children": "error",
19
- "react/no-direct-mutation-state": "error",
20
- "react/no-find-dom-node": "error",
21
- "react/no-string-refs": "error",
22
- "react/no-unsafe": "error",
23
- "react/no-unknown-property": "error",
24
- "react/void-dom-elements-no-children": "error",
25
- "react-perf/jsx-no-jsx-as-prop": "error",
26
- "react-perf/jsx-no-new-array-as-prop": "error",
27
- "react-perf/jsx-no-new-function-as-prop": "error",
28
- "react-perf/jsx-no-new-object-as-prop": "error",
29
- },
30
- });
@@ -1,4 +0,0 @@
1
- import type { OxlintConfig } from "oxlint";
2
- export declare const BASE_PLUGINS: readonly ["typescript", "unicorn", "oxc", "import", "promise"];
3
- export declare const base: OxlintConfig;
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/base/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAG3C,eAAO,MAAM,YAAY,gEAAiE,CAAC;AAE3F,eAAO,MAAM,IAAI,EAAE,YA8JjB,CAAC"}
@@ -1,156 +0,0 @@
1
- import { defineConfig } from "oxlint";
2
- export const BASE_PLUGINS = ["typescript", "unicorn", "oxc", "import", "promise"];
3
- export const base = defineConfig({
4
- plugins: [...BASE_PLUGINS],
5
- env: {
6
- serviceworker: true,
7
- worker: true,
8
- },
9
- options: {
10
- reportUnusedDisableDirectives: "error",
11
- typeAware: true,
12
- },
13
- categories: {
14
- correctness: "error",
15
- suspicious: "error",
16
- pedantic: "error",
17
- perf: "error",
18
- style: "error",
19
- },
20
- rules: {
21
- "capitalized-comments": "off",
22
- "func-style": "off",
23
- "id-length": "off",
24
- "init-declarations": "off",
25
- "max-classes-per-file": "off",
26
- "max-lines-per-function": "off",
27
- "max-statements": "off",
28
- "no-continue": "off",
29
- "no-magic-numbers": "off",
30
- "no-ternary": "off",
31
- "require-await": "off",
32
- "sort-imports": "off",
33
- "sort-keys": "off",
34
- "vars-on-top": "off",
35
- complexity: ["error", { max: 10 }],
36
- curly: ["error", "multi-line", "consistent"],
37
- "default-case-last": "error",
38
- eqeqeq: "error",
39
- "getter-return": "error",
40
- "grouped-accessor-pairs": ["error", "getBeforeSet"],
41
- "max-depth": ["error", { max: 3 }],
42
- "max-nested-callbacks": ["error", { max: 3 }],
43
- "max-params": ["error", { max: 3 }],
44
- "new-cap": "off",
45
- "no-alert": "error",
46
- "no-bitwise": "error",
47
- "no-console": ["error", { allow: ["info", "warn", "error"] }],
48
- "no-duplicate-imports": ["error", { allowSeparateTypeImports: true }],
49
- "no-param-reassign": ["error", { props: true }],
50
- "no-plusplus": "error",
51
- "no-undef": "error",
52
- "no-unneeded-ternary": "error",
53
- "no-unreachable": "error",
54
- "no-useless-return": "error",
55
- "prefer-template": "error",
56
- "import/exports-last": "off",
57
- "import/group-exports": "off",
58
- "import/no-anonymous-default-export": "off",
59
- "import/no-named-export": "off",
60
- "import/no-namespace": "off",
61
- "import/no-nodejs-modules": "off",
62
- "import/no-unassigned-import": "off",
63
- "import/prefer-default-export": "off",
64
- "import/no-cycle": "error",
65
- "promise/prefer-await-to-callbacks": "off",
66
- "typescript/ban-ts-comment": ["error", { minimumDescriptionLength: 10 }],
67
- "typescript/consistent-type-definitions": "off",
68
- "typescript/consistent-return": "error",
69
- "typescript/consistent-type-exports": "error",
70
- "typescript/consistent-type-imports": [
71
- "error",
72
- { prefer: "type-imports", fixStyle: "separate-type-imports" },
73
- ],
74
- "typescript/dot-notation": "error",
75
- "typescript/no-confusing-void-expression": "error",
76
- "typescript/no-dynamic-delete": "error",
77
- "typescript/no-explicit-any": "error",
78
- "typescript/no-floating-promises": "error",
79
- "typescript/no-misused-promises": "error",
80
- "typescript/no-misused-spread": "error",
81
- "typescript/no-non-null-assertion": "error",
82
- "typescript/no-require-imports": "error",
83
- "typescript/no-unnecessary-condition": "error",
84
- "typescript/no-unnecessary-qualifier": "error",
85
- "typescript/no-unnecessary-type-arguments": "error",
86
- "typescript/no-unnecessary-type-assertion": "error",
87
- "typescript/no-unnecessary-type-parameters": "error",
88
- "typescript/no-unsafe-argument": "error",
89
- "typescript/no-unsafe-assignment": "error",
90
- "typescript/no-unsafe-call": "error",
91
- "typescript/no-unsafe-member-access": "error",
92
- "typescript/no-unsafe-return": "error",
93
- "typescript/no-useless-default-assignment": "error",
94
- "typescript/non-nullable-type-assertion-style": "error",
95
- "typescript/only-throw-error": "error",
96
- "typescript/prefer-find": "error",
97
- "typescript/prefer-nullish-coalescing": "error",
98
- "typescript/prefer-optional-chain": "error",
99
- "typescript/prefer-readonly": "error",
100
- "typescript/prefer-regexp-exec": "error",
101
- "typescript/require-await": "off",
102
- "typescript/require-array-sort-compare": "error",
103
- "typescript/restrict-plus-operands": "error",
104
- "typescript/restrict-template-expressions": "error",
105
- "typescript/return-await": "error",
106
- "typescript/strict-boolean-expressions": "error",
107
- "typescript/strict-void-return": "error",
108
- "typescript/switch-exhaustiveness-check": "error",
109
- "typescript/unbound-method": "error",
110
- "typescript/use-unknown-in-catch-callback-variable": "error",
111
- "unicorn/no-null": "off",
112
- "unicorn/no-abusive-eslint-disable": "error",
113
- "unicorn/filename-case": ["error", { case: "kebabCase" }],
114
- },
115
- overrides: [
116
- {
117
- files: ["**/*.{cjs,cts}"],
118
- env: {
119
- node: true,
120
- },
121
- rules: {
122
- "typescript/no-require-imports": "off",
123
- },
124
- },
125
- {
126
- files: ["**/*.config.{js,jsx,ts,tsx,mjs,cjs,mts,cts}"],
127
- rules: {
128
- "func-names": "off",
129
- },
130
- },
131
- {
132
- files: ["**/*.d.ts"],
133
- rules: {
134
- "typescript/no-empty-interface": "off",
135
- },
136
- },
137
- {
138
- files: [
139
- "**/test/**",
140
- "**/tests/**",
141
- "**/__tests__/**",
142
- "**/*.{test,spec}.{js,jsx,ts,tsx,mjs,cjs,mts,cts}",
143
- ],
144
- plugins: [...BASE_PLUGINS, "vitest"],
145
- env: {
146
- vitest: true,
147
- },
148
- rules: {
149
- "max-lines-per-function": "off",
150
- "max-statements": "off",
151
- "vitest/no-importing-vitest-globals": "off",
152
- "vitest/max-nested-describe": ["error", { max: 3 }],
153
- },
154
- },
155
- ],
156
- });
@@ -1,3 +0,0 @@
1
- import type { OxlintConfig } from "oxlint";
2
- export declare const react: OxlintConfig;
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAI3C,eAAO,MAAM,KAAK,EAAE,YAkClB,CAAC"}
@@ -1,35 +0,0 @@
1
- import { defineConfig } from "oxlint";
2
- import { base } from "../base/index.js";
3
- export const react = defineConfig({
4
- ...base,
5
- plugins: [...(base.plugins ?? []), "react", "react-perf", "jsx-a11y"],
6
- rules: {
7
- ...base.rules,
8
- "jsx-a11y/alt-text": "error",
9
- "react/jsx-props-no-spreading": "off",
10
- "react/react-in-jsx-scope": "off",
11
- "react/exhaustive-deps": "error",
12
- "react/jsx-key": "error",
13
- "react/jsx-max-depth": ["error", { max: 4 }],
14
- "react/jsx-no-constructed-context-values": "error",
15
- "react/jsx-no-duplicate-props": "error",
16
- "react/jsx-no-undef": "error",
17
- "react/no-array-index-key": "error",
18
- "react/no-children-prop": "error",
19
- "react/no-clone-element": "error",
20
- "react/no-danger": "error",
21
- "react/no-danger-with-children": "error",
22
- "react/no-direct-mutation-state": "error",
23
- "react/no-find-dom-node": "error",
24
- "react/no-react-children": "error",
25
- "react/no-string-refs": "error",
26
- "react/style-prop-object": "off",
27
- "react/no-unsafe": "error",
28
- "react/no-unknown-property": "error",
29
- "react/void-dom-elements-no-children": "error",
30
- "react-perf/jsx-no-jsx-as-prop": "error",
31
- "react-perf/jsx-no-new-array-as-prop": "error",
32
- "react-perf/jsx-no-new-function-as-prop": "error",
33
- "react-perf/jsx-no-new-object-as-prop": "error",
34
- },
35
- });
@@ -1,3 +0,0 @@
1
- import type { OxlintConfig } from "oxlint";
2
- export declare const server: OxlintConfig;
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAI3C,eAAO,MAAM,MAAM,EAAE,YAWnB,CAAC"}
@@ -1,14 +0,0 @@
1
- import { defineConfig } from "oxlint";
2
- import { base } from "../base/index.js";
3
- export const server = defineConfig({
4
- ...base,
5
- plugins: [...(base.plugins ?? []), "node"],
6
- globals: {
7
- ...base.globals,
8
- WebSocketPair: "readonly",
9
- },
10
- rules: {
11
- ...base.rules,
12
- "node/no-exports-assign": "error",
13
- },
14
- });