@pobammer-ts/small-rules 2.7.0 → 2.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/index.d.ts +268 -16
- package/dist/index.js +10 -10
- package/package.json +29 -14
package/dist/index.d.ts
CHANGED
|
@@ -36,6 +36,9 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
36
36
|
readonly additionalProperties: false;
|
|
37
37
|
readonly properties: {
|
|
38
38
|
readonly bannedTypes: {
|
|
39
|
+
readonly default: {
|
|
40
|
+
readonly Omit: "Except";
|
|
41
|
+
};
|
|
39
42
|
readonly description: "Array of banned type names or an object mapping banned type names to preferred replacement names.";
|
|
40
43
|
readonly oneOf: readonly [{
|
|
41
44
|
readonly items: {
|
|
@@ -52,11 +55,47 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
52
55
|
};
|
|
53
56
|
readonly type: "object";
|
|
54
57
|
}], "bannedType" | "bannedTypeWithReplacement", undefined>;
|
|
58
|
+
"consistent-compound-words": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
59
|
+
readonly additionalProperties: false;
|
|
60
|
+
readonly properties: {
|
|
61
|
+
readonly allowList: {
|
|
62
|
+
readonly additionalProperties: {
|
|
63
|
+
readonly enum: readonly [true];
|
|
64
|
+
};
|
|
65
|
+
readonly type: "object";
|
|
66
|
+
};
|
|
67
|
+
readonly checkProperties: {
|
|
68
|
+
readonly type: "boolean";
|
|
69
|
+
};
|
|
70
|
+
readonly checkShorthandProperties: {
|
|
71
|
+
readonly type: "boolean";
|
|
72
|
+
};
|
|
73
|
+
readonly checkVariables: {
|
|
74
|
+
readonly type: "boolean";
|
|
75
|
+
};
|
|
76
|
+
readonly extendDefaultReplacements: {
|
|
77
|
+
readonly type: "boolean";
|
|
78
|
+
};
|
|
79
|
+
readonly replacements: {
|
|
80
|
+
readonly additionalProperties: {
|
|
81
|
+
readonly anyOf: readonly [{
|
|
82
|
+
readonly enum: readonly [false];
|
|
83
|
+
}, {
|
|
84
|
+
readonly minLength: 1;
|
|
85
|
+
readonly type: "string";
|
|
86
|
+
}];
|
|
87
|
+
};
|
|
88
|
+
readonly type: "object";
|
|
89
|
+
};
|
|
90
|
+
};
|
|
91
|
+
readonly type: "object";
|
|
92
|
+
}], "error" | "rename", undefined>;
|
|
55
93
|
"directive-disable-enable-pair": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
56
94
|
readonly additionalProperties: false;
|
|
57
95
|
readonly properties: {
|
|
58
|
-
allowWholeFile: {
|
|
59
|
-
|
|
96
|
+
readonly allowWholeFile: {
|
|
97
|
+
readonly description: "Allow a disable directive that covers the entire file.";
|
|
98
|
+
readonly type: "boolean";
|
|
60
99
|
};
|
|
61
100
|
};
|
|
62
101
|
readonly type: "object";
|
|
@@ -76,6 +115,7 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
76
115
|
readonly additionalProperties: false;
|
|
77
116
|
readonly properties: {
|
|
78
117
|
readonly allow: {
|
|
118
|
+
readonly description: "Directive kinds that are still allowed in block comments.";
|
|
79
119
|
readonly items: {
|
|
80
120
|
type: "string";
|
|
81
121
|
};
|
|
@@ -89,6 +129,7 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
89
129
|
readonly additionalProperties: false;
|
|
90
130
|
readonly properties: {
|
|
91
131
|
readonly ignore: {
|
|
132
|
+
readonly description: "Directive kinds that do not require a description.";
|
|
92
133
|
readonly items: {
|
|
93
134
|
type: "string";
|
|
94
135
|
};
|
|
@@ -102,27 +143,73 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
102
143
|
readonly additionalProperties: false;
|
|
103
144
|
readonly properties: {
|
|
104
145
|
readonly baseThreshold: {
|
|
146
|
+
readonly default: number;
|
|
147
|
+
readonly description: "Minimum complexity score before missing Ianitor.Check<T> annotations are reported.";
|
|
105
148
|
readonly minimum: 1;
|
|
106
149
|
readonly type: "number";
|
|
107
150
|
};
|
|
108
151
|
readonly errorThreshold: {
|
|
152
|
+
readonly default: number;
|
|
153
|
+
readonly description: "Complexity score used to cap recursive analysis before reporting is determined.";
|
|
109
154
|
readonly minimum: 1;
|
|
110
155
|
readonly type: "number";
|
|
111
156
|
};
|
|
112
157
|
readonly interfacePenalty: {
|
|
158
|
+
readonly default: number;
|
|
159
|
+
readonly description: "Complexity penalty applied when an Ianitor validator builds an interface-like shape.";
|
|
113
160
|
readonly minimum: 1;
|
|
114
161
|
readonly type: "number";
|
|
115
162
|
};
|
|
116
163
|
readonly performanceMode: {
|
|
164
|
+
readonly default: boolean;
|
|
165
|
+
readonly description: "Whether repeated type nodes are cached during complexity analysis.";
|
|
117
166
|
readonly type: "boolean";
|
|
118
167
|
};
|
|
119
|
-
readonly warnThreshold: {
|
|
120
|
-
readonly minimum: 1;
|
|
121
|
-
readonly type: "number";
|
|
122
|
-
};
|
|
123
168
|
};
|
|
124
169
|
readonly type: "object";
|
|
125
170
|
}], "complexInterfaceNeedsCheck" | "missingIanitorCheckType", undefined>;
|
|
171
|
+
"isolated-functions": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
172
|
+
readonly additionalProperties: false;
|
|
173
|
+
readonly properties: {
|
|
174
|
+
readonly comments: {
|
|
175
|
+
readonly description: "Comment patterns that mark a function as isolated.";
|
|
176
|
+
readonly items: {
|
|
177
|
+
readonly type: "string";
|
|
178
|
+
};
|
|
179
|
+
readonly type: "array";
|
|
180
|
+
readonly uniqueItems: true;
|
|
181
|
+
};
|
|
182
|
+
readonly functions: {
|
|
183
|
+
readonly description: "Function names that mark argument callbacks as isolated.";
|
|
184
|
+
readonly items: {
|
|
185
|
+
readonly type: "string";
|
|
186
|
+
};
|
|
187
|
+
readonly type: "array";
|
|
188
|
+
readonly uniqueItems: true;
|
|
189
|
+
};
|
|
190
|
+
readonly overrideGlobals: {
|
|
191
|
+
readonly additionalProperties: {
|
|
192
|
+
readonly anyOf: readonly [{
|
|
193
|
+
readonly type: "boolean";
|
|
194
|
+
}, {
|
|
195
|
+
readonly enum: readonly ["off", "readonly", "writable", "writeable"];
|
|
196
|
+
readonly type: "string";
|
|
197
|
+
}];
|
|
198
|
+
};
|
|
199
|
+
readonly description: "Override which global variables are allowed inside isolated scopes.";
|
|
200
|
+
readonly type: "object";
|
|
201
|
+
};
|
|
202
|
+
readonly selectors: {
|
|
203
|
+
readonly description: "AST selectors that mark matched function nodes as isolated.";
|
|
204
|
+
readonly items: {
|
|
205
|
+
readonly type: "string";
|
|
206
|
+
};
|
|
207
|
+
readonly type: "array";
|
|
208
|
+
readonly uniqueItems: true;
|
|
209
|
+
};
|
|
210
|
+
};
|
|
211
|
+
readonly type: "object";
|
|
212
|
+
}], "externallyScopedVariable" | "super" | "thisExpression", undefined>;
|
|
126
213
|
"memoized-effect-dependencies": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
127
214
|
readonly additionalProperties: false;
|
|
128
215
|
readonly properties: {
|
|
@@ -133,7 +220,11 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
133
220
|
readonly type: "string";
|
|
134
221
|
};
|
|
135
222
|
readonly hooks: {
|
|
136
|
-
readonly
|
|
223
|
+
readonly default: {
|
|
224
|
+
dependenciesIndex: number;
|
|
225
|
+
name: string;
|
|
226
|
+
}[];
|
|
227
|
+
readonly description: "Effect hooks checked by default; configured entries are added to this set.";
|
|
137
228
|
readonly items: {
|
|
138
229
|
readonly additionalProperties: false;
|
|
139
230
|
readonly properties: {
|
|
@@ -183,6 +274,7 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
183
274
|
readonly properties: {
|
|
184
275
|
readonly allowAutofix: {
|
|
185
276
|
readonly default: false;
|
|
277
|
+
readonly description: "Allow the fixer to replace safe append assignments with array.push(value).";
|
|
186
278
|
readonly type: "boolean";
|
|
187
279
|
};
|
|
188
280
|
readonly environment: {
|
|
@@ -238,6 +330,32 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
238
330
|
};
|
|
239
331
|
readonly type: "array";
|
|
240
332
|
};
|
|
333
|
+
readonly synchronousCallbacks: {
|
|
334
|
+
readonly items: {
|
|
335
|
+
readonly additionalProperties: false;
|
|
336
|
+
readonly properties: {
|
|
337
|
+
readonly callbackArgumentIndexes: {
|
|
338
|
+
readonly items: {
|
|
339
|
+
readonly minimum: 0;
|
|
340
|
+
readonly type: "integer";
|
|
341
|
+
};
|
|
342
|
+
readonly minItems: 1;
|
|
343
|
+
readonly type: "array";
|
|
344
|
+
readonly uniqueItems: true;
|
|
345
|
+
};
|
|
346
|
+
readonly calleePath: {
|
|
347
|
+
readonly items: {
|
|
348
|
+
readonly type: "string";
|
|
349
|
+
};
|
|
350
|
+
readonly minItems: 1;
|
|
351
|
+
readonly type: "array";
|
|
352
|
+
};
|
|
353
|
+
};
|
|
354
|
+
readonly required: readonly ["callbackArgumentIndexes", "calleePath"];
|
|
355
|
+
readonly type: "object";
|
|
356
|
+
};
|
|
357
|
+
readonly type: "array";
|
|
358
|
+
};
|
|
241
359
|
};
|
|
242
360
|
readonly type: "object";
|
|
243
361
|
}], "noAsyncInSystem", undefined>;
|
|
@@ -247,6 +365,7 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
247
365
|
readonly properties: {
|
|
248
366
|
readonly reportUnknownComponents: {
|
|
249
367
|
readonly default: true;
|
|
368
|
+
readonly description: "Report new Color3(...) calls when one or more components are not numeric literals.";
|
|
250
369
|
readonly type: "boolean";
|
|
251
370
|
};
|
|
252
371
|
};
|
|
@@ -267,6 +386,7 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
267
386
|
readonly additionalProperties: false;
|
|
268
387
|
readonly properties: {
|
|
269
388
|
readonly loopExitCalls: {
|
|
389
|
+
readonly description: "Call expressions that count as intentional loop exits inside constant loops.";
|
|
270
390
|
readonly items: {
|
|
271
391
|
readonly minLength: 1;
|
|
272
392
|
readonly type: "string";
|
|
@@ -276,11 +396,13 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
276
396
|
};
|
|
277
397
|
readonly type: "object";
|
|
278
398
|
}], "unexpected", undefined>;
|
|
399
|
+
"no-dead-store": import("oxlint-plugin-utilities").CreateRule<readonly [], "deadStore", undefined>;
|
|
279
400
|
"no-error": import("oxlint-plugin-utilities").CreateRule<readonly [], "noError", readonly []>;
|
|
280
401
|
"no-events-in-events-callback": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
281
402
|
readonly additionalProperties: false;
|
|
282
403
|
readonly properties: {
|
|
283
404
|
readonly eventsImportPaths: {
|
|
405
|
+
readonly description: "Import paths that identify Events objects whose callbacks should be checked.";
|
|
284
406
|
readonly items: {
|
|
285
407
|
readonly minLength: 1;
|
|
286
408
|
readonly type: "string";
|
|
@@ -291,6 +413,8 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
291
413
|
readonly required: readonly ["eventsImportPaths"];
|
|
292
414
|
readonly type: "object";
|
|
293
415
|
}], "preferFunctions", undefined>;
|
|
416
|
+
"no-filter-map-chain": import("oxlint-plugin-utilities").CreateRule<readonly [], "avoidFilterMapChain", undefined>;
|
|
417
|
+
"no-floating-point-equality": import("oxlint-plugin-utilities").CreateRule<readonly [], "exactFloatComparison", undefined>;
|
|
294
418
|
"no-giant-component": import("oxlint-plugin-utilities").CreateRule<undefined, "giantComponent", undefined>;
|
|
295
419
|
"no-god-components": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
296
420
|
readonly additionalProperties: false;
|
|
@@ -301,6 +425,7 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
301
425
|
readonly type: "boolean";
|
|
302
426
|
};
|
|
303
427
|
readonly ignoreComponents: {
|
|
428
|
+
readonly default: readonly [];
|
|
304
429
|
readonly description: "Component names to ignore.";
|
|
305
430
|
readonly items: {
|
|
306
431
|
readonly type: "string";
|
|
@@ -364,6 +489,7 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
364
489
|
readonly properties: {
|
|
365
490
|
readonly allowAutofix: {
|
|
366
491
|
readonly default: false;
|
|
492
|
+
readonly description: "Allow the fixer to replace standalone ++ and -- statements and for-loop updates.";
|
|
367
493
|
readonly type: "boolean";
|
|
368
494
|
};
|
|
369
495
|
};
|
|
@@ -391,11 +517,13 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
391
517
|
};
|
|
392
518
|
readonly type: "object";
|
|
393
519
|
}], "noInstanceMethodWithoutThis", undefined>;
|
|
520
|
+
"no-loop-iterable-mutation": import("oxlint-plugin-utilities").CreateRule<readonly [], "noLoopIterableMutation", undefined>;
|
|
394
521
|
"no-native-properties-spread": import("oxlint-plugin-utilities").CreateRule<readonly [], "noElementSpread" | "noNativePropertiesSpread", undefined>;
|
|
395
522
|
"no-new-instance-in-use-memo": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
396
523
|
readonly additionalProperties: false;
|
|
397
524
|
readonly properties: {
|
|
398
525
|
readonly constructors: {
|
|
526
|
+
readonly default: readonly string[];
|
|
399
527
|
readonly description: "Constructor identifiers that should be disallowed inside useMemo callbacks.";
|
|
400
528
|
readonly items: {
|
|
401
529
|
readonly type: "string";
|
|
@@ -470,6 +598,8 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
470
598
|
readonly additionalProperties: false;
|
|
471
599
|
readonly properties: {
|
|
472
600
|
environment: {
|
|
601
|
+
default: string;
|
|
602
|
+
description: string;
|
|
473
603
|
enum: readonly ["roblox-ts", "standard"];
|
|
474
604
|
type: string;
|
|
475
605
|
};
|
|
@@ -478,7 +608,8 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
478
608
|
}], "useJsx", undefined>;
|
|
479
609
|
"no-table-create-map": import("oxlint-plugin-utilities").CreateRule<readonly [], "avoidConstructThenMap", undefined>;
|
|
480
610
|
"no-task-wait": import("oxlint-plugin-utilities").CreateOnceRule<readonly [], "noPromiseDelayAwait" | "noTaskWait", undefined>;
|
|
481
|
-
"no-
|
|
611
|
+
"no-trivial-assertions": import("oxlint-plugin-utilities").CreateRule<readonly [], "freshIdentity" | "freshPredicate" | "issue", undefined>;
|
|
612
|
+
"no-underscore-react-props": import("oxlint-plugin-utilities").CreateOnceRule<readonly [], "noUnderscoreReactProperty", undefined>;
|
|
482
613
|
"no-unused-imports": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
483
614
|
readonly additionalProperties: false;
|
|
484
615
|
readonly properties: {
|
|
@@ -495,6 +626,7 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
495
626
|
readonly properties: {
|
|
496
627
|
readonly environment: {
|
|
497
628
|
readonly default: "roblox-ts";
|
|
629
|
+
readonly description: "The React environment: 'roblox-ts' uses @rbxts/react, 'standard' uses react.";
|
|
498
630
|
readonly enum: readonly ["roblox-ts", "standard"];
|
|
499
631
|
readonly type: "string";
|
|
500
632
|
};
|
|
@@ -502,11 +634,13 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
502
634
|
readonly type: "object";
|
|
503
635
|
}], "unusedUseMemo", undefined>;
|
|
504
636
|
"no-use-memo-simple-expression": import("oxlint-plugin-utilities").CreateRule<undefined, "simpleMemo", undefined>;
|
|
637
|
+
"no-use-of-empty-return-value": import("oxlint-plugin-utilities").CreateRule<readonly [], "removeUseOfOutput", undefined>;
|
|
505
638
|
"no-useless-constants": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
506
639
|
readonly additionalProperties: false;
|
|
507
640
|
readonly properties: {
|
|
508
641
|
readonly ignoreCallPatterns: {
|
|
509
642
|
readonly default: readonly string[];
|
|
643
|
+
readonly description: "Regular expression patterns for call expressions that should be ignored.";
|
|
510
644
|
readonly items: {
|
|
511
645
|
readonly type: "string";
|
|
512
646
|
};
|
|
@@ -527,6 +661,7 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
527
661
|
};
|
|
528
662
|
readonly hooks: {
|
|
529
663
|
readonly default: readonly ["useEffect", "useLayoutEffect", "useInsertionEffect"];
|
|
664
|
+
readonly description: "Effect hook names checked for avoidable effect patterns.";
|
|
530
665
|
readonly items: {
|
|
531
666
|
readonly type: "string";
|
|
532
667
|
};
|
|
@@ -534,6 +669,7 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
534
669
|
};
|
|
535
670
|
readonly propertyCallbackPrefixes: {
|
|
536
671
|
readonly default: readonly ["on"];
|
|
672
|
+
readonly description: "Property name prefixes treated as event callback props.";
|
|
537
673
|
readonly items: {
|
|
538
674
|
readonly type: "string";
|
|
539
675
|
};
|
|
@@ -549,58 +685,72 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
549
685
|
};
|
|
550
686
|
readonly reportAdjustState: {
|
|
551
687
|
readonly default: true;
|
|
688
|
+
readonly description: "Report effects that only adjust state after render.";
|
|
552
689
|
readonly type: "boolean";
|
|
553
690
|
};
|
|
554
691
|
readonly reportDerivedState: {
|
|
555
692
|
readonly default: true;
|
|
693
|
+
readonly description: "Report effects that copy derived values into state.";
|
|
556
694
|
readonly type: "boolean";
|
|
557
695
|
};
|
|
558
696
|
readonly reportDuplicateDeps: {
|
|
559
697
|
readonly default: true;
|
|
698
|
+
readonly description: "Report duplicate entries in effect dependency arrays.";
|
|
560
699
|
readonly type: "boolean";
|
|
561
700
|
};
|
|
562
701
|
readonly reportEffectChain: {
|
|
563
702
|
readonly default: true;
|
|
703
|
+
readonly description: "Report effects that only trigger another effect through state.";
|
|
564
704
|
readonly type: "boolean";
|
|
565
705
|
};
|
|
566
706
|
readonly reportEmptyEffect: {
|
|
567
707
|
readonly default: true;
|
|
708
|
+
readonly description: "Report effects whose callback body is empty.";
|
|
568
709
|
readonly type: "boolean";
|
|
569
710
|
};
|
|
570
711
|
readonly reportEventFlag: {
|
|
571
712
|
readonly default: true;
|
|
713
|
+
readonly description: "Report effects that react to event flags stored in state.";
|
|
572
714
|
readonly type: "boolean";
|
|
573
715
|
};
|
|
574
716
|
readonly reportEventSpecificLogic: {
|
|
575
717
|
readonly default: true;
|
|
718
|
+
readonly description: "Report effects that move event-specific logic out of the event callback.";
|
|
576
719
|
readonly type: "boolean";
|
|
577
720
|
};
|
|
578
721
|
readonly reportExternalStore: {
|
|
579
722
|
readonly default: true;
|
|
723
|
+
readonly description: "Report effects that mirror external store values into local state.";
|
|
580
724
|
readonly type: "boolean";
|
|
581
725
|
};
|
|
582
726
|
readonly reportInitializeState: {
|
|
583
727
|
readonly default: true;
|
|
728
|
+
readonly description: "Report effects that only initialize state after mount.";
|
|
584
729
|
readonly type: "boolean";
|
|
585
730
|
};
|
|
586
731
|
readonly reportLogOnly: {
|
|
587
732
|
readonly default: true;
|
|
733
|
+
readonly description: "Report effects that only log values.";
|
|
588
734
|
readonly type: "boolean";
|
|
589
735
|
};
|
|
590
736
|
readonly reportMixedDerivedState: {
|
|
591
737
|
readonly default: true;
|
|
738
|
+
readonly description: "Report effects that mix derived-state updates with other work.";
|
|
592
739
|
readonly type: "boolean";
|
|
593
740
|
};
|
|
594
741
|
readonly reportNotifyParent: {
|
|
595
742
|
readonly default: true;
|
|
743
|
+
readonly description: "Report effects that only notify a parent through a callback prop.";
|
|
596
744
|
readonly type: "boolean";
|
|
597
745
|
};
|
|
598
746
|
readonly reportPassRefToParent: {
|
|
599
747
|
readonly default: true;
|
|
748
|
+
readonly description: "Report effects that only pass a ref value to a parent callback.";
|
|
600
749
|
readonly type: "boolean";
|
|
601
750
|
};
|
|
602
751
|
readonly reportResetState: {
|
|
603
752
|
readonly default: true;
|
|
753
|
+
readonly description: "Report effects that reset local state when inputs change.";
|
|
604
754
|
readonly type: "boolean";
|
|
605
755
|
};
|
|
606
756
|
readonly stateHooks: {
|
|
@@ -619,15 +769,19 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
619
769
|
readonly properties: {
|
|
620
770
|
readonly dependencyMode: {
|
|
621
771
|
readonly default: "non-updating";
|
|
772
|
+
readonly description: "Dependency-array mode used to decide whether a memoized value is static.";
|
|
622
773
|
readonly enum: readonly ["empty-or-omitted", "non-updating", "aggressive"];
|
|
623
774
|
readonly type: "string";
|
|
624
775
|
};
|
|
625
776
|
readonly environment: {
|
|
626
777
|
readonly default: "roblox-ts";
|
|
778
|
+
readonly description: "The React environment: 'roblox-ts' uses @rbxts/react, 'standard' uses react.";
|
|
627
779
|
readonly enum: readonly ["roblox-ts", "standard"];
|
|
628
780
|
readonly type: "string";
|
|
629
781
|
};
|
|
630
782
|
readonly staticGlobalFactories: {
|
|
783
|
+
readonly default: readonly string[];
|
|
784
|
+
readonly description: "Global constructors and factories whose calls are treated as static values.";
|
|
631
785
|
readonly items: {
|
|
632
786
|
readonly type: "string";
|
|
633
787
|
};
|
|
@@ -639,11 +793,13 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
639
793
|
"no-useless-use-spring": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
640
794
|
readonly additionalProperties: false;
|
|
641
795
|
readonly default: {
|
|
796
|
+
readonly springHooks: readonly string[];
|
|
642
797
|
readonly staticGlobalFactories: readonly string[];
|
|
643
798
|
readonly treatEmptyDepsAsViolation: true;
|
|
644
799
|
};
|
|
645
800
|
readonly properties: {
|
|
646
801
|
readonly springHooks: {
|
|
802
|
+
readonly default: readonly string[];
|
|
647
803
|
readonly description: "Hook identifiers that should be treated as spring hooks";
|
|
648
804
|
readonly items: {
|
|
649
805
|
readonly type: "string";
|
|
@@ -666,6 +822,7 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
666
822
|
};
|
|
667
823
|
readonly type: "object";
|
|
668
824
|
}], "uselessSpring", undefined>;
|
|
825
|
+
"no-variadic-spread": import("oxlint-plugin-utilities").CreateOnceRule<readonly [], "noVariadicSpread", undefined>;
|
|
669
826
|
"no-warn": import("oxlint-plugin-utilities").CreateRule<readonly [], "noWarn", readonly []>;
|
|
670
827
|
"only-type-imports": import("oxlint-plugin-utilities").CreateRule<readonly [], "onlyTypeImports", undefined>;
|
|
671
828
|
"prefer-class-properties": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
@@ -674,11 +831,31 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
674
831
|
}], "unexpectedAssignment" | "unexpectedClassProperty", undefined>;
|
|
675
832
|
"prefer-constant-dispatch": import("oxlint-plugin-utilities").CreateRule<readonly [], "preferConstantDispatch", undefined>;
|
|
676
833
|
"prefer-context-stack": import("oxlint-plugin-utilities").CreateRule<readonly [], "preferContextStack", undefined>;
|
|
834
|
+
"prefer-direct-hook-imports": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
835
|
+
readonly additionalProperties: false;
|
|
836
|
+
readonly properties: {
|
|
837
|
+
readonly allowedHooks: {
|
|
838
|
+
readonly description: "Hook names that are allowed to be called via React namespace.";
|
|
839
|
+
readonly items: {
|
|
840
|
+
readonly type: "string";
|
|
841
|
+
};
|
|
842
|
+
readonly type: "array";
|
|
843
|
+
};
|
|
844
|
+
readonly environment: {
|
|
845
|
+
default: string;
|
|
846
|
+
description: string;
|
|
847
|
+
enum: readonly ["roblox-ts", "standard"];
|
|
848
|
+
type: string;
|
|
849
|
+
};
|
|
850
|
+
};
|
|
851
|
+
readonly type: "object";
|
|
852
|
+
}], "preferDirectHookImport", undefined>;
|
|
677
853
|
"prefer-early-return": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
678
854
|
readonly additionalProperties: false;
|
|
679
855
|
readonly properties: {
|
|
680
856
|
readonly maximumStatements: {
|
|
681
857
|
readonly default: 1;
|
|
858
|
+
readonly description: "Maximum allowed statement count inside the guarded branch before reporting.";
|
|
682
859
|
readonly minimum: 0;
|
|
683
860
|
readonly type: "number";
|
|
684
861
|
};
|
|
@@ -689,24 +866,34 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
689
866
|
readonly additionalProperties: false;
|
|
690
867
|
readonly properties: {
|
|
691
868
|
readonly additionalAssertionFunctions: {
|
|
869
|
+
readonly default: readonly [];
|
|
870
|
+
readonly description: "Additional assertion function names counted as test assertions.";
|
|
692
871
|
readonly items: {
|
|
693
872
|
readonly type: "string";
|
|
694
873
|
};
|
|
695
874
|
readonly type: "array";
|
|
696
875
|
};
|
|
697
876
|
readonly additionalExpectCallNames: {
|
|
877
|
+
readonly default: readonly [];
|
|
878
|
+
readonly description: "Additional expect-like call names counted when checking assertion counts.";
|
|
698
879
|
readonly items: {
|
|
699
880
|
readonly type: "string";
|
|
700
881
|
};
|
|
701
882
|
readonly type: "array";
|
|
702
883
|
};
|
|
703
884
|
readonly onlyFunctionsWithAsyncKeyword: {
|
|
885
|
+
readonly default: false;
|
|
886
|
+
readonly description: "Only require assertion guards for test callbacks marked async.";
|
|
704
887
|
readonly type: "boolean";
|
|
705
888
|
};
|
|
706
889
|
readonly onlyFunctionsWithExpectInCallback: {
|
|
890
|
+
readonly default: false;
|
|
891
|
+
readonly description: "Only require assertion guards when expect is called inside a nested callback.";
|
|
707
892
|
readonly type: "boolean";
|
|
708
893
|
};
|
|
709
894
|
readonly onlyFunctionsWithExpectInLoop: {
|
|
895
|
+
readonly default: false;
|
|
896
|
+
readonly description: "Only require assertion guards when expect is called inside a loop.";
|
|
710
897
|
readonly type: "boolean";
|
|
711
898
|
};
|
|
712
899
|
};
|
|
@@ -729,6 +916,12 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
729
916
|
};
|
|
730
917
|
readonly type: "array";
|
|
731
918
|
};
|
|
919
|
+
readonly environment: {
|
|
920
|
+
default: string;
|
|
921
|
+
description: string;
|
|
922
|
+
enum: readonly ["roblox-ts", "standard"];
|
|
923
|
+
type: string;
|
|
924
|
+
};
|
|
732
925
|
};
|
|
733
926
|
readonly type: "object";
|
|
734
927
|
}], "hoistableJsxElement", undefined>;
|
|
@@ -753,49 +946,70 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
753
946
|
readonly additionalProperties: {
|
|
754
947
|
readonly type: "boolean";
|
|
755
948
|
};
|
|
949
|
+
readonly default: Record<string, boolean>;
|
|
950
|
+
readonly defaultLabel: "default allow list";
|
|
951
|
+
readonly description: "Names that should be allowed even when they match a discouraged abbreviation.";
|
|
756
952
|
readonly type: "object";
|
|
757
953
|
};
|
|
758
954
|
readonly allowPropertyAccess: {
|
|
955
|
+
readonly default: string[];
|
|
956
|
+
readonly description: "Property names that may keep abbreviated member access.";
|
|
759
957
|
readonly items: {
|
|
760
958
|
readonly type: "string";
|
|
761
959
|
};
|
|
762
960
|
readonly type: "array";
|
|
763
961
|
};
|
|
764
962
|
readonly checkDefaultAndNamespaceImports: {
|
|
963
|
+
readonly default: "internal";
|
|
964
|
+
readonly description: "Whether default and namespace import local names should be checked.";
|
|
765
965
|
readonly enum: readonly [false, true, "internal"];
|
|
766
966
|
};
|
|
767
967
|
readonly checkFilenames: {
|
|
968
|
+
readonly default: true;
|
|
969
|
+
readonly description: "Whether file names should be checked for abbreviations.";
|
|
768
970
|
readonly type: "boolean";
|
|
769
971
|
};
|
|
770
972
|
readonly checkProperties: {
|
|
973
|
+
readonly default: false;
|
|
974
|
+
readonly description: "Whether object, member, and JSX property names should be checked.";
|
|
771
975
|
readonly type: "boolean";
|
|
772
976
|
};
|
|
773
977
|
readonly checkShorthandImports: {
|
|
978
|
+
readonly default: "internal";
|
|
979
|
+
readonly description: "Whether renamed shorthand imports should be checked.";
|
|
774
980
|
readonly enum: readonly [false, true, "internal"];
|
|
775
981
|
};
|
|
776
982
|
readonly checkShorthandProperties: {
|
|
983
|
+
readonly default: true;
|
|
984
|
+
readonly description: "Whether shorthand object property names should be checked.";
|
|
777
985
|
readonly type: "boolean";
|
|
778
986
|
};
|
|
779
987
|
readonly checkVariables: {
|
|
988
|
+
readonly default: true;
|
|
989
|
+
readonly description: "Whether variable, function, class, and component names should be checked.";
|
|
780
990
|
readonly type: "boolean";
|
|
781
991
|
};
|
|
782
992
|
readonly extendDefaultAllowList: {
|
|
993
|
+
readonly default: true;
|
|
994
|
+
readonly description: "Merge configured allowList entries with the default allow list.";
|
|
783
995
|
readonly type: "boolean";
|
|
784
996
|
};
|
|
785
997
|
readonly extendDefaultReplacements: {
|
|
998
|
+
readonly default: true;
|
|
999
|
+
readonly description: "Merge configured replacements with the default replacement map.";
|
|
786
1000
|
readonly type: "boolean";
|
|
787
1001
|
};
|
|
788
1002
|
readonly ignore: {
|
|
1003
|
+
readonly default: string[];
|
|
1004
|
+
readonly description: "Names or regular expression patterns that should be ignored.";
|
|
789
1005
|
readonly items: {
|
|
790
|
-
readonly
|
|
791
|
-
readonly type: "object";
|
|
792
|
-
}, {
|
|
793
|
-
readonly type: "string";
|
|
794
|
-
}];
|
|
1006
|
+
readonly type: "string";
|
|
795
1007
|
};
|
|
796
1008
|
readonly type: "array";
|
|
797
1009
|
};
|
|
798
1010
|
readonly ignoreShorthands: {
|
|
1011
|
+
readonly default: readonly [];
|
|
1012
|
+
readonly description: "Shorthand names that should not be reported.";
|
|
799
1013
|
readonly items: {
|
|
800
1014
|
readonly type: "string";
|
|
801
1015
|
};
|
|
@@ -812,12 +1026,18 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
812
1026
|
readonly type: "object";
|
|
813
1027
|
}];
|
|
814
1028
|
};
|
|
1029
|
+
readonly default: Record<string, Record<string, boolean>>;
|
|
1030
|
+
readonly defaultLabel: "default replacement map";
|
|
1031
|
+
readonly description: "Replacement suggestions for discouraged names.";
|
|
815
1032
|
readonly type: "object";
|
|
816
1033
|
};
|
|
817
1034
|
readonly shorthands: {
|
|
818
1035
|
readonly additionalProperties: {
|
|
819
1036
|
readonly type: "string";
|
|
820
1037
|
};
|
|
1038
|
+
readonly default: Record<string, string>;
|
|
1039
|
+
readonly defaultLabel: "default shorthands";
|
|
1040
|
+
readonly description: "Shorthand names and the full names they should expand to.";
|
|
821
1041
|
readonly type: "object";
|
|
822
1042
|
};
|
|
823
1043
|
};
|
|
@@ -843,6 +1063,7 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
843
1063
|
readonly additionalProperties: {
|
|
844
1064
|
readonly type: "string";
|
|
845
1065
|
};
|
|
1066
|
+
readonly description: "Class names mapped to the import source that must be instantiated at module scope.";
|
|
846
1067
|
readonly type: "object";
|
|
847
1068
|
};
|
|
848
1069
|
};
|
|
@@ -858,7 +1079,17 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
858
1079
|
readonly type: "string";
|
|
859
1080
|
};
|
|
860
1081
|
readonly hooks: {
|
|
861
|
-
readonly
|
|
1082
|
+
readonly default: readonly [{
|
|
1083
|
+
readonly allowAsync: false;
|
|
1084
|
+
readonly name: "useEffect";
|
|
1085
|
+
}, {
|
|
1086
|
+
readonly allowAsync: false;
|
|
1087
|
+
readonly name: "useLayoutEffect";
|
|
1088
|
+
}, {
|
|
1089
|
+
readonly allowAsync: false;
|
|
1090
|
+
readonly name: "useInsertionEffect";
|
|
1091
|
+
}];
|
|
1092
|
+
readonly description: "Hook configuration objects with name and allowAsync settings.";
|
|
862
1093
|
readonly items: {
|
|
863
1094
|
readonly additionalProperties: false;
|
|
864
1095
|
readonly properties: {
|
|
@@ -884,18 +1115,29 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
884
1115
|
readonly properties: {
|
|
885
1116
|
readonly allowConditionalClosers: {
|
|
886
1117
|
readonly default: false;
|
|
1118
|
+
readonly description: "Allow closer calls that appear only on some conditional paths.";
|
|
887
1119
|
readonly type: "boolean";
|
|
888
1120
|
};
|
|
889
1121
|
readonly allowMultipleOpeners: {
|
|
890
1122
|
readonly default: true;
|
|
1123
|
+
readonly description: "Allow repeated opener calls before matching closer calls.";
|
|
891
1124
|
readonly type: "boolean";
|
|
892
1125
|
};
|
|
893
1126
|
readonly maxNestingDepth: {
|
|
894
1127
|
readonly default: 0;
|
|
1128
|
+
readonly description: "Maximum opener nesting depth before reporting; 0 disables the limit.";
|
|
895
1129
|
readonly minimum: 0;
|
|
896
1130
|
readonly type: "number";
|
|
897
1131
|
};
|
|
898
1132
|
readonly pairs: {
|
|
1133
|
+
readonly default: readonly [{
|
|
1134
|
+
readonly closer: "debug.profileend";
|
|
1135
|
+
readonly opener: "debug.profilebegin";
|
|
1136
|
+
readonly platform: "roblox";
|
|
1137
|
+
readonly requireSync: true;
|
|
1138
|
+
readonly yieldingFunctions: readonly ["task.wait", "wait", "*.WaitForChild", "*.*Async"];
|
|
1139
|
+
}];
|
|
1140
|
+
readonly description: "Opener and closer call pairs that must stay balanced.";
|
|
899
1141
|
readonly items: {
|
|
900
1142
|
readonly additionalProperties: false;
|
|
901
1143
|
readonly properties: {
|
|
@@ -953,7 +1195,6 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
953
1195
|
readonly type: "array";
|
|
954
1196
|
};
|
|
955
1197
|
};
|
|
956
|
-
readonly required: readonly ["pairs"];
|
|
957
1198
|
readonly type: "object";
|
|
958
1199
|
}], "asyncViolation" | "conditionalOpener" | "maxNestingExceeded" | "multipleOpeners" | "robloxYieldViolation" | "unexpectedCloser" | "unpairedCloser" | "unpairedOpener" | "wrongOrder", undefined>;
|
|
959
1200
|
"require-react-component-keys": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
@@ -965,7 +1206,7 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
965
1206
|
readonly type: "boolean";
|
|
966
1207
|
};
|
|
967
1208
|
readonly ignoreCallExpressions: {
|
|
968
|
-
readonly default: readonly [
|
|
1209
|
+
readonly default: readonly string[];
|
|
969
1210
|
readonly description: "Function calls where JSX arguments don't need keys";
|
|
970
1211
|
readonly items: {
|
|
971
1212
|
readonly type: "string";
|
|
@@ -995,6 +1236,8 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
995
1236
|
readonly additionalProperties: false;
|
|
996
1237
|
readonly properties: {
|
|
997
1238
|
environment: {
|
|
1239
|
+
default: string;
|
|
1240
|
+
description: string;
|
|
998
1241
|
enum: readonly ["roblox-ts", "standard"];
|
|
999
1242
|
type: string;
|
|
1000
1243
|
};
|
|
@@ -1006,6 +1249,7 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
1006
1249
|
readonly properties: {
|
|
1007
1250
|
readonly metric: {
|
|
1008
1251
|
readonly default: "lines";
|
|
1252
|
+
readonly description: "Whether to report cases by line span or by statement count.";
|
|
1009
1253
|
readonly enum: readonly ["lines", "statements"];
|
|
1010
1254
|
readonly type: "string";
|
|
1011
1255
|
};
|
|
@@ -1063,12 +1307,16 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
1063
1307
|
readonly additionalProperties: false;
|
|
1064
1308
|
readonly properties: {
|
|
1065
1309
|
readonly allow: {
|
|
1310
|
+
readonly default: readonly [];
|
|
1311
|
+
readonly description: "Regular expression patterns for imports allowed to cross component boundaries.";
|
|
1066
1312
|
readonly items: {
|
|
1067
1313
|
readonly type: "string";
|
|
1068
1314
|
};
|
|
1069
1315
|
readonly type: "array";
|
|
1070
1316
|
};
|
|
1071
1317
|
readonly maxDepth: {
|
|
1318
|
+
readonly default: 1;
|
|
1319
|
+
readonly description: "Maximum path depth allowed inside another component before reporting.";
|
|
1072
1320
|
readonly type: "integer";
|
|
1073
1321
|
};
|
|
1074
1322
|
};
|
|
@@ -1078,6 +1326,7 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
1078
1326
|
readonly additionalProperties: false;
|
|
1079
1327
|
readonly properties: {
|
|
1080
1328
|
readonly hooks: {
|
|
1329
|
+
readonly default: readonly [];
|
|
1081
1330
|
readonly description: "Array of custom hook entries to check for exhaustive dependencies";
|
|
1082
1331
|
readonly items: {
|
|
1083
1332
|
readonly additionalProperties: false;
|
|
@@ -1145,6 +1394,7 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
1145
1394
|
readonly additionalProperties: false;
|
|
1146
1395
|
readonly properties: {
|
|
1147
1396
|
readonly ignoreHooks: {
|
|
1397
|
+
readonly description: "Hook names that should be ignored even when they match the hook naming pattern.";
|
|
1148
1398
|
readonly items: {
|
|
1149
1399
|
readonly type: "string";
|
|
1150
1400
|
};
|
|
@@ -1154,9 +1404,11 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
1154
1404
|
readonly additionalProperties: {
|
|
1155
1405
|
readonly type: "boolean";
|
|
1156
1406
|
};
|
|
1407
|
+
readonly description: "Import sources or namespace names mapped to whether their hooks should be checked.";
|
|
1157
1408
|
readonly type: "object";
|
|
1158
1409
|
};
|
|
1159
1410
|
readonly onlyHooks: {
|
|
1411
|
+
readonly description: "If set, only these hook names are checked.";
|
|
1160
1412
|
readonly items: {
|
|
1161
1413
|
readonly type: "string";
|
|
1162
1414
|
};
|