Skip to content

Commit 5d5929a

Browse files
committed
fix: lint, tscheck and others
1 parent 566a0bb commit 5d5929a

42 files changed

Lines changed: 904 additions & 1651 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.env.example

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
# Public URL, used for OG Image when running nuxt generate
2-
NUXT_PUBLIC_SITE_URL=
2+
NUXT_PUBLIC_SITE_URL=https://vercube.dev

.oxfmtrc.jsonc

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
{
2+
"$schema": "./node_modules/oxfmt/configuration_schema.json",
3+
4+
// Ignore patterns
5+
"ignorePatterns": [
6+
"CODEOWNERS",
7+
"Makefile",
8+
"*.yml",
9+
"*.yaml",
10+
"pnpm-lock.yaml",
11+
"*.json", // json files are not supported by oxfmt yet
12+
],
13+
14+
// Roles
15+
"singleQuote": true,
16+
"semi": true,
17+
"trailingComma": "all",
18+
"tabWidth": 2,
19+
"printWidth": 130,
20+
21+
// Experimental: Sort imports
22+
"experimentalSortImports": {
23+
"groups": [
24+
["^node:", "value"], // node: imports first (regex pattern has priority)
25+
["builtin", "value"], // Builtin modules (without node: prefix)
26+
["external", "value"], // External packages (value imports only) - excludes @/ pattern
27+
["^@/", "value"], // Internal imports (@/ pattern) - after external, before type
28+
["type"], // All type imports at the end
29+
],
30+
"ignoreCase": true,
31+
"newlinesBetween": false,
32+
"order": "asc",
33+
"sortSideEffects": false,
34+
},
35+
}

.oxlintrc.json

