@typescript-eslint/eslint-plugin 6.0.0-alpha.81 → 6.0.0-alpha.90

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.
Files changed (47) hide show
  1. package/dist/configs/all.js +2 -0
  2. package/dist/configs/all.js.map +1 -1
  3. package/dist/rules/index.js +2 -0
  4. package/dist/rules/index.js.map +1 -1
  5. package/dist/rules/lines-around-comment.js +382 -0
  6. package/dist/rules/lines-around-comment.js.map +1 -0
  7. package/dist/rules/member-ordering.js +67 -12
  8. package/dist/rules/member-ordering.js.map +1 -1
  9. package/dist/rules/no-confusing-void-expression.js +5 -0
  10. package/dist/rules/no-confusing-void-expression.js.map +1 -1
  11. package/dist/rules/no-explicit-any.js +1 -1
  12. package/dist/rules/no-explicit-any.js.map +1 -1
  13. package/dist/rules/no-misused-promises.js +10 -10
  14. package/dist/rules/no-misused-promises.js.map +1 -1
  15. package/dist/rules/no-redundant-type-constituents.js +3 -0
  16. package/dist/rules/no-redundant-type-constituents.js.map +1 -1
  17. package/dist/rules/no-unnecessary-boolean-literal-compare.js +6 -4
  18. package/dist/rules/no-unnecessary-boolean-literal-compare.js.map +1 -1
  19. package/dist/rules/no-unnecessary-condition.js +11 -0
  20. package/dist/rules/no-unnecessary-condition.js.map +1 -1
  21. package/dist/rules/no-unnecessary-qualifier.js +3 -4
  22. package/dist/rules/no-unnecessary-qualifier.js.map +1 -1
  23. package/dist/rules/prefer-function-type.js +2 -2
  24. package/dist/rules/prefer-function-type.js.map +1 -1
  25. package/dist/rules/prefer-includes.js +1 -1
  26. package/dist/rules/prefer-includes.js.map +1 -1
  27. package/dist/rules/prefer-string-starts-ends-with.js +1 -1
  28. package/dist/rules/prefer-string-starts-ends-with.js.map +1 -1
  29. package/dist/util/collectUnusedVariables.js.map +1 -1
  30. package/dist/util/getESLintCoreRule.js.map +1 -1
  31. package/dist/util/getWrappingFixer.js +2 -1
  32. package/dist/util/getWrappingFixer.js.map +1 -1
  33. package/docs/rules/await-thenable.md +1 -1
  34. package/docs/rules/lines-around-comment.md +41 -0
  35. package/docs/rules/member-ordering.md +40 -1
  36. package/docs/rules/prefer-function-type.md +5 -0
  37. package/package.json +7 -7
  38. package/dist/configs/recommended-requiring-type-checking.js +0 -27
  39. package/dist/configs/recommended-requiring-type-checking.js.map +0 -1
  40. package/dist/rules/no-duplicate-imports.js +0 -124
  41. package/dist/rules/no-duplicate-imports.js.map +0 -1
  42. package/dist/rules/no-implicit-any-catch.js +0 -102
  43. package/dist/rules/no-implicit-any-catch.js.map +0 -1
  44. package/dist/rules/no-parameter-properties.js +0 -111
  45. package/dist/rules/no-parameter-properties.js.map +0 -1
  46. package/dist/rules/sort-type-union-intersection-members.js +0 -247
  47. package/dist/rules/sort-type-union-intersection-members.js.map +0 -1
