@gooddata/eslint-config 11.27.0-alpha.4 → 11.27.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.
@@ -1,1380 +0,0 @@
1
- // This file is auto-generated. Do not edit manually.
2
-
3
- import globals from "globals";
4
- import plugin0001 from "@typescript-eslint/eslint-plugin";
5
- import plugin0002 from "@typescript-eslint/parser";
6
- import plugin0003 from "eslint-plugin-import-x";
7
- import plugin0004 from "eslint-plugin-jsdoc";
8
-
9
- export default [
10
- {
11
- languageOptions: {
12
- globals: { ...globals.node, ...globals.es2022 },
13
- },
14
- },
15
- {
16
- rules: {
17
- "no-duplicate-imports": [
18
- "error",
19
- {
20
- includeExports: true,
21
- },
22
- ],
23
- "no-console": [
24
- 2,
25
- {
26
- allow: [
27
- "warn",
28
- "error",
29
- ],
30
- },
31
- ],
32
- "no-restricted-exports": [
33
- 2,
34
- {
35
- restrictDefaultExports: {
36
- direct: true,
37
- named: true,
38
- defaultFrom: true,
39
- namedFrom: true,
40
- namespaceFrom: true,
41
- },
42
- },
43
- ],
44
- "no-restricted-syntax": [
45
- "error",
46
- {
47
- selector: "MemberExpression[object.name='React']",
48
- message: "Do not use `React.*`. Use named imports instead.",
49
- },
50
- {
51
- selector: "MemberExpression[object.name='ReactDOM']",
52
- message: "Do not use `ReactDOM.*`. Use named imports instead.",
53
- },
54
- ],
55
- "no-negated-condition": "error",
56
- "prefer-const": "off",
57
- },
58
- },
59
- {
60
- files: [
61
- "**/*.ts",
62
- "**/*.tsx",
63
- ],
64
- rules: {
65
- "no-restricted-imports": [
66
- "error",
67
- {
68
- paths: [
69
- {
70
- name: "react",
71
- importNames: [
72
- "default",
73
- ],
74
- message: "Default import from React is not allowed. Use named imports instead.",
75
- },
76
- {
77
- name: "react-dom",
78
- importNames: [
79
- "default",
80
- ],
81
- message: "Default import from React DOM is not allowed. Use named imports instead.",
82
- },
83
- {
84
- name: "@gooddata/sdk-ui-kit",
85
- importNames: [
86
- "Icon",
87
- ],
88
- message: "The Icon export cannot be tree-shaken, use {IconName}Icon imports instead.",
89
- },
90
- {
91
- name: "vitest",
92
- importNames: [
93
- "test",
94
- ],
95
- message: "Use 'it' instead of 'test' for consistency.",
96
- },
97
- ],
98
- patterns: [
99
- {
100
- group: [
101
- "lodash-es",
102
- ],
103
- importNames: [
104
- "get",
105
- "getOr",
106
- ],
107
- message: "Please use the ?. and ?? operators instead.",
108
- },
109
- {
110
- group: [
111
- "lodash-es",
112
- ],
113
- importNames: [
114
- "keys",
115
- ],
116
- message: "Please use Object.keys() instead.",
117
- },
118
- {
119
- group: [
120
- "lodash-es",
121
- ],
122
- importNames: [
123
- "values",
124
- ],
125
- message: "Please use Object.values() instead.",
126
- },
127
- {
128
- group: [
129
- "lodash-es",
130
- ],
131
- importNames: [
132
- "entries",
133
- "toPairs",
134
- ],
135
- message: "Please use Object.entries() instead.",
136
- },
137
- {
138
- group: [
139
- "lodash-es",
140
- ],
141
- importNames: [
142
- "map",
143
- ],
144
- message: "Please use Array.prototype.map() instead.",
145
- },
146
- {
147
- group: [
148
- "lodash-es",
149
- ],
150
- importNames: [
151
- "flatMap",
152
- ],
153
- message: "Please use Array.prototype.flatMap() instead.",
154
- },
155
- {
156
- group: [
157
- "lodash-es",
158
- ],
159
- importNames: [
160
- "filter",
161
- ],
162
- message: "Please use Array.prototype.filter() instead.",
163
- },
164
- {
165
- group: [
166
- "lodash-es",
167
- ],
168
- importNames: [
169
- "find",
170
- ],
171
- message: "Please use Array.prototype.find() instead.",
172
- },
173
- {
174
- group: [
175
- "lodash-es",
176
- ],
177
- importNames: [
178
- "findIndex",
179
- ],
180
- message: "Please use Array.prototype.findIndex() instead.",
181
- },
182
- {
183
- group: [
184
- "lodash-es",
185
- ],
186
- importNames: [
187
- "includes",
188
- ],
189
- message: "Please use Array.prototype.includes() instead.",
190
- },
191
- {
192
- group: [
193
- "lodash-es",
194
- ],
195
- importNames: [
196
- "some",
197
- ],
198
- message: "Please use Array.prototype.some() instead.",
199
- },
200
- {
201
- group: [
202
- "lodash-es",
203
- ],
204
- importNames: [
205
- "every",
206
- ],
207
- message: "Please use Array.prototype.every() instead.",
208
- },
209
- {
210
- group: [
211
- "lodash-es",
212
- ],
213
- importNames: [
214
- "concat",
215
- ],
216
- message: "Please use Array.prototype.concat() or spread [...arr1, ...arr2] instead.",
217
- },
218
- {
219
- group: [
220
- "lodash-es",
221
- ],
222
- importNames: [
223
- "reverse",
224
- ],
225
- message: "Please use Array.prototype.reverse() instead.",
226
- },
227
- {
228
- group: [
229
- "lodash-es",
230
- ],
231
- importNames: [
232
- "slice",
233
- ],
234
- message: "Please use Array.prototype.slice() instead.",
235
- },
236
- {
237
- group: [
238
- "lodash-es",
239
- ],
240
- importNames: [
241
- "indexOf",
242
- ],
243
- message: "Please use Array.prototype.indexOf() instead.",
244
- },
245
- {
246
- group: [
247
- "lodash-es",
248
- ],
249
- importNames: [
250
- "lastIndexOf",
251
- ],
252
- message: "Please use Array.prototype.lastIndexOf() instead.",
253
- },
254
- {
255
- group: [
256
- "lodash-es",
257
- ],
258
- importNames: [
259
- "fill",
260
- ],
261
- message: "Please use Array.prototype.fill() instead.",
262
- },
263
- {
264
- group: [
265
- "lodash-es",
266
- ],
267
- importNames: [
268
- "startsWith",
269
- ],
270
- message: "Please use String.prototype.startsWith() instead.",
271
- },
272
- {
273
- group: [
274
- "lodash-es",
275
- ],
276
- importNames: [
277
- "endsWith",
278
- ],
279
- message: "Please use String.prototype.endsWith() instead.",
280
- },
281
- {
282
- group: [
283
- "lodash-es",
284
- ],
285
- importNames: [
286
- "repeat",
287
- ],
288
- message: "Please use String.prototype.repeat() instead.",
289
- },
290
- {
291
- group: [
292
- "lodash-es",
293
- ],
294
- importNames: [
295
- "padStart",
296
- ],
297
- message: "Please use String.prototype.padStart() instead.",
298
- },
299
- {
300
- group: [
301
- "lodash-es",
302
- ],
303
- importNames: [
304
- "padEnd",
305
- ],
306
- message: "Please use String.prototype.padEnd() instead.",
307
- },
308
- {
309
- group: [
310
- "lodash-es",
311
- ],
312
- importNames: [
313
- "trim",
314
- ],
315
- message: "Please use String.prototype.trim() instead.",
316
- },
317
- {
318
- group: [
319
- "lodash-es",
320
- ],
321
- importNames: [
322
- "trimStart",
323
- "trimLeft",
324
- ],
325
- message: "Please use String.prototype.trimStart() instead.",
326
- },
327
- {
328
- group: [
329
- "lodash-es",
330
- ],
331
- importNames: [
332
- "trimEnd",
333
- "trimRight",
334
- ],
335
- message: "Please use String.prototype.trimEnd() instead.",
336
- },
337
- {
338
- group: [
339
- "lodash-es",
340
- ],
341
- importNames: [
342
- "toUpper",
343
- ],
344
- message: "Please use String.prototype.toUpperCase() instead.",
345
- },
346
- {
347
- group: [
348
- "lodash-es",
349
- ],
350
- importNames: [
351
- "toLower",
352
- ],
353
- message: "Please use String.prototype.toLowerCase() instead.",
354
- },
355
- {
356
- group: [
357
- "lodash-es",
358
- ],
359
- importNames: [
360
- "isArray",
361
- ],
362
- message: "Please use Array.isArray() instead.",
363
- },
364
- {
365
- group: [
366
- "lodash-es",
367
- ],
368
- importNames: [
369
- "isNaN",
370
- ],
371
- message: "Please use Number.isNaN() instead.",
372
- },
373
- {
374
- group: [
375
- "lodash-es",
376
- ],
377
- importNames: [
378
- "isFinite",
379
- ],
380
- message: "Please use Number.isFinite() instead.",
381
- },
382
- {
383
- group: [
384
- "lodash-es",
385
- ],
386
- importNames: [
387
- "isInteger",
388
- ],
389
- message: "Please use Number.isInteger() instead.",
390
- },
391
- {
392
- group: [
393
- "lodash-es",
394
- ],
395
- importNames: [
396
- "isNull",
397
- ],
398
- message: "Please use value === null instead.",
399
- },
400
- {
401
- group: [
402
- "lodash-es",
403
- ],
404
- importNames: [
405
- "isUndefined",
406
- ],
407
- message: "Please use value === undefined instead.",
408
- },
409
- {
410
- group: [
411
- "lodash-es",
412
- ],
413
- importNames: [
414
- "defaultTo",
415
- ],
416
- message: "Please use value ?? defaultValue instead.",
417
- },
418
- {
419
- group: [
420
- "lodash-es",
421
- ],
422
- importNames: [
423
- "assign",
424
- ],
425
- message: "Please use Object.assign() or spread syntax {...obj} instead.",
426
- },
427
- {
428
- group: [
429
- "lodash-es",
430
- ],
431
- importNames: [
432
- "flatten",
433
- ],
434
- message: "Please use Array.prototype.flat() instead.",
435
- },
436
- {
437
- group: [
438
- "lodash-es",
439
- ],
440
- importNames: [
441
- "flattenDeep",
442
- ],
443
- message: "Please use Array.prototype.flat(Infinity) instead.",
444
- },
445
- {
446
- group: [
447
- "lodash-es",
448
- ],
449
- importNames: [
450
- "isNil",
451
- ],
452
- message: "Please use value === null || value === undefined instead.",
453
- },
454
- {
455
- group: [
456
- "lodash-es",
457
- ],
458
- importNames: [
459
- "noop",
460
- ],
461
- message: "Please use () => {} instead.",
462
- },
463
- {
464
- group: [
465
- "lodash-es",
466
- ],
467
- importNames: [
468
- "identity",
469
- ],
470
- message: "Please use x => x instead.",
471
- },
472
- {
473
- group: [
474
- "lodash-es",
475
- ],
476
- importNames: [
477
- "first",
478
- "head",
479
- ],
480
- message: "Please use Array.prototype.at(0) instead.",
481
- },
482
- {
483
- group: [
484
- "lodash-es",
485
- ],
486
- importNames: [
487
- "last",
488
- ],
489
- message: "Please use Array.prototype.at(-1) instead.",
490
- },
491
- {
492
- group: [
493
- "lodash-es",
494
- ],
495
- importNames: [
496
- "forEach",
497
- ],
498
- message: "Please use Array.prototype.forEach() instead.",
499
- },
500
- {
501
- group: [
502
- "lodash-es",
503
- ],
504
- importNames: [
505
- "fromPairs",
506
- ],
507
- message: "Please use Object.fromEntries() instead.",
508
- },
509
- {
510
- group: [
511
- "lodash-es",
512
- ],
513
- importNames: [
514
- "join",
515
- ],
516
- message: "Please use Array.prototype.join() instead.",
517
- },
518
- {
519
- group: [
520
- "lodash-es",
521
- ],
522
- importNames: [
523
- "isDate",
524
- ],
525
- message: "Please use val instanceof Date instead.",
526
- },
527
- {
528
- group: [
529
- "lodash-es",
530
- ],
531
- importNames: [
532
- "isFunction",
533
- ],
534
- message: "Please use typeof val === 'function' instead.",
535
- },
536
- {
537
- group: [
538
- "lodash-es",
539
- ],
540
- importNames: [
541
- "isNumber",
542
- ],
543
- message: "Please use typeof val === 'number' instead.",
544
- },
545
- {
546
- group: [
547
- "lodash-es",
548
- ],
549
- importNames: [
550
- "isObject",
551
- ],
552
- message: "Please use val !== null && typeof val === 'object' instead.",
553
- },
554
- {
555
- group: [
556
- "lodash-es",
557
- ],
558
- importNames: [
559
- "isString",
560
- ],
561
- message: "Please use typeof val === 'string' instead.",
562
- },
563
- {
564
- group: [
565
- "lodash-es",
566
- ],
567
- importNames: [
568
- "toString",
569
- ],
570
- message: "Please use String(val) instead.",
571
- },
572
- {
573
- group: [
574
- "lodash-es",
575
- ],
576
- importNames: [
577
- "flow",
578
- "flowRight",
579
- ],
580
- message: "Please use refactoring your code instead.",
581
- },
582
- {
583
- group: [
584
- "vitest",
585
- ],
586
- message: "Importing from vitest is only allowed in test files.",
587
- },
588
- ],
589
- },
590
- ],
591
- },
592
- },
593
- {
594
- files: [
595
- "**/vitest.config.ts",
596
- "**/vitest.*.config.ts",
597
- "**/vitest.setup.ts",
598
- "**/vitest.setup.tsx",
599
- "**/*.test.ts",
600
- "**/*.test.tsx",
601
- "**/*.test.utils.ts",
602
- "**/*.test.utils.tsx",
603
- "**/*.test.helpers.ts",
604
- "**/*.test.helpers.tsx",
605
- ],
606
- rules: {
607
- "no-restricted-imports": [
608
- "error",
609
- {
610
- paths: [
611
- {
612
- name: "react",
613
- importNames: [
614
- "default",
615
- ],
616
- message: "Default import from React is not allowed. Use named imports instead.",
617
- },
618
- {
619
- name: "react-dom",
620
- importNames: [
621
- "default",
622
- ],
623
- message: "Default import from React DOM is not allowed. Use named imports instead.",
624
- },
625
- {
626
- name: "@gooddata/sdk-ui-kit",
627
- importNames: [
628
- "Icon",
629
- ],
630
- message: "The Icon export cannot be tree-shaken, use {IconName}Icon imports instead.",
631
- },
632
- {
633
- name: "vitest",
634
- importNames: [
635
- "test",
636
- ],
637
- message: "Use 'it' instead of 'test' for consistency.",
638
- },
639
- ],
640
- patterns: [
641
- {
642
- group: [
643
- "lodash-es",
644
- ],
645
- importNames: [
646
- "get",
647
- "getOr",
648
- ],
649
- message: "Please use the ?. and ?? operators instead.",
650
- },
651
- {
652
- group: [
653
- "lodash-es",
654
- ],
655
- importNames: [
656
- "keys",
657
- ],
658
- message: "Please use Object.keys() instead.",
659
- },
660
- {
661
- group: [
662
- "lodash-es",
663
- ],
664
- importNames: [
665
- "values",
666
- ],
667
- message: "Please use Object.values() instead.",
668
- },
669
- {
670
- group: [
671
- "lodash-es",
672
- ],
673
- importNames: [
674
- "entries",
675
- "toPairs",
676
- ],
677
- message: "Please use Object.entries() instead.",
678
- },
679
- {
680
- group: [
681
- "lodash-es",
682
- ],
683
- importNames: [
684
- "map",
685
- ],
686
- message: "Please use Array.prototype.map() instead.",
687
- },
688
- {
689
- group: [
690
- "lodash-es",
691
- ],
692
- importNames: [
693
- "flatMap",
694
- ],
695
- message: "Please use Array.prototype.flatMap() instead.",
696
- },
697
- {
698
- group: [
699
- "lodash-es",
700
- ],
701
- importNames: [
702
- "filter",
703
- ],
704
- message: "Please use Array.prototype.filter() instead.",
705
- },
706
- {
707
- group: [
708
- "lodash-es",
709
- ],
710
- importNames: [
711
- "find",
712
- ],
713
- message: "Please use Array.prototype.find() instead.",
714
- },
715
- {
716
- group: [
717
- "lodash-es",
718
- ],
719
- importNames: [
720
- "findIndex",
721
- ],
722
- message: "Please use Array.prototype.findIndex() instead.",
723
- },
724
- {
725
- group: [
726
- "lodash-es",
727
- ],
728
- importNames: [
729
- "includes",
730
- ],
731
- message: "Please use Array.prototype.includes() instead.",
732
- },
733
- {
734
- group: [
735
- "lodash-es",
736
- ],
737
- importNames: [
738
- "some",
739
- ],
740
- message: "Please use Array.prototype.some() instead.",
741
- },
742
- {
743
- group: [
744
- "lodash-es",
745
- ],
746
- importNames: [
747
- "every",
748
- ],
749
- message: "Please use Array.prototype.every() instead.",
750
- },
751
- {
752
- group: [
753
- "lodash-es",
754
- ],
755
- importNames: [
756
- "concat",
757
- ],
758
- message: "Please use Array.prototype.concat() or spread [...arr1, ...arr2] instead.",
759
- },
760
- {
761
- group: [
762
- "lodash-es",
763
- ],
764
- importNames: [
765
- "reverse",
766
- ],
767
- message: "Please use Array.prototype.reverse() instead.",
768
- },
769
- {
770
- group: [
771
- "lodash-es",
772
- ],
773
- importNames: [
774
- "slice",
775
- ],
776
- message: "Please use Array.prototype.slice() instead.",
777
- },
778
- {
779
- group: [
780
- "lodash-es",
781
- ],
782
- importNames: [
783
- "indexOf",
784
- ],
785
- message: "Please use Array.prototype.indexOf() instead.",
786
- },
787
- {
788
- group: [
789
- "lodash-es",
790
- ],
791
- importNames: [
792
- "lastIndexOf",
793
- ],
794
- message: "Please use Array.prototype.lastIndexOf() instead.",
795
- },
796
- {
797
- group: [
798
- "lodash-es",
799
- ],
800
- importNames: [
801
- "fill",
802
- ],
803
- message: "Please use Array.prototype.fill() instead.",
804
- },
805
- {
806
- group: [
807
- "lodash-es",
808
- ],
809
- importNames: [
810
- "startsWith",
811
- ],
812
- message: "Please use String.prototype.startsWith() instead.",
813
- },
814
- {
815
- group: [
816
- "lodash-es",
817
- ],
818
- importNames: [
819
- "endsWith",
820
- ],
821
- message: "Please use String.prototype.endsWith() instead.",
822
- },
823
- {
824
- group: [
825
- "lodash-es",
826
- ],
827
- importNames: [
828
- "repeat",
829
- ],
830
- message: "Please use String.prototype.repeat() instead.",
831
- },
832
- {
833
- group: [
834
- "lodash-es",
835
- ],
836
- importNames: [
837
- "padStart",
838
- ],
839
- message: "Please use String.prototype.padStart() instead.",
840
- },
841
- {
842
- group: [
843
- "lodash-es",
844
- ],
845
- importNames: [
846
- "padEnd",
847
- ],
848
- message: "Please use String.prototype.padEnd() instead.",
849
- },
850
- {
851
- group: [
852
- "lodash-es",
853
- ],
854
- importNames: [
855
- "trim",
856
- ],
857
- message: "Please use String.prototype.trim() instead.",
858
- },
859
- {
860
- group: [
861
- "lodash-es",
862
- ],
863
- importNames: [
864
- "trimStart",
865
- "trimLeft",
866
- ],
867
- message: "Please use String.prototype.trimStart() instead.",
868
- },
869
- {
870
- group: [
871
- "lodash-es",
872
- ],
873
- importNames: [
874
- "trimEnd",
875
- "trimRight",
876
- ],
877
- message: "Please use String.prototype.trimEnd() instead.",
878
- },
879
- {
880
- group: [
881
- "lodash-es",
882
- ],
883
- importNames: [
884
- "toUpper",
885
- ],
886
- message: "Please use String.prototype.toUpperCase() instead.",
887
- },
888
- {
889
- group: [
890
- "lodash-es",
891
- ],
892
- importNames: [
893
- "toLower",
894
- ],
895
- message: "Please use String.prototype.toLowerCase() instead.",
896
- },
897
- {
898
- group: [
899
- "lodash-es",
900
- ],
901
- importNames: [
902
- "isArray",
903
- ],
904
- message: "Please use Array.isArray() instead.",
905
- },
906
- {
907
- group: [
908
- "lodash-es",
909
- ],
910
- importNames: [
911
- "isNaN",
912
- ],
913
- message: "Please use Number.isNaN() instead.",
914
- },
915
- {
916
- group: [
917
- "lodash-es",
918
- ],
919
- importNames: [
920
- "isFinite",
921
- ],
922
- message: "Please use Number.isFinite() instead.",
923
- },
924
- {
925
- group: [
926
- "lodash-es",
927
- ],
928
- importNames: [
929
- "isInteger",
930
- ],
931
- message: "Please use Number.isInteger() instead.",
932
- },
933
- {
934
- group: [
935
- "lodash-es",
936
- ],
937
- importNames: [
938
- "isNull",
939
- ],
940
- message: "Please use value === null instead.",
941
- },
942
- {
943
- group: [
944
- "lodash-es",
945
- ],
946
- importNames: [
947
- "isUndefined",
948
- ],
949
- message: "Please use value === undefined instead.",
950
- },
951
- {
952
- group: [
953
- "lodash-es",
954
- ],
955
- importNames: [
956
- "defaultTo",
957
- ],
958
- message: "Please use value ?? defaultValue instead.",
959
- },
960
- {
961
- group: [
962
- "lodash-es",
963
- ],
964
- importNames: [
965
- "assign",
966
- ],
967
- message: "Please use Object.assign() or spread syntax {...obj} instead.",
968
- },
969
- {
970
- group: [
971
- "lodash-es",
972
- ],
973
- importNames: [
974
- "flatten",
975
- ],
976
- message: "Please use Array.prototype.flat() instead.",
977
- },
978
- {
979
- group: [
980
- "lodash-es",
981
- ],
982
- importNames: [
983
- "flattenDeep",
984
- ],
985
- message: "Please use Array.prototype.flat(Infinity) instead.",
986
- },
987
- {
988
- group: [
989
- "lodash-es",
990
- ],
991
- importNames: [
992
- "isNil",
993
- ],
994
- message: "Please use value === null || value === undefined instead.",
995
- },
996
- {
997
- group: [
998
- "lodash-es",
999
- ],
1000
- importNames: [
1001
- "noop",
1002
- ],
1003
- message: "Please use () => {} instead.",
1004
- },
1005
- {
1006
- group: [
1007
- "lodash-es",
1008
- ],
1009
- importNames: [
1010
- "identity",
1011
- ],
1012
- message: "Please use x => x instead.",
1013
- },
1014
- {
1015
- group: [
1016
- "lodash-es",
1017
- ],
1018
- importNames: [
1019
- "first",
1020
- "head",
1021
- ],
1022
- message: "Please use Array.prototype.at(0) instead.",
1023
- },
1024
- {
1025
- group: [
1026
- "lodash-es",
1027
- ],
1028
- importNames: [
1029
- "last",
1030
- ],
1031
- message: "Please use Array.prototype.at(-1) instead.",
1032
- },
1033
- {
1034
- group: [
1035
- "lodash-es",
1036
- ],
1037
- importNames: [
1038
- "forEach",
1039
- ],
1040
- message: "Please use Array.prototype.forEach() instead.",
1041
- },
1042
- {
1043
- group: [
1044
- "lodash-es",
1045
- ],
1046
- importNames: [
1047
- "fromPairs",
1048
- ],
1049
- message: "Please use Object.fromEntries() instead.",
1050
- },
1051
- {
1052
- group: [
1053
- "lodash-es",
1054
- ],
1055
- importNames: [
1056
- "join",
1057
- ],
1058
- message: "Please use Array.prototype.join() instead.",
1059
- },
1060
- {
1061
- group: [
1062
- "lodash-es",
1063
- ],
1064
- importNames: [
1065
- "isDate",
1066
- ],
1067
- message: "Please use val instanceof Date instead.",
1068
- },
1069
- {
1070
- group: [
1071
- "lodash-es",
1072
- ],
1073
- importNames: [
1074
- "isFunction",
1075
- ],
1076
- message: "Please use typeof val === 'function' instead.",
1077
- },
1078
- {
1079
- group: [
1080
- "lodash-es",
1081
- ],
1082
- importNames: [
1083
- "isNumber",
1084
- ],
1085
- message: "Please use typeof val === 'number' instead.",
1086
- },
1087
- {
1088
- group: [
1089
- "lodash-es",
1090
- ],
1091
- importNames: [
1092
- "isObject",
1093
- ],
1094
- message: "Please use val !== null && typeof val === 'object' instead.",
1095
- },
1096
- {
1097
- group: [
1098
- "lodash-es",
1099
- ],
1100
- importNames: [
1101
- "isString",
1102
- ],
1103
- message: "Please use typeof val === 'string' instead.",
1104
- },
1105
- {
1106
- group: [
1107
- "lodash-es",
1108
- ],
1109
- importNames: [
1110
- "toString",
1111
- ],
1112
- message: "Please use String(val) instead.",
1113
- },
1114
- {
1115
- group: [
1116
- "lodash-es",
1117
- ],
1118
- importNames: [
1119
- "flow",
1120
- "flowRight",
1121
- ],
1122
- message: "Please use refactoring your code instead.",
1123
- },
1124
- ],
1125
- },
1126
- ],
1127
- },
1128
- },
1129
- {
1130
- files: [
1131
- "**/eslint.config.ts",
1132
- "**/eslint.config.js",
1133
- ],
1134
- rules: {
1135
- "no-restricted-exports": "off",
1136
- },
1137
- },
1138
- {
1139
- languageOptions: {
1140
- parser: plugin0002,
1141
- sourceType: "module",
1142
- },
1143
- plugins: {
1144
- "@typescript-eslint": plugin0001,
1145
- },
1146
- },
1147
- {
1148
- files: [
1149
- "**/*.ts",
1150
- "**/*.tsx",
1151
- "**/*.mts",
1152
- "**/*.cts",
1153
- ],
1154
- languageOptions: {
1155
- parserOptions: {
1156
- projectService: true,
1157
- },
1158
- },
1159
- rules: {
1160
- "constructor-super": "off",
1161
- "getter-return": "off",
1162
- "no-class-assign": "off",
1163
- "no-const-assign": "off",
1164
- "no-dupe-args": "off",
1165
- "no-dupe-class-members": "off",
1166
- "no-dupe-keys": "off",
1167
- "no-func-assign": "off",
1168
- "no-import-assign": "off",
1169
- "no-new-native-nonconstructor": "off",
1170
- "no-new-symbol": "off",
1171
- "no-obj-calls": "off",
1172
- "no-redeclare": "off",
1173
- "no-setter-return": "off",
1174
- "no-this-before-super": "off",
1175
- "no-undef": "off",
1176
- "no-unreachable": "off",
1177
- "no-unsafe-negation": "off",
1178
- "no-var": "error",
1179
- "no-with": "off",
1180
- "prefer-const": "error",
1181
- "prefer-rest-params": "error",
1182
- "prefer-spread": "error",
1183
- "no-array-constructor": "off",
1184
- "no-unused-expressions": "off",
1185
- "no-unused-vars": "off",
1186
- "@typescript-eslint/prefer-optional-chain": "error",
1187
- "@typescript-eslint/consistent-type-exports": [
1188
- "error",
1189
- {
1190
- fixMixedExportsWithInlineTypeSpecifier: false,
1191
- },
1192
- ],
1193
- "@typescript-eslint/naming-convention": [
1194
- "error",
1195
- {
1196
- selector: "interface",
1197
- format: [
1198
- "PascalCase",
1199
- ],
1200
- custom: {
1201
- regex: "^I[A-Z]",
1202
- match: true,
1203
- },
1204
- },
1205
- ],
1206
- },
1207
- },
1208
- {
1209
- plugins: {
1210
- "import-x": plugin0003,
1211
- },
1212
- settings: {
1213
- "import-x/extensions": [
1214
- ".js",
1215
- ".jsx",
1216
- ".mjs",
1217
- ".cjs",
1218
- ],
1219
- },
1220
- rules: {
1221
- "import-x/order": [
1222
- "error",
1223
- {
1224
- pathGroups: [
1225
- {
1226
- pattern: "react",
1227
- group: "external",
1228
- position: "before",
1229
- },
1230
- {
1231
- pattern: "{@gooddata/**,gdc-*}",
1232
- group: "external",
1233
- position: "after",
1234
- },
1235
- ],
1236
- groups: [
1237
- "builtin",
1238
- "external",
1239
- "internal",
1240
- [
1241
- "parent",
1242
- "sibling",
1243
- "index",
1244
- ],
1245
- ],
1246
- pathGroupsExcludedImportTypes: [
1247
- "react",
1248
- ],
1249
- alphabetize: {
1250
- order: "asc",
1251
- caseInsensitive: true,
1252
- },
1253
- "newlines-between": "always",
1254
- },
1255
- ],
1256
- },
1257
- },
1258
- {
1259
- files: [
1260
- "**/*.ts",
1261
- "**/*.cts",
1262
- "**/*.mts",
1263
- "**/*.tsx",
1264
- ],
1265
- settings: {
1266
- "import-x/extensions": [
1267
- ".ts",
1268
- ".cts",
1269
- ".mts",
1270
- ".tsx",
1271
- ".js",
1272
- ".jsx",
1273
- ".mjs",
1274
- ".cjs",
1275
- ],
1276
- "import-x/external-module-folders": [
1277
- "node_modules",
1278
- "node_modules/@types",
1279
- ],
1280
- "import-x/parsers": {
1281
- "@typescript-eslint/parser": [
1282
- ".ts",
1283
- ".cts",
1284
- ".mts",
1285
- ".tsx",
1286
- ],
1287
- },
1288
- "import-x/resolver": {
1289
- typescript: {
1290
- alwaysTryTypes: true,
1291
- },
1292
- },
1293
- },
1294
- },
1295
- {
1296
- files: [
1297
- "**/*.{js,cjs,mjs,jsx}",
1298
- ],
1299
- plugins: {
1300
- jsdoc: plugin0004,
1301
- },
1302
- settings: {
1303
- jsdoc: {
1304
- mode: "jsdoc",
1305
- },
1306
- },
1307
- rules: {
1308
- "jsdoc/require-param": "error",
1309
- },
1310
- },
1311
- {
1312
- ignores: [
1313
- "**/dist/**/*.*",
1314
- "**/esm/**/*.*",
1315
- "**/node_modules/**/*.*",
1316
- "**/ci/results/**",
1317
- "**/__version.ts",
1318
- "**/cypress/results/**",
1319
- "**/cypress/screenshots/**",
1320
- "**/cypress/videos/**",
1321
- "**/temp/**",
1322
- "**/reference_workspace/**",
1323
- ],
1324
- },
1325
- {
1326
- rules: {
1327
- curly: 0,
1328
- "no-unexpected-multiline": 0,
1329
- "@typescript-eslint/lines-around-comment": 0,
1330
- "@typescript-eslint/quotes": 0,
1331
- "unicorn/template-indent": 0,
1332
- "@typescript-eslint/block-spacing": "off",
1333
- "@typescript-eslint/brace-style": "off",
1334
- "@typescript-eslint/comma-dangle": "off",
1335
- "@typescript-eslint/comma-spacing": "off",
1336
- "@typescript-eslint/func-call-spacing": "off",
1337
- "@typescript-eslint/indent": "off",
1338
- "@typescript-eslint/key-spacing": "off",
1339
- "@typescript-eslint/keyword-spacing": "off",
1340
- "@typescript-eslint/member-delimiter-style": "off",
1341
- "@typescript-eslint/no-extra-parens": "off",
1342
- "@typescript-eslint/no-extra-semi": "off",
1343
- "@typescript-eslint/object-curly-spacing": "off",
1344
- "@typescript-eslint/semi": "off",
1345
- "@typescript-eslint/space-before-blocks": "off",
1346
- "@typescript-eslint/space-before-function-paren": "off",
1347
- "@typescript-eslint/space-infix-ops": "off",
1348
- "@typescript-eslint/type-annotation-spacing": "off",
1349
- "react/jsx-child-element-spacing": "off",
1350
- "react/jsx-closing-bracket-location": "off",
1351
- "react/jsx-closing-tag-location": "off",
1352
- "react/jsx-curly-newline": "off",
1353
- "react/jsx-curly-spacing": "off",
1354
- "react/jsx-equals-spacing": "off",
1355
- "react/jsx-first-prop-new-line": "off",
1356
- "react/jsx-indent": "off",
1357
- "react/jsx-indent-props": "off",
1358
- "react/jsx-max-props-per-line": "off",
1359
- "react/jsx-newline": "off",
1360
- "react/jsx-one-expression-per-line": "off",
1361
- "react/jsx-props-no-multi-spaces": "off",
1362
- "react/jsx-tag-spacing": "off",
1363
- "react/jsx-wrap-multilines": "off",
1364
- "unicorn/empty-brace-spaces": "off",
1365
- "unicorn/no-nested-ternary": "off",
1366
- "unicorn/number-literal-case": "off",
1367
- },
1368
- },
1369
- {
1370
- languageOptions: {
1371
- globals: { ...globals.browser },
1372
- },
1373
- },
1374
- {
1375
- languageOptions: {
1376
- ecmaVersion: 2022,
1377
- sourceType: "module",
1378
- },
1379
- },
1380
- ];