Lines changed: 245 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,245 @@
1+
{
2+
"$schema": "./node_modules/oxlint/configuration_schema.json",
3+
"plugins": ["typescript", "unicorn"],
4+
"categories": {
5+
"correctness": "off"
6+
},
7+
"env": {
8+
"builtin": true,
9+
"phantomjs": true
10+
},
11+
"rules": {
12+
"for-direction": "error",
13+
"no-async-promise-executor": "error",
14+
"no-case-declarations": "error",
15+
"no-class-assign": "error",
16+
"no-compare-neg-zero": "error",
17+
"no-cond-assign": "error",
18+
"no-const-assign": "error",
19+
"no-constant-binary-expression": "error",
20+
"no-constant-condition": "error",
21+
"no-control-regex": "error",
22+
"no-debugger": "error",
23+
"no-delete-var": "error",
24+
"no-dupe-class-members": "error",
25+
"no-dupe-else-if": "error",
26+
"no-dupe-keys": "error",
27+
"no-duplicate-case": "error",
28+
"no-empty": "error",
29+
"no-empty-character-class": "error",
30+
"no-empty-pattern": "error",
31+
"no-empty-static-block": "error",
32+
"no-ex-assign": "error",
33+
"no-extra-boolean-cast": "error",
34+
"no-fallthrough": "error",
35+
"no-func-assign": "error",
36+
"no-global-assign": "error",
37+
"no-import-assign": "error",
38+
"no-invalid-regexp": "error",
39+
"no-irregular-whitespace": "error",
40+
"no-loss-of-precision": "error",
41+
"no-new-native-nonconstructor": "error",
42+
"no-nonoctal-decimal-escape": "error",
43+
"no-obj-calls": "error",
44+
"no-prototype-builtins": "error",
45+
"no-redeclare": "error",
46+
"no-regex-spaces": "error",
47+
"no-self-assign": "error",
48+
"no-setter-return": "error",
49+
"no-shadow-restricted-names": "error",
50+
"no-sparse-arrays": "error",
51+
"no-this-before-super": "error",
52+
"no-unexpected-multiline": "error",
53+
"no-unsafe-finally": "error",
54+
"no-unsafe-negation": "error",
55+
"no-unsafe-optional-chaining": "error",
56+
"no-unused-labels": "error",
57+
"no-unused-private-class-members": "error",
58+
"no-unused-vars": [
59+
"warn",
60+
{
61+
"varsIgnorePattern": "^_",
62+
"argsIgnorePattern": "^_"
63+
}
64+
],
65+
"no-useless-backreference": "error",
66+
"no-useless-catch": "error",
67+
"no-useless-escape": "error",
68+
"no-with": "error",
69+
"require-yield": "error",
70+
"use-isnan": "error",
71+
"valid-typeof": "error",
72+
"@typescript-eslint/ban-ts-comment": "off",
73+
"no-array-constructor": "error",
74+
"@typescript-eslint/no-duplicate-enum-values": "error",
75+
"@typescript-eslint/no-empty-object-type": "error",
76+
"@typescript-eslint/no-explicit-any": "off",
77+
"@typescript-eslint/no-extra-non-null-assertion": "error",
78+
"@typescript-eslint/no-misused-new": "error",
79+
"@typescript-eslint/no-namespace": "off",
80+
"@typescript-eslint/no-non-null-asserted-optional-chain": "error",
81+
"@typescript-eslint/no-require-imports": "error",
82+
"@typescript-eslint/no-this-alias": "error",
83+
"@typescript-eslint/no-unnecessary-type-constraint": "error",
84+
"@typescript-eslint/no-unsafe-declaration-merging": "error",
85+
"@typescript-eslint/no-unsafe-function-type": "off",
86+
"no-unused-expressions": "error",
87+
"@typescript-eslint/no-wrapper-object-types": "error",
88+
"@typescript-eslint/prefer-as-const": "error",
89+
"@typescript-eslint/prefer-namespace-keyword": "error",
90+
"@typescript-eslint/triple-slash-reference": "error",
91+
"no-negated-condition": "off",
92+
"no-nested-ternary": "off",
93+
"unicorn/catch-error-name": "error",
94+
"unicorn/consistent-assert": "error",
95+
"unicorn/consistent-date-clone": "error",
96+
"unicorn/consistent-empty-array-spread": "error",
97+
"unicorn/consistent-existence-index-check": "error",
98+
"unicorn/consistent-function-scoping": "off",
99+
"unicorn/empty-brace-spaces": "error",
100+
"unicorn/error-message": "error",
101+
"unicorn/escape-case": "error",
102+
"unicorn/explicit-length-check": "error",
103+
"unicorn/filename-case": "off",
104+
"unicorn/new-for-builtins": "error",
105+
"unicorn/no-abusive-eslint-disable": "off",
106+
"unicorn/no-accessor-recursion": "error",
107+
"unicorn/no-anonymous-default-export": "error",
108+
"unicorn/no-array-for-each": "error",
109+
"unicorn/no-array-method-this-argument": "error",
110+
"unicorn/no-array-reduce": "error",
111+
"unicorn/no-await-expression-member": "off",
112+
"unicorn/no-await-in-promise-methods": "error",
113+
"unicorn/no-console-spaces": "error",
114+
"unicorn/no-document-cookie": "error",
115+
"unicorn/no-empty-file": "error",
116+
"unicorn/no-hex-escape": "error",
117+
"unicorn/no-instanceof-builtins": "error",
118+
"unicorn/no-invalid-fetch-options": "error",
119+
"unicorn/no-invalid-remove-event-listener": "error",
120+
"unicorn/no-lonely-if": "error",
121+
"unicorn/no-magic-array-flat-depth": "error",
122+
"unicorn/no-negated-condition": "error",
123+
"unicorn/no-negation-in-equality-check": "error",
124+
"unicorn/no-nested-ternary": "error",
125+
"unicorn/no-new-array": "error",
126+
"unicorn/no-new-buffer": "error",
127+
"unicorn/no-null": "off",
128+
"unicorn/no-object-as-default-parameter": "error",
129+
"unicorn/no-process-exit": "error",
130+
"unicorn/no-single-promise-in-promise-methods": "error",
131+
"unicorn/no-static-only-class": "error",
132+
"unicorn/no-thenable": "error",
133+
"unicorn/no-this-assignment": "error",
134+
"unicorn/no-typeof-undefined": "error",
135+
"unicorn/no-unnecessary-array-flat-depth": "error",
136+
"unicorn/no-unnecessary-await": "error",
137+
"unicorn/no-unnecessary-slice-end": "error",
138+
"unicorn/no-unreadable-array-destructuring": "error",
139+
"unicorn/no-unreadable-iife": "error",
140+
"unicorn/no-useless-fallback-in-spread": "error",
141+
"unicorn/no-useless-length-check": "error",
142+
"unicorn/no-useless-promise-resolve-reject": "error",
143+
"unicorn/no-useless-spread": "error",
144+
"unicorn/no-useless-switch-case": "error",
145+
"unicorn/no-useless-undefined": "off",
146+
"unicorn/no-zero-fractions": "error",
147+
"unicorn/number-literal-case": "off",
148+
"unicorn/numeric-separators-style": "error",
149+
"unicorn/prefer-add-event-listener": "error",
150+
"unicorn/prefer-array-find": "error",
151+
"unicorn/prefer-array-flat-map": "error",
152+
"unicorn/prefer-array-flat": "error",
153+
"unicorn/prefer-array-index-of": "error",
154+
"unicorn/prefer-array-some": "error",
155+
"unicorn/prefer-blob-reading-methods": "error",
156+
"unicorn/prefer-code-point": "error",
157+
"unicorn/prefer-date-now": "error",
158+
"unicorn/prefer-dom-node-append": "error",
159+
"unicorn/prefer-dom-node-dataset": "error",
160+
"unicorn/prefer-dom-node-remove": "error",
161+
"unicorn/prefer-dom-node-text-content": "error",
162+
"unicorn/prefer-event-target": "error",
163+
"unicorn/prefer-global-this": "error",
164+
"unicorn/prefer-includes": "error",
165+
"unicorn/prefer-logical-operator-over-ternary": "error",
166+
"unicorn/prefer-math-min-max": "error",
167+
"unicorn/prefer-math-trunc": "error",
168+
"unicorn/prefer-modern-dom-apis": "error",
169+
"unicorn/prefer-modern-math-apis": "error",
170+
"unicorn/prefer-native-coercion-functions": "error",
171+
"unicorn/prefer-negative-index": "error",
172+
"unicorn/prefer-node-protocol": "error",
173+
"unicorn/prefer-number-properties": "error",
174+
"unicorn/prefer-object-from-entries": "error",
175+
"unicorn/prefer-optional-catch-binding": "error",
176+
"unicorn/prefer-prototype-methods": "error",
177+
"unicorn/prefer-query-selector": "error",
178+
"unicorn/prefer-reflect-apply": "error",
179+
"unicorn/prefer-regexp-test": "error",
180+
"unicorn/prefer-set-has": "error",
181+
"unicorn/prefer-set-size": "error",
182+
"unicorn/prefer-spread": "error",
183+
"unicorn/prefer-string-raw": "error",
184+
"unicorn/prefer-string-replace-all": "off",
185+
"unicorn/prefer-string-slice": "error",
186+
"unicorn/prefer-string-starts-ends-with": "error",
187+
"unicorn/prefer-string-trim-start-end": "error",
188+
"unicorn/prefer-structured-clone": "error",
189+
"unicorn/prefer-type-error": "error",
190+
"unicorn/require-array-join-separator": "error",
191+
"unicorn/require-number-to-fixed-digits-argument": "error",
192+
"unicorn/require-post-message-target-origin": "off",
193+
"unicorn/switch-case-braces": "error",
194+
"unicorn/text-encoding-identifier-case": "error",
195+
"unicorn/throw-new-error": "error",
196+
"@typescript-eslint/no-var-requires": "off",
197+
"@typescript-eslint/no-empty-interface": "off",
198+
"no-empty-function": "off"
199+
},
200+
"ignorePatterns": [
201+
"dist",
202+
"coverage",
203+
"**/.output",
204+
"**/*.gen.*",
205+
"**/dist",
206+
"docs",
207+
"bench",
208+
"node_modules",
209+
"pnpm-lock.yaml"
210+
],
211+
"overrides": [
212+
{
213+
"files": ["**/*.ts", "**/*.tsx", "**/*.mts", "**/*.cts"],
214+
"rules": {
215+
"no-class-assign": "off",
216+
"no-const-assign": "off",
217+
"no-dupe-class-members": "off",
218+
"no-dupe-keys": "off",
219+
"no-func-assign": "off",
220+
"no-import-assign": "off",
221+
"no-new-native-nonconstructor": "off",
222+
"no-obj-calls": "off",
223+
"no-redeclare": "off",
224+
"no-setter-return": "off",
225+
"no-this-before-super": "off",
226+
"no-unsafe-negation": "off",
227+
"no-var": "error",
228+
"no-with": "off",
229+
"prefer-rest-params": "error",
230+
"prefer-spread": "error"
231+
}
232+
},
233+
{
234+
"files": ["**/*.md/*.js", "**/*.md/*.ts"],
235+
"rules": {
236+
"no-unused-expressions": "off",
237+
"no-empty-pattern": "off",
238+
"no-redeclare": "off",
239+
"no-import-assign": "off",
240+
"@typescript-eslint/no-require-imports": "off",
241+
"no-unused-vars": "off"
242+
}
243+
}
244+
]
245+
}

.vscode/settings.json

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
11
{
22
"editor.tabSize": 2,
3+
"typescript.enablePromptUseWorkspaceTsdk": true,
4+
"search.exclude": {
5+
"**/node_modules": true,
6+
"**/dist": true,
7+
"packages/**/dist": true
8+
},
9+
"oxc.fmt.experimental": true,
10+
"editor.defaultFormatter": "oxc.oxc-vscode",
11+
"editor.formatOnSave": true,
312
"editor.codeActionsOnSave": {
4-
"source.fixAll.eslint": "explicit"
13+
"source.fixAll.oxc": "explicit"
514
}
6-
}
15+
}

0 commit comments

Comments
 (0)