@@ -1,102 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- const utils_1 = require("@typescript-eslint/utils");
27
- const util = __importStar(require("../util"));
28
- exports.default = util.createRule({
29
- name: 'no-implicit-any-catch',
30
- meta: {
31
- deprecated: true,
32
- type: 'suggestion',
33
- docs: {
34
- description: 'Disallow usage of the implicit `any` type in catch clauses',
35
- recommended: false,
36
- },
37
- fixable: 'code',
38
- hasSuggestions: true,
39
- messages: {
40
- implicitAnyInCatch: 'Implicit any in catch clause.',
41
- explicitAnyInCatch: 'Explicit any in catch clause.',
42
- suggestExplicitUnknown: 'Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct.',
43
- },
44
- schema: [
45
- {
46
- type: 'object',
47
- additionalProperties: false,
48
- properties: {
49
- allowExplicitAny: {
50
- description: 'Whether to disallow specifying `: any` as the error type as well. See also `no-explicit-any`.',
51
- type: 'boolean',
52
- },
53
- },
54
- },
55
- ],
56
- },
57
- defaultOptions: [
58
- {
59
- allowExplicitAny: false,
60
- },
61
- ],
62
- create(context, [{ allowExplicitAny }]) {
63
- return {
64
- CatchClause(node) {
65
- if (!node.param) {
66
- return; // ignore catch without variable
67
- }
68
- if (!node.param.typeAnnotation) {
69
- context.report({
70
- node,
71
- messageId: 'implicitAnyInCatch',
72
- suggest: [
73
- {
74
- messageId: 'suggestExplicitUnknown',
75
- fix(fixer) {
76
- return fixer.insertTextAfter(node.param, ': unknown');
77
- },
78
- },
79
- ],
80
- });
81
- }
82
- else if (!allowExplicitAny &&
83
- node.param.typeAnnotation.typeAnnotation.type ===
84
- utils_1.AST_NODE_TYPES.TSAnyKeyword) {
85
- context.report({
86
- node,
87
- messageId: 'explicitAnyInCatch',
88
- suggest: [
89
- {
90
- messageId: 'suggestExplicitUnknown',
91
- fix(fixer) {
92
- return fixer.replaceText(node.param.typeAnnotation, ': unknown');
93
- },
94
- },
95
- ],
96
- });
97
- }
98
- },
99
- };
100
- },
101
- });
102
- //# sourceMappingURL=no-implicit-any-catch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"no-implicit-any-catch.js","sourceRoot":"","sources":["../../src/rules/no-implicit-any-catch.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA,oDAA0D;AAE1D,8CAAgC;AAYhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE;QACJ,UAAU,EAAE,IAAI;QAChB,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,4DAA4D;YACzE,WAAW,EAAE,KAAK;SACnB;QACD,OAAO,EAAE,MAAM;QACf,cAAc,EAAE,IAAI;QACpB,QAAQ,EAAE;YACR,kBAAkB,EAAE,+BAA+B;YACnD,kBAAkB,EAAE,+BAA+B;YACnD,sBAAsB,EACpB,kGAAkG;SACrG;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE;oBACV,gBAAgB,EAAE;wBAChB,WAAW,EACT,+FAA+F;wBACjG,IAAI,EAAE,SAAS;qBAChB;iBACF;aACF;SACF;KACF;IACD,cAAc,EAAE;QACd;YACE,gBAAgB,EAAE,KAAK;SACxB;KACF;IACD,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC;QACpC,OAAO;YACL,WAAW,CAAC,IAAI;gBACd,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;oBACf,OAAO,CAAC,gCAAgC;iBACzC;gBAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE;oBAC9B,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI;wBACJ,SAAS,EAAE,oBAAoB;wBAC/B,OAAO,EAAE;4BACP;gCACE,SAAS,EAAE,wBAAwB;gCACnC,GAAG,CAAC,KAAK;oCACP,OAAO,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,KAAM,EAAE,WAAW,CAAC,CAAC;gCACzD,CAAC;6BACF;yBACF;qBACF,CAAC,CAAC;iBACJ;qBAAM,IACL,CAAC,gBAAgB;oBACjB,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI;wBAC3C,sBAAc,CAAC,YAAY,EAC7B;oBACA,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI;wBACJ,SAAS,EAAE,oBAAoB;wBAC/B,OAAO,EAAE;4BACP;gCACE,SAAS,EAAE,wBAAwB;gCACnC,GAAG,CAAC,KAAK;oCACP,OAAO,KAAK,CAAC,WAAW,CACtB,IAAI,CAAC,KAAM,CAAC,cAAe,EAC3B,WAAW,CACZ,CAAC;gCACJ,CAAC;6BACF;yBACF;qBACF,CAAC,CAAC;iBACJ;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -1,111 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- const utils_1 = require("@typescript-eslint/utils");
27
- const util = __importStar(require("../util"));
28
- exports.default = util.createRule({
29
- name: 'no-parameter-properties',
30
- meta: {
31
- deprecated: true,
32
- replacedBy: ['@typescript-eslint/parameter-properties'],
33
- type: 'problem',
34
- docs: {
35
- description: 'Disallow the use of parameter properties in class constructors',
36
- // too opinionated to be recommended
37
- recommended: false,
38
- },
39
- messages: {
40
- noParamProp: 'Property {{parameter}} cannot be declared in the constructor.',
41
- },
42
- schema: [
43
- {
44
- type: 'object',
45
- properties: {
46
- allows: {
47
- type: 'array',
48
- items: {
49
- enum: [
50
- 'readonly',
51
- 'private',
52
- 'protected',
53
- 'public',
54
- 'private readonly',
55
- 'protected readonly',
56
- 'public readonly',
57
- ],
58
- },
59
- minItems: 1,
60
- },
61
- },
62
- additionalProperties: false,
63
- },
64
- ],
65
- },
66
- defaultOptions: [
67
- {
68
- allows: [],
69
- },
70
- ],
71
- create(context, [{ allows }]) {
72
- /**
73
- * Gets the modifiers of `node`.
74
- * @param node the node to be inspected.
75
- */
76
- function getModifiers(node) {
77
- const modifiers = [];
78
- if (node.accessibility) {
79
- modifiers.push(node.accessibility);
80
- }
81
- if (node.readonly) {
82
- modifiers.push('readonly');
83
- }
84
- return modifiers.filter(Boolean).join(' ');
85
- }
86
- return {
87
- TSParameterProperty(node) {
88
- const modifiers = getModifiers(node);
89
- if (!allows.includes(modifiers)) {
90
- // HAS to be an identifier or assignment or TSC will throw
91
- if (node.parameter.type !== utils_1.AST_NODE_TYPES.Identifier &&
92
- node.parameter.type !== utils_1.AST_NODE_TYPES.AssignmentPattern) {
93
- return;
94
- }
95
- const name = node.parameter.type === utils_1.AST_NODE_TYPES.Identifier
96
- ? node.parameter.name
97
- : // has to be an Identifier or TSC will throw an error
98
- node.parameter.left.name;
99
- context.report({
100
- node,
101
- messageId: 'noParamProp',
102
- data: {
103
- parameter: name,
104
- },
105
- });
106
- }
107
- },
108
- };
109
- },
110
- });
111
- //# sourceMappingURL=no-parameter-properties.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"no-parameter-properties.js","sourceRoot":"","sources":["../../src/rules/no-parameter-properties.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA,oDAA0D;AAE1D,8CAAgC;AAiBhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,yBAAyB;IAC/B,IAAI,EAAE;QACJ,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,CAAC,yCAAyC,CAAC;QACvD,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EACT,gEAAgE;YAClE,oCAAoC;YACpC,WAAW,EAAE,KAAK;SACnB;QACD,QAAQ,EAAE;YACR,WAAW,EACT,+DAA+D;SAClE;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,MAAM,EAAE;wBACN,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE;4BACL,IAAI,EAAE;gCACJ,UAAU;gCACV,SAAS;gCACT,WAAW;gCACX,QAAQ;gCACR,kBAAkB;gCAClB,oBAAoB;gCACpB,iBAAiB;6BAClB;yBACF;wBACD,QAAQ,EAAE,CAAC;qBACZ;iBACF;gBACD,oBAAoB,EAAE,KAAK;aAC5B;SACF;KACF;IACD,cAAc,EAAE;QACd;YACE,MAAM,EAAE,EAAE;SACX;KACF;IACD,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;QAC1B;;;WAGG;QACH,SAAS,YAAY,CAAC,IAAkC;YACtD,MAAM,SAAS,GAAe,EAAE,CAAC;YAEjC,IAAI,IAAI,CAAC,aAAa,EAAE;gBACtB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aACpC;YACD,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAC5B;YAED,OAAO,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAa,CAAC;QACzD,CAAC;QAED,OAAO;YACL,mBAAmB,CAAC,IAAI;gBACtB,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;gBAErC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;oBAC/B,0DAA0D;oBAC1D,IACE,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,sBAAc,CAAC,UAAU;wBACjD,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,sBAAc,CAAC,iBAAiB,EACxD;wBACA,OAAO;qBACR;oBAED,MAAM,IAAI,GACR,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,sBAAc,CAAC,UAAU;wBAC/C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI;wBACrB,CAAC,CAAC,qDAAqD;4BACpD,IAAI,CAAC,SAAS,CAAC,IAA4B,CAAC,IAAI,CAAC;oBAExD,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI;wBACJ,SAAS,EAAE,aAAa;wBACxB,IAAI,EAAE;4BACJ,SAAS,EAAE,IAAI;yBAChB;qBACF,CAAC,CAAC;iBACJ;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -1,247 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- const utils_1 = require("@typescript-eslint/utils");
27
- const util = __importStar(require("../util"));
28
- const util_1 = require("../util");
29
- var Group;
30
- (function (Group) {
31
- Group["conditional"] = "conditional";
32
- Group["function"] = "function";
33
- Group["import"] = "import";
34
- Group["intersection"] = "intersection";
35
- Group["keyword"] = "keyword";
36
- Group["nullish"] = "nullish";
37
- Group["literal"] = "literal";
38
- Group["named"] = "named";
39
- Group["object"] = "object";
40
- Group["operator"] = "operator";
41
- Group["tuple"] = "tuple";
42
- Group["union"] = "union";
43
- })(Group || (Group = {}));
44
- function getGroup(node) {
45
- switch (node.type) {
46
- case utils_1.AST_NODE_TYPES.TSConditionalType:
47
- return Group.conditional;
48
- case utils_1.AST_NODE_TYPES.TSConstructorType:
49
- case utils_1.AST_NODE_TYPES.TSFunctionType:
50
- return Group.function;
51
- case utils_1.AST_NODE_TYPES.TSImportType:
52
- return Group.import;
53
- case utils_1.AST_NODE_TYPES.TSIntersectionType:
54
- return Group.intersection;
55
- case utils_1.AST_NODE_TYPES.TSAnyKeyword:
56
- case utils_1.AST_NODE_TYPES.TSBigIntKeyword:
57
- case utils_1.AST_NODE_TYPES.TSBooleanKeyword:
58
- case utils_1.AST_NODE_TYPES.TSNeverKeyword:
59
- case utils_1.AST_NODE_TYPES.TSNumberKeyword:
60
- case utils_1.AST_NODE_TYPES.TSObjectKeyword:
61
- case utils_1.AST_NODE_TYPES.TSStringKeyword:
62
- case utils_1.AST_NODE_TYPES.TSSymbolKeyword:
63
- case utils_1.AST_NODE_TYPES.TSThisType:
64
- case utils_1.AST_NODE_TYPES.TSUnknownKeyword:
65
- case utils_1.AST_NODE_TYPES.TSIntrinsicKeyword:
66
- return Group.keyword;
67
- case utils_1.AST_NODE_TYPES.TSNullKeyword:
68
- case utils_1.AST_NODE_TYPES.TSUndefinedKeyword:
69
- case utils_1.AST_NODE_TYPES.TSVoidKeyword:
70
- return Group.nullish;
71
- case utils_1.AST_NODE_TYPES.TSLiteralType:
72
- case utils_1.AST_NODE_TYPES.TSTemplateLiteralType:
73
- return Group.literal;
74
- case utils_1.AST_NODE_TYPES.TSArrayType:
75
- case utils_1.AST_NODE_TYPES.TSIndexedAccessType:
76
- case utils_1.AST_NODE_TYPES.TSInferType:
77
- case utils_1.AST_NODE_TYPES.TSTypeReference:
78
- case utils_1.AST_NODE_TYPES.TSQualifiedName:
79
- return Group.named;
80
- case utils_1.AST_NODE_TYPES.TSMappedType:
81
- case utils_1.AST_NODE_TYPES.TSTypeLiteral:
82
- return Group.object;
83
- case utils_1.AST_NODE_TYPES.TSTypeOperator:
84
- case utils_1.AST_NODE_TYPES.TSTypeQuery:
85
- return Group.operator;
86
- case utils_1.AST_NODE_TYPES.TSTupleType:
87
- return Group.tuple;
88
- case utils_1.AST_NODE_TYPES.TSUnionType:
89
- return Group.union;
90
- // These types should never occur as part of a union/intersection
91
- case utils_1.AST_NODE_TYPES.TSAbstractKeyword:
92
- case utils_1.AST_NODE_TYPES.TSAsyncKeyword:
93
- case utils_1.AST_NODE_TYPES.TSDeclareKeyword:
94
- case utils_1.AST_NODE_TYPES.TSExportKeyword:
95
- case utils_1.AST_NODE_TYPES.TSNamedTupleMember:
96
- case utils_1.AST_NODE_TYPES.TSOptionalType:
97
- case utils_1.AST_NODE_TYPES.TSPrivateKeyword:
98
- case utils_1.AST_NODE_TYPES.TSProtectedKeyword:
99
- case utils_1.AST_NODE_TYPES.TSPublicKeyword:
100
- case utils_1.AST_NODE_TYPES.TSReadonlyKeyword:
101
- case utils_1.AST_NODE_TYPES.TSRestType:
102
- case utils_1.AST_NODE_TYPES.TSStaticKeyword:
103
- case utils_1.AST_NODE_TYPES.TSTypePredicate:
104
- /* istanbul ignore next */
105
- throw new Error(`Unexpected Type ${node.type}`);
106
- }
107
- }
108
- exports.default = util.createRule({
109
- name: 'sort-type-union-intersection-members',
110
- meta: {
111
- deprecated: true,
112
- type: 'suggestion',
113
- docs: {
114
- description: 'Enforce members of a type union/intersection to be sorted alphabetically',
115
- recommended: false,
116
- },
117
- fixable: 'code',
118
- hasSuggestions: true,
119
- messages: {
120
- notSorted: '{{type}} type members must be sorted.',
121
- notSortedNamed: '{{type}} type {{name}} members must be sorted.',
122
- suggestFix: 'Sort members of type (removes all comments).',
123
- },
124
- replacedBy: ['@typescript-eslint/sort-type-constituents'],
125
- schema: [
126
- {
127
- type: 'object',
128
- properties: {
129
- checkIntersections: {
130
- description: 'Whether to check intersection types.',
131
- type: 'boolean',
132
- },
133
- checkUnions: {
134
- description: 'Whether to check union types.',
135
- type: 'boolean',
136
- },
137
- groupOrder: {
138
- description: 'Ordering of the groups.',
139
- type: 'array',
140
- items: {
141
- type: 'string',
142
- enum: (0, util_1.getEnumNames)(Group),
143
- },
144
- },
145
- },
146
- },
147
- ],
148
- },
149
- defaultOptions: [
150
- {
151
- checkIntersections: true,
152
- checkUnions: true,
153
- groupOrder: [
154
- Group.named,
155
- Group.keyword,
156
- Group.operator,
157
- Group.literal,
158
- Group.function,
159
- Group.import,
160
- Group.conditional,
161
- Group.object,
162
- Group.tuple,
163
- Group.intersection,
164
- Group.union,
165
- Group.nullish,
166
- ],
167
- },
168
- ],
169
- create(context, [{ checkIntersections, checkUnions, groupOrder }]) {
170
- const sourceCode = context.getSourceCode();
171
- const collator = new Intl.Collator('en', {
172
- sensitivity: 'base',
173
- numeric: true,
174
- });
175
- function checkSorting(node) {
176
- var _a;
177
- const sourceOrder = node.types.map(type => {
178
- var _a;
179
- const group = (_a = groupOrder === null || groupOrder === void 0 ? void 0 : groupOrder.indexOf(getGroup(type))) !== null && _a !== void 0 ? _a : -1;
180
- return {
181
- group: group === -1 ? Number.MAX_SAFE_INTEGER : group,
182
- node: type,
183
- text: sourceCode.getText(type),
184
- };
185
- });
186
- const expectedOrder = [...sourceOrder].sort((a, b) => {
187
- if (a.group !== b.group) {
188
- return a.group - b.group;
189
- }
190
- return (collator.compare(a.text, b.text) ||
191
- (a.text < b.text ? -1 : a.text > b.text ? 1 : 0));
192
- });
193
- const hasComments = node.types.some(type => {
194
- const count = sourceCode.getCommentsBefore(type).length +
195
- sourceCode.getCommentsAfter(type).length;
196
- return count > 0;
197
- });
198
- for (let i = 0; i < expectedOrder.length; i += 1) {
199
- if (expectedOrder[i].node !== sourceOrder[i].node) {
200
- let messageId = 'notSorted';
201
- const data = {
202
- name: '',
203
- type: node.type === utils_1.AST_NODE_TYPES.TSIntersectionType
204
- ? 'Intersection'
205
- : 'Union',
206
- };
207
- if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.type) === utils_1.AST_NODE_TYPES.TSTypeAliasDeclaration) {
208
- messageId = 'notSortedNamed';
209
- data.name = node.parent.id.name;
210
- }
211
- const fix = fixer => {
212
- const sorted = expectedOrder
213
- .map(t => (0, util_1.typeNodeRequiresParentheses)(t.node, t.text) ||
214
- (node.type === utils_1.AST_NODE_TYPES.TSIntersectionType &&
215
- t.node.type === utils_1.AST_NODE_TYPES.TSUnionType)
216
- ? `(${t.text})`
217
- : t.text)
218
- .join(node.type === utils_1.AST_NODE_TYPES.TSIntersectionType ? ' & ' : ' | ');
219
- return fixer.replaceText(node, sorted);
220
- };
221
- return context.report(Object.assign({ node,
222
- messageId,
223
- data }, (hasComments
224
- ? {
225
- suggest: [
226
- {
227
- messageId: 'suggestFix',
228
- fix,
229
- },
230
- ],
231
- }
232
- : { fix })));
233
- }
234
- }
235
- }
236
- return Object.assign(Object.assign({}, (checkIntersections && {
237
- TSIntersectionType(node) {
238
- checkSorting(node);
239
- },
240
- })), (checkUnions && {
241
- TSUnionType(node) {
242
- checkSorting(node);
243
- },
244
- }));
245
- },
246
- });
247
- //# sourceMappingURL=sort-type-union-intersection-members.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sort-type-union-intersection-members.js","sourceRoot":"","sources":["../../src/rules/sort-type-union-intersection-members.ts"],"names":[],"mappings":"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"}