@kasoa/vite-plus-config 0.1.2 → 0.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.
@@ -0,0 +1,572 @@
1
+ import { defineConfig, lazyPlugins, mergeConfig } from "vite-plus";
2
+ //#region src/shared/config.ts
3
+ function createLazyPluginInputs(factory) {
4
+ return lazyPlugins(factory);
5
+ }
6
+ function toUserConfig(config) {
7
+ return config;
8
+ }
9
+ function mergeConfigFragment(current, fragment) {
10
+ const merged = toUserConfig(mergeConfig(current, toUserConfig(fragment)));
11
+ const rules = fragment.lint?.rules;
12
+ if (rules === void 0) return merged;
13
+ return {
14
+ ...merged,
15
+ lint: {
16
+ ...merged.lint,
17
+ rules: {
18
+ ...current.lint?.rules,
19
+ ...rules
20
+ }
21
+ }
22
+ };
23
+ }
24
+ function mergeConfigFragments(base, ...overrides) {
25
+ let result = mergeConfigFragment({}, base);
26
+ for (const override of overrides) result = mergeConfigFragment(result, override);
27
+ return result;
28
+ }
29
+ function createDefinedConfig(base, ...overrides) {
30
+ return defineConfig(mergeConfigFragments(base, ...overrides));
31
+ }
32
+ //#endregion
33
+ //#region src/shared/constants.ts
34
+ const DEFAULT_TEST_INCLUDE = ["**/*.{test,spec}.{ts,tsx,mts,cts}"];
35
+ const DEFAULT_IGNORE_PATTERNS = [
36
+ "node_modules/**",
37
+ "dist/**",
38
+ "dist-ssr/**",
39
+ "**/.wrangler/**",
40
+ "**/worker-configuration.d.ts",
41
+ "**/migrations/**",
42
+ "**/drizzle/migrations.js",
43
+ "**/drizzle/meta/*.json"
44
+ ];
45
+ const REACT_NATIVE_IGNORE_PATTERNS = ["**/.expo/**"];
46
+ const DEFAULT_STAGED_CHECK_GLOB = "*.{js,jsx,ts,tsx,mjs,cjs,mts,cts}";
47
+ const DEFAULT_STAGED_CHECK_COMMAND = "vp check --fix";
48
+ const DEFAULT_WRANGLER_CONFIG_PATH = "./wrangler.jsonc";
49
+ //#endregion
50
+ //#region src/shared/fmt.ts
51
+ const baseFmt = {
52
+ ignorePatterns: [...DEFAULT_IGNORE_PATTERNS],
53
+ sortImports: {
54
+ internalPattern: ["#", "@/"],
55
+ newlinesBetween: false,
56
+ groups: [
57
+ "type-import",
58
+ ["value-builtin", "value-external"],
59
+ "type-internal",
60
+ "value-internal",
61
+ [
62
+ "type-parent",
63
+ "type-sibling",
64
+ "type-index"
65
+ ],
66
+ [
67
+ "value-parent",
68
+ "value-sibling",
69
+ "value-index"
70
+ ],
71
+ "unknown"
72
+ ]
73
+ }
74
+ };
75
+ const reactFmt = { sortTailwindcss: {
76
+ attributes: ["/.*ClassName/"],
77
+ functions: ["tv"]
78
+ } };
79
+ const reactNativeFmt = {
80
+ ...reactFmt,
81
+ ignorePatterns: [...REACT_NATIVE_IGNORE_PATTERNS]
82
+ };
83
+ //#endregion
84
+ //#region src/shared/rule-policy.ts
85
+ const reviewedBaseRules = {
86
+ "accessor-pairs": "error",
87
+ "array-callback-return": "error",
88
+ "arrow-body-style": "error",
89
+ curly: [
90
+ "error",
91
+ "multi-line",
92
+ "consistent"
93
+ ],
94
+ "default-case-last": "error",
95
+ "default-param-last": "error",
96
+ eqeqeq: "error",
97
+ "func-name-matching": "error",
98
+ "func-names": "error",
99
+ "grouped-accessor-pairs": ["error", "getBeforeSet"],
100
+ "guard-for-in": "error",
101
+ "import/consistent-type-specifier-style": "error",
102
+ "import/first": "error",
103
+ "import/newline-after-import": "error",
104
+ "import/no-duplicates": "error",
105
+ "import/no-mutable-exports": "error",
106
+ "import/no-named-default": "error",
107
+ "logical-assignment-operators": "error",
108
+ "max-depth": ["error", { max: 3 }],
109
+ "max-nested-callbacks": ["error", { max: 3 }],
110
+ "max-params": ["error", { max: 3 }],
111
+ "no-array-constructor": "error",
112
+ "no-await-in-loop": "error",
113
+ "no-case-declarations": "error",
114
+ "no-constructor-return": "error",
115
+ "no-else-return": "error",
116
+ "no-extra-label": "error",
117
+ "no-fallthrough": "error",
118
+ "no-implicit-coercion": "error",
119
+ "no-inline-comments": "error",
120
+ "no-inner-declarations": "error",
121
+ "no-label-var": "error",
122
+ "no-labels": "error",
123
+ "no-lone-blocks": "error",
124
+ "no-lonely-if": "error",
125
+ "no-loop-func": "error",
126
+ "no-multi-assign": "error",
127
+ "no-multi-str": "error",
128
+ "no-nested-ternary": "error",
129
+ "no-new-func": "error",
130
+ "no-new-wrappers": "error",
131
+ "no-object-constructor": "error",
132
+ "no-promise-executor-return": "error",
133
+ "no-prototype-builtins": "error",
134
+ "no-redeclare": "error",
135
+ "no-return-assign": "error",
136
+ "no-script-url": "error",
137
+ "no-self-compare": "error",
138
+ "no-template-curly-in-string": "error",
139
+ "no-throw-literal": "error",
140
+ "no-useless-call": "error",
141
+ "no-useless-computed-key": "error",
142
+ "no-useless-return": "error",
143
+ "no-warning-comments": "error",
144
+ "object-shorthand": "error",
145
+ "operator-assignment": "error",
146
+ "oxc/branches-sharing-code": "error",
147
+ "oxc/no-accumulating-spread": "error",
148
+ "oxc/no-map-spread": "error",
149
+ "prefer-arrow-callback": "error",
150
+ "prefer-const": "error",
151
+ "prefer-destructuring": "error",
152
+ "prefer-exponentiation-operator": "error",
153
+ "prefer-named-capture-group": "error",
154
+ "prefer-numeric-literals": "error",
155
+ "prefer-object-has-own": "error",
156
+ "prefer-object-spread": "error",
157
+ "prefer-promise-reject-errors": "error",
158
+ "prefer-regex-literals": "error",
159
+ "prefer-rest-params": "error",
160
+ "prefer-spread": "error",
161
+ "prefer-template": "error",
162
+ "promise/no-nesting": "error",
163
+ "promise/no-return-wrap": "error",
164
+ "promise/param-names": "error",
165
+ "promise/prefer-await-to-then": "error",
166
+ "promise/prefer-catch": "error",
167
+ radix: "error",
168
+ "symbol-description": "error",
169
+ "typescript/adjacent-overload-signatures": "error",
170
+ "typescript/array-type": "error",
171
+ "typescript/ban-ts-comment": ["error", { minimumDescriptionLength: 10 }],
172
+ "typescript/ban-tslint-comment": "error",
173
+ "typescript/ban-types": "error",
174
+ "typescript/class-literal-property-style": "error",
175
+ "typescript/consistent-generic-constructors": "error",
176
+ "typescript/consistent-indexed-object-style": "error",
177
+ "typescript/consistent-type-assertions": "error",
178
+ "typescript/consistent-type-exports": "error",
179
+ "typescript/consistent-type-imports": ["error", {
180
+ prefer: "type-imports",
181
+ fixStyle: "separate-type-imports"
182
+ }],
183
+ "typescript/dot-notation": "error",
184
+ "typescript/method-signature-style": "error",
185
+ "typescript/no-confusing-void-expression": "error",
186
+ "typescript/no-deprecated": "error",
187
+ "typescript/no-empty-interface": "error",
188
+ "typescript/no-inferrable-types": "error",
189
+ "typescript/no-misused-promises": "error",
190
+ "typescript/no-mixed-enums": "error",
191
+ "typescript/no-unnecessary-qualifier": "error",
192
+ "typescript/no-unsafe-argument": "error",
193
+ "typescript/no-unsafe-assignment": "error",
194
+ "typescript/no-unsafe-call": "error",
195
+ "typescript/no-unsafe-function-type": "error",
196
+ "typescript/no-unsafe-member-access": "error",
197
+ "typescript/no-unsafe-return": "error",
198
+ "typescript/only-throw-error": "error",
199
+ "typescript/parameter-properties": "error",
200
+ "typescript/prefer-enum-initializers": "error",
201
+ "typescript/prefer-find": "error",
202
+ "typescript/prefer-for-of": "error",
203
+ "typescript/prefer-function-type": "error",
204
+ "typescript/prefer-includes": "error",
205
+ "typescript/prefer-nullish-coalescing": "error",
206
+ "typescript/prefer-promise-reject-errors": "error",
207
+ "typescript/prefer-readonly": "error",
208
+ "typescript/prefer-reduce-type-parameter": "error",
209
+ "typescript/prefer-regexp-exec": "error",
210
+ "typescript/prefer-return-this-type": "error",
211
+ "typescript/prefer-string-starts-ends-with": "error",
212
+ "typescript/prefer-ts-expect-error": "error",
213
+ "typescript/related-getter-setter-pairs": "error",
214
+ "typescript/restrict-plus-operands": "error",
215
+ "typescript/return-await": "error",
216
+ "typescript/strict-boolean-expressions": "error",
217
+ "typescript/strict-void-return": "error",
218
+ "typescript/switch-exhaustiveness-check": "error",
219
+ "typescript/unified-signatures": "error",
220
+ "unicorn/catch-error-name": "error",
221
+ "unicorn/consistent-assert": "error",
222
+ "unicorn/consistent-date-clone": "error",
223
+ "unicorn/consistent-empty-array-spread": "error",
224
+ "unicorn/consistent-existence-index-check": "error",
225
+ "unicorn/consistent-template-literal-escape": "error",
226
+ "unicorn/custom-error-definition": "error",
227
+ "unicorn/error-message": "error",
228
+ "unicorn/escape-case": "error",
229
+ "unicorn/explicit-length-check": "error",
230
+ "unicorn/explicit-timer-delay": "error",
231
+ "unicorn/filename-case": ["error", { case: "kebabCase" }],
232
+ "unicorn/max-nested-calls": ["error", { max: 5 }],
233
+ "unicorn/new-for-builtins": "error",
234
+ "unicorn/no-array-callback-reference": "error",
235
+ "unicorn/no-array-method-this-argument": "error",
236
+ "unicorn/no-await-expression-member": "error",
237
+ "unicorn/no-console-spaces": "error",
238
+ "unicorn/no-hex-escape": "error",
239
+ "unicorn/no-immediate-mutation": "error",
240
+ "unicorn/no-instanceof-array": "error",
241
+ "unicorn/no-negation-in-equality-check": "error",
242
+ "unicorn/no-new-buffer": "error",
243
+ "unicorn/no-static-only-class": "error",
244
+ "unicorn/no-this-assignment": "error",
245
+ "unicorn/no-typeof-undefined": "error",
246
+ "unicorn/no-unnecessary-array-flat-depth": "error",
247
+ "unicorn/no-unnecessary-array-splice-count": "error",
248
+ "unicorn/no-unnecessary-slice-end": "error",
249
+ "unicorn/no-unreadable-array-destructuring": "error",
250
+ "unicorn/no-unreadable-iife": "error",
251
+ "unicorn/no-useless-collection-argument": "error",
252
+ "unicorn/no-useless-promise-resolve-reject": "error",
253
+ "unicorn/no-useless-switch-case": "error",
254
+ "unicorn/no-useless-undefined": "error",
255
+ "unicorn/no-zero-fractions": "error",
256
+ "unicorn/number-literal-case": "error",
257
+ "unicorn/numeric-separators-style": "error",
258
+ "unicorn/prefer-array-find": "error",
259
+ "unicorn/prefer-array-flat": "error",
260
+ "unicorn/prefer-array-flat-map": "error",
261
+ "unicorn/prefer-array-index-of": "error",
262
+ "unicorn/prefer-array-some": "error",
263
+ "unicorn/prefer-at": "error",
264
+ "unicorn/prefer-bigint-literals": "error",
265
+ "unicorn/prefer-blob-reading-methods": "error",
266
+ "unicorn/prefer-class-fields": "error",
267
+ "unicorn/prefer-classlist-toggle": "error",
268
+ "unicorn/prefer-code-point": "error",
269
+ "unicorn/prefer-date-now": "error",
270
+ "unicorn/prefer-default-parameters": "error",
271
+ "unicorn/prefer-dom-node-append": "error",
272
+ "unicorn/prefer-dom-node-dataset": "error",
273
+ "unicorn/prefer-dom-node-remove": "error",
274
+ "unicorn/prefer-dom-node-text-content": "error",
275
+ "unicorn/prefer-export-from": "error",
276
+ "unicorn/prefer-global-this": "error",
277
+ "unicorn/prefer-import-meta-properties": "error",
278
+ "unicorn/prefer-includes": "error",
279
+ "unicorn/prefer-keyboard-event-key": "error",
280
+ "unicorn/prefer-logical-operator-over-ternary": "error",
281
+ "unicorn/prefer-math-min-max": "error",
282
+ "unicorn/prefer-math-trunc": "error",
283
+ "unicorn/prefer-modern-dom-apis": "error",
284
+ "unicorn/prefer-native-coercion-functions": "error",
285
+ "unicorn/prefer-negative-index": "error",
286
+ "unicorn/prefer-number-coercion": "error",
287
+ "unicorn/prefer-object-from-entries": "error",
288
+ "unicorn/prefer-optional-catch-binding": "error",
289
+ "unicorn/prefer-prototype-methods": "error",
290
+ "unicorn/prefer-reflect-apply": "error",
291
+ "unicorn/prefer-regexp-test": "error",
292
+ "unicorn/prefer-response-static-json": "error",
293
+ "unicorn/prefer-set-has": "error",
294
+ "unicorn/prefer-single-call": "error",
295
+ "unicorn/prefer-spread": "error",
296
+ "unicorn/prefer-string-raw": "error",
297
+ "unicorn/prefer-string-replace-all": "error",
298
+ "unicorn/prefer-string-slice": "error",
299
+ "unicorn/prefer-string-trim-start-end": "error",
300
+ "unicorn/prefer-structured-clone": "error",
301
+ "unicorn/prefer-ternary": ["error", "only-single-line"],
302
+ "unicorn/prefer-type-error": "error",
303
+ "unicorn/relative-url-style": "error",
304
+ "unicorn/require-array-join-separator": "error",
305
+ "unicorn/require-module-attributes": "error",
306
+ "unicorn/require-number-to-fixed-digits-argument": "error",
307
+ "unicorn/switch-case-braces": "error",
308
+ "unicorn/switch-case-break-position": "error",
309
+ "unicorn/text-encoding-identifier-case": "error",
310
+ "unicorn/throw-new-error": "error",
311
+ yoda: "error"
312
+ };
313
+ const reviewedReactRules = {
314
+ "react/checked-requires-onchange-or-readonly": "error",
315
+ "react/display-name": "error",
316
+ "react/function-component-definition": ["error", {
317
+ namedComponents: "function-declaration",
318
+ unnamedComponents: ["arrow-function", "function-expression"]
319
+ }],
320
+ "react/hook-use-state": "error",
321
+ "react/jsx-boolean-value": "error",
322
+ "react/jsx-curly-brace-presence": "error",
323
+ "react/jsx-fragments": "error",
324
+ "react/jsx-max-depth": ["error", { max: 6 }],
325
+ "react/jsx-no-constructed-context-values": "error",
326
+ "react/jsx-no-target-blank": "error",
327
+ "react/jsx-no-useless-fragment": "error",
328
+ "react/jsx-pascal-case": "error",
329
+ "react/no-array-index-key": "error",
330
+ "react/no-object-type-as-default-prop": "error",
331
+ "react/no-redundant-should-component-update": "error",
332
+ "react/no-set-state": "error",
333
+ "react/no-unescaped-entities": "error",
334
+ "react/prefer-es6-class": "error",
335
+ "react/rules-of-hooks": "error",
336
+ "react/self-closing-comp": "error",
337
+ "react/state-in-constructor": "error"
338
+ };
339
+ const reviewedNodeRules = {
340
+ "node/callback-return": "error",
341
+ "node/exports-style": "error",
342
+ "node/global-require": "error",
343
+ "node/no-exports-assign": "error",
344
+ "node/no-mixed-requires": "error"
345
+ };
346
+ const reviewedVitestRules = {
347
+ "vitest/consistent-each-for": "error",
348
+ "vitest/consistent-test-it": ["error", {
349
+ fn: "test",
350
+ withinDescribe: "it"
351
+ }],
352
+ "vitest/consistent-vitest-vi": "error",
353
+ "vitest/max-nested-describe": ["error", { max: 3 }],
354
+ "vitest/no-alias-methods": "error",
355
+ "vitest/no-duplicate-hooks": "error",
356
+ "vitest/no-identical-title": "error",
357
+ "vitest/no-import-node-test": "error",
358
+ "vitest/no-interpolation-in-snapshots": "error",
359
+ "vitest/no-large-snapshots": "error",
360
+ "vitest/no-mocks-import": "error",
361
+ "vitest/no-test-prefixes": "error",
362
+ "vitest/no-test-return-statement": "error",
363
+ "vitest/no-unneeded-async-expect-function": "error",
364
+ "vitest/padding-around-after-all-blocks": "error",
365
+ "vitest/padding-around-test-blocks": "error",
366
+ "vitest/prefer-called-exactly-once-with": "error",
367
+ "vitest/prefer-called-once": "error",
368
+ "vitest/prefer-called-with": "error",
369
+ "vitest/prefer-comparison-matcher": "error",
370
+ "vitest/prefer-each": "error",
371
+ "vitest/prefer-equality-matcher": "error",
372
+ "vitest/prefer-expect-resolves": "error",
373
+ "vitest/prefer-expect-type-of": "error",
374
+ "vitest/prefer-hooks-in-order": "error",
375
+ "vitest/prefer-hooks-on-top": "error",
376
+ "vitest/prefer-import-in-mock": "error",
377
+ "vitest/prefer-importing-vitest-globals": "error",
378
+ "vitest/prefer-mock-promise-shorthand": "error",
379
+ "vitest/prefer-mock-return-shorthand": "error",
380
+ "vitest/prefer-spy-on": "error",
381
+ "vitest/prefer-strict-boolean-matchers": "error",
382
+ "vitest/prefer-strict-equal": "error",
383
+ "vitest/prefer-to-be": "error",
384
+ "vitest/prefer-to-be-object": "error",
385
+ "vitest/prefer-to-contain": "error",
386
+ "vitest/prefer-to-have-been-called-times": "error",
387
+ "vitest/prefer-to-have-length": "error",
388
+ "vitest/prefer-todo": "error"
389
+ };
390
+ //#endregion
391
+ //#region src/shared/lint.ts
392
+ const BASE_LINT_PLUGINS = [
393
+ "typescript",
394
+ "unicorn",
395
+ "oxc",
396
+ "import",
397
+ "promise"
398
+ ];
399
+ const baseRules = {
400
+ ...reviewedBaseRules,
401
+ complexity: ["error", { max: 20 }],
402
+ "getter-return": "error",
403
+ "no-alert": "error",
404
+ "no-bitwise": "error",
405
+ "no-console": ["error", { allow: [
406
+ "info",
407
+ "warn",
408
+ "error"
409
+ ] }],
410
+ "no-param-reassign": ["error", { props: true }],
411
+ "no-plusplus": "error",
412
+ "no-undef": "error",
413
+ "no-unneeded-ternary": "error",
414
+ "no-unreachable": "error",
415
+ "no-useless-return": "error",
416
+ "prefer-template": "error",
417
+ "import/no-cycle": "error",
418
+ "import/no-unassigned-import": "off",
419
+ "oxc/bad-match-all-arg": "error",
420
+ "typescript/consistent-return": "error",
421
+ "typescript/consistent-type-exports": "error",
422
+ "typescript/consistent-type-imports": ["error", {
423
+ prefer: "type-imports",
424
+ fixStyle: "separate-type-imports"
425
+ }],
426
+ "typescript/dot-notation": "error",
427
+ "typescript/explicit-module-boundary-types": "error",
428
+ "typescript/no-confusing-void-expression": "error",
429
+ "typescript/no-dynamic-delete": "error",
430
+ "typescript/no-explicit-any": "error",
431
+ "typescript/no-floating-promises": "error",
432
+ "typescript/no-misused-promises": "error",
433
+ "typescript/no-misused-spread": "error",
434
+ "typescript/no-non-null-assertion": "error",
435
+ "typescript/no-require-imports": "error",
436
+ "typescript/no-unnecessary-condition": "error",
437
+ "typescript/no-unnecessary-qualifier": "error",
438
+ "typescript/no-unnecessary-type-arguments": "error",
439
+ "typescript/no-unnecessary-type-assertion": "error",
440
+ "typescript/no-unnecessary-type-parameters": "error",
441
+ "typescript/no-unsafe-argument": "error",
442
+ "typescript/no-unsafe-assignment": "error",
443
+ "typescript/no-unsafe-call": "error",
444
+ "typescript/no-unsafe-member-access": "error",
445
+ "typescript/no-unsafe-return": "error",
446
+ "typescript/no-useless-default-assignment": "error",
447
+ "typescript/non-nullable-type-assertion-style": "error",
448
+ "typescript/only-throw-error": "error",
449
+ "typescript/prefer-find": "error",
450
+ "typescript/prefer-nullish-coalescing": "error",
451
+ "typescript/prefer-optional-chain": "error",
452
+ "typescript/prefer-readonly": "error",
453
+ "typescript/prefer-regexp-exec": "error",
454
+ "typescript/require-array-sort-compare": "error",
455
+ "typescript/restrict-plus-operands": "error",
456
+ "typescript/restrict-template-expressions": "error",
457
+ "typescript/return-await": "error",
458
+ "typescript/strict-boolean-expressions": "error",
459
+ "typescript/strict-void-return": "error",
460
+ "typescript/switch-exhaustiveness-check": "error",
461
+ "typescript/unbound-method": "error",
462
+ "typescript/use-unknown-in-catch-callback-variable": "error",
463
+ "unicorn/no-abusive-eslint-disable": "error"
464
+ };
465
+ const baseLint = {
466
+ plugins: [...BASE_LINT_PLUGINS],
467
+ ignorePatterns: [...DEFAULT_IGNORE_PATTERNS],
468
+ env: {
469
+ serviceworker: true,
470
+ worker: true
471
+ },
472
+ options: {
473
+ reportUnusedDisableDirectives: "error",
474
+ typeAware: true,
475
+ typeCheck: true
476
+ },
477
+ categories: {
478
+ correctness: "error",
479
+ suspicious: "error"
480
+ },
481
+ rules: baseRules,
482
+ overrides: [
483
+ {
484
+ files: ["**/*.{cjs,cts}"],
485
+ env: { node: true },
486
+ rules: { "typescript/no-require-imports": "off" }
487
+ },
488
+ {
489
+ files: ["**/*.config.{js,jsx,ts,tsx,mjs,cjs,mts,cts}"],
490
+ env: { node: true },
491
+ rules: { "func-names": "off" }
492
+ },
493
+ {
494
+ files: ["**/*.d.ts"],
495
+ rules: { "typescript/no-empty-interface": "off" }
496
+ },
497
+ {
498
+ files: [
499
+ "**/test/**",
500
+ "**/tests/**",
501
+ "**/__tests__/**",
502
+ "**/*.{test,spec}.{js,jsx,ts,tsx,mjs,cjs,mts,cts}"
503
+ ],
504
+ plugins: [...BASE_LINT_PLUGINS, "vitest"],
505
+ env: { vitest: true },
506
+ rules: reviewedVitestRules
507
+ }
508
+ ]
509
+ };
510
+ const reactRules = {
511
+ ...reviewedReactRules,
512
+ "react/exhaustive-deps": "error",
513
+ "react/react-compiler": "error",
514
+ "react/react-in-jsx-scope": "off",
515
+ "react/jsx-key": "error",
516
+ "react/jsx-no-constructed-context-values": "error",
517
+ "react/jsx-no-duplicate-props": "error",
518
+ "react/jsx-no-undef": "error",
519
+ "react/no-array-index-key": "error",
520
+ "react/no-children-prop": "error",
521
+ "react/no-clone-element": "error",
522
+ "react/no-danger": "error",
523
+ "react/no-danger-with-children": "error",
524
+ "react/no-direct-mutation-state": "error",
525
+ "react/no-find-dom-node": "error",
526
+ "react/no-react-children": "error",
527
+ "react/no-string-refs": "error",
528
+ "react/no-unsafe": "error",
529
+ "react/no-unknown-property": "error",
530
+ "react/style-prop-object": "off",
531
+ "react/void-dom-elements-no-children": "error"
532
+ };
533
+ const reactLint = {
534
+ plugins: ["react", "jsx-a11y"],
535
+ env: { browser: true },
536
+ rules: reactRules
537
+ };
538
+ const reactNativeLint = {
539
+ plugins: ["react"],
540
+ ignorePatterns: [...REACT_NATIVE_IGNORE_PATTERNS],
541
+ env: { browser: false },
542
+ globals: {
543
+ __DEV__: "readonly",
544
+ process: "readonly"
545
+ },
546
+ rules: {
547
+ ...reactRules,
548
+ "react/no-unknown-property": "off",
549
+ "react/no-unescaped-entities": "off",
550
+ "react/no-unstable-nested-components": ["error", { allowAsProps: true }]
551
+ }
552
+ };
553
+ const serverLint = {
554
+ plugins: ["node"],
555
+ globals: { WebSocketPair: "readonly" },
556
+ rules: reviewedNodeRules
557
+ };
558
+ //#endregion
559
+ //#region src/base/index.ts
560
+ const baseConfig = {
561
+ fmt: baseFmt,
562
+ lint: baseLint,
563
+ test: { include: [...DEFAULT_TEST_INCLUDE] },
564
+ staged: { [DEFAULT_STAGED_CHECK_GLOB]: DEFAULT_STAGED_CHECK_COMMAND }
565
+ };
566
+ function createBaseConfig(overrides = {}) {
567
+ return createDefinedConfig(baseConfig, overrides);
568
+ }
569
+ //#endregion
570
+ export { reactFmt as a, createDefinedConfig as c, serverLint as i, createLazyPluginInputs as l, reactLint as n, reactNativeFmt as o, reactNativeLint as r, DEFAULT_WRANGLER_CONFIG_PATH as s, createBaseConfig as t, mergeConfigFragments as u };
571
+
572
+ //# sourceMappingURL=base-7cyIJaBC.mjs.map