@darraghor/eslint-plugin-nestjs-typed 3.21.2 → 3.22.1
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 +24 -28
- package/dist/configs/index.d.ts +1 -0
- package/dist/configs/recommended.d.ts +1 -0
- package/dist/configs/recommended.js +2 -1
- package/dist/index.d.ts +6 -0
- package/dist/rules/index.d.ts +5 -0
- package/dist/rules/index.js +3 -1
- package/dist/rules/shouldSpecifyForbidUnknownValues/shouldSpecifyForbidUnknownValuesRule.js +7 -4
- package/dist/rules/sortModuleMetadataArrays/sortModuleMetadataArrays.d.ts +10 -0
- package/dist/rules/sortModuleMetadataArrays/sortModuleMetadataArrays.js +93 -0
- package/dist/rules/validateNonPrimitvesNeedsTypeDecorator/validateNonPrimitiveNeedsDecorators.js +2 -1
- package/dist/utils/wellKnownSelectors.d.ts +1 -0
- package/dist/utils/wellKnownSelectors.js +5 -0
- package/package.json +12 -12
package/README.md
CHANGED
|
@@ -20,34 +20,30 @@ This plugin only supports typescript up to the version typescript eslint parser
|
|
|
20
20
|
|
|
21
21
|
Please check the recommended list (https://github.com/darraghoriordan/eslint-plugin-nestjs-typed/blob/main/src/configs/recommended.ts) to check which rules are turned on when using that config.
|
|
22
22
|
|
|
23
|
-
Some rules are opinionated and have to be turned on explicitly.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
Nest Swagger
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
-
|
|
42
|
-
|
|
43
|
-
-
|
|
44
|
-
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
Security
|
|
48
|
-
|
|
49
|
-
- should-specify-forbid-unknown-values
|
|
50
|
-
- api-methods-should-be-guarded
|
|
23
|
+
Some rules are opinionated and have to be turned on explicitly (if they're not in the recommended config pack).
|
|
24
|
+
|
|
25
|
+
| Category | Rule | is in recommended config |
|
|
26
|
+
| ------------------------------------- | ----------------------------------------------------- | ------------------------ |
|
|
27
|
+
| Nest Modules and Dependency Injection | provided-injected-should-match-factory-parameters | Y |
|
|
28
|
+
| | injectable-should-be-provided | Y |
|
|
29
|
+
| | | |
|
|
30
|
+
| Nest Swagger | api-property-matches-property-optionality | Y |
|
|
31
|
+
| | controllers-should-supply-api-tags | Y |
|
|
32
|
+
| | api-method-should-specify-api-response | N |
|
|
33
|
+
| | api-method-should-specify-api-operation | Y |
|
|
34
|
+
| | api-enum-property-best-practices | Y |
|
|
35
|
+
| | api-property-returning-array-should-set-array | Y |
|
|
36
|
+
| | | |
|
|
37
|
+
| Preventing bugs | param-decorator-name-matches-route-param | Y |
|
|
38
|
+
| | validate-nested-of-array-should-set-each | Y |
|
|
39
|
+
| | validated-non-primitive-property-needs-type-decorator | Y |
|
|
40
|
+
| | all-properties-are-whitelisted | Y |
|
|
41
|
+
| | all-properties-have-explicit-defined | Y |
|
|
42
|
+
| | | |
|
|
43
|
+
| Security | should-specify-forbid-unknown-values | Y |
|
|
44
|
+
| | api-methods-should-be-guarded | N |
|
|
45
|
+
| | | |
|
|
46
|
+
| Code Consistency | sort-module-metadata-arrays | N |
|
|
51
47
|
|
|
52
48
|
Detailed docs are available here: https://github.com/darraghoriordan/eslint-plugin-nestjs-typed/tree/main/src/docs/rules
|
|
53
49
|
|
package/dist/configs/index.d.ts
CHANGED
|
@@ -23,6 +23,7 @@ declare const allConfigs: {
|
|
|
23
23
|
"@darraghor/nestjs-typed/all-properties-have-explicit-defined": string;
|
|
24
24
|
"@darraghor/nestjs-typed/api-methods-should-be-guarded": string;
|
|
25
25
|
"@darraghor/nestjs-typed/api-method-should-specify-api-operation": string;
|
|
26
|
+
"@darraghor/nestjs-typed/sort-module-metadata-arrays": string;
|
|
26
27
|
};
|
|
27
28
|
};
|
|
28
29
|
"no-swagger": {
|
|
@@ -22,6 +22,7 @@ declare const _default: {
|
|
|
22
22
|
"@darraghor/nestjs-typed/all-properties-have-explicit-defined": string;
|
|
23
23
|
"@darraghor/nestjs-typed/api-methods-should-be-guarded": string;
|
|
24
24
|
"@darraghor/nestjs-typed/api-method-should-specify-api-operation": string;
|
|
25
|
+
"@darraghor/nestjs-typed/sort-module-metadata-arrays": string;
|
|
25
26
|
};
|
|
26
27
|
};
|
|
27
28
|
export = _default;
|
|
@@ -24,6 +24,7 @@ module.exports = {
|
|
|
24
24
|
"@darraghor/nestjs-typed/all-properties-have-explicit-defined": "error",
|
|
25
25
|
"@darraghor/nestjs-typed/api-methods-should-be-guarded": "off",
|
|
26
26
|
"@darraghor/nestjs-typed/api-method-should-specify-api-operation": "off",
|
|
27
|
+
"@darraghor/nestjs-typed/sort-module-metadata-arrays": "off",
|
|
27
28
|
},
|
|
28
29
|
};
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb21tZW5kZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlncy9yZWNvbW1lbmRlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsaUJBQVM7SUFDTCxNQUFNLEVBQUUsMkJBQTJCO0lBQ25DLGFBQWEsRUFBRSxFQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUM7SUFDckMsS0FBSyxFQUFFO1FBQ0gsMkVBQTJFLEVBQ3ZFLE9BQU87UUFDWCx1REFBdUQsRUFBRTtZQUNyRCxPQUFPO1lBQ1A7Z0JBQ0ksR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDO2dCQUNwQixlQUFlLEVBQUUsQ0FBQyxjQUFjLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQzthQUN4RDtTQUNKO1FBQ0QsbUVBQW1FLEVBQy9ELE9BQU87UUFDWCxnRUFBZ0UsRUFDNUQsT0FBTztRQUNYLDREQUE0RCxFQUFFLE9BQU87UUFDckUsMERBQTBELEVBQUUsT0FBTztRQUNuRSx1RUFBdUUsRUFDbkUsT0FBTztRQUNYLDhEQUE4RCxFQUFFLE9BQU87UUFDdkUsa0VBQWtFLEVBQzlELE9BQU87UUFDWCwrRUFBK0UsRUFDM0UsT0FBTztRQUNYLGtFQUFrRSxFQUM5RCxPQUFPO1FBQ1gsd0RBQXdELEVBQUUsT0FBTztRQUNqRSw4REFBOEQsRUFBRSxPQUFPO1FBQ3ZFLHVEQUF1RCxFQUFFLEtBQUs7UUFDOUQsaUVBQWlFLEVBQzdELEtBQUs7UUFDVCxxREFBcUQsRUFBRSxLQUFLO0tBQy9EO0NBQ0osQ0FBQyJ9
|
package/dist/index.d.ts
CHANGED
|
@@ -50,6 +50,11 @@ declare const configuration: {
|
|
|
50
50
|
"api-methods-should-be-guarded": import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<"apiMethodsShouldBeGuarded", never[], {
|
|
51
51
|
MethodDefinition(node: import("@typescript-eslint/types/dist/generated/ast-spec").MethodDefinition): void;
|
|
52
52
|
}>;
|
|
53
|
+
"sort-module-metadata-arrays": import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<"moduleMetadataArraysAreSorted", {
|
|
54
|
+
locale: string;
|
|
55
|
+
}[], {
|
|
56
|
+
[x: string]: ({ elements, }: import("@typescript-eslint/types/dist/generated/ast-spec").ArrayExpression) => void;
|
|
57
|
+
}>;
|
|
53
58
|
};
|
|
54
59
|
configs: {
|
|
55
60
|
recommended: {
|
|
@@ -76,6 +81,7 @@ declare const configuration: {
|
|
|
76
81
|
"@darraghor/nestjs-typed/all-properties-have-explicit-defined": string;
|
|
77
82
|
"@darraghor/nestjs-typed/api-methods-should-be-guarded": string;
|
|
78
83
|
"@darraghor/nestjs-typed/api-method-should-specify-api-operation": string;
|
|
84
|
+
"@darraghor/nestjs-typed/sort-module-metadata-arrays": string;
|
|
79
85
|
};
|
|
80
86
|
};
|
|
81
87
|
"no-swagger": {
|
package/dist/rules/index.d.ts
CHANGED
|
@@ -49,5 +49,10 @@ declare const allRules: {
|
|
|
49
49
|
"api-methods-should-be-guarded": import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<"apiMethodsShouldBeGuarded", never[], {
|
|
50
50
|
MethodDefinition(node: import("@typescript-eslint/types/dist/generated/ast-spec").MethodDefinition): void;
|
|
51
51
|
}>;
|
|
52
|
+
"sort-module-metadata-arrays": import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<"moduleMetadataArraysAreSorted", {
|
|
53
|
+
locale: string;
|
|
54
|
+
}[], {
|
|
55
|
+
[x: string]: ({ elements, }: import("@typescript-eslint/types/dist/generated/ast-spec").ArrayExpression) => void;
|
|
56
|
+
}>;
|
|
52
57
|
};
|
|
53
58
|
export default allRules;
|
package/dist/rules/index.js
CHANGED
|
@@ -18,6 +18,7 @@ const allPropertiesAreWhitelisted_1 = __importDefault(require("./allPropertiesAr
|
|
|
18
18
|
const allPropertiesHaveExplicitDefined_1 = __importDefault(require("./allPropertiesHaveExplicitDefined/allPropertiesHaveExplicitDefined"));
|
|
19
19
|
const apiMethodsShouldBeGuarded_1 = __importDefault(require("./apiMethodsShouldBeGuarded/apiMethodsShouldBeGuarded"));
|
|
20
20
|
const apiMethodsShouldSpecifyApiOperation_1 = __importDefault(require("./apiMethodsShouldSpecifyApiOperation/apiMethodsShouldSpecifyApiOperation"));
|
|
21
|
+
const sortModuleMetadataArrays_1 = __importDefault(require("./sortModuleMetadataArrays/sortModuleMetadataArrays"));
|
|
21
22
|
const allRules = {
|
|
22
23
|
"all-properties-have-explicit-defined": allPropertiesHaveExplicitDefined_1.default,
|
|
23
24
|
"api-property-matches-property-optionality": apiPropertyMatchesPropertyOptionality_1.default,
|
|
@@ -34,6 +35,7 @@ const allRules = {
|
|
|
34
35
|
"validate-nested-of-array-should-set-each": validateNestedOfArrayShouldSetEach_1.default,
|
|
35
36
|
"all-properties-are-whitelisted": allPropertiesAreWhitelisted_1.default,
|
|
36
37
|
"api-methods-should-be-guarded": apiMethodsShouldBeGuarded_1.default,
|
|
38
|
+
"sort-module-metadata-arrays": sortModuleMetadataArrays_1.default,
|
|
37
39
|
};
|
|
38
40
|
exports.default = allRules;
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVsZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwwSEFBa0c7QUFDbEcsaUpBQW1JO0FBQ25JLDBKQUFrSTtBQUNsSSxrSUFBMEc7QUFDMUcsaUpBQXlIO0FBQ3pILCtIQUF1RztBQUN2RyxnS0FBd0k7QUFDeEksbUpBQXVIO0FBQ3ZILG9KQUFnSTtBQUNoSSx1SkFBK0g7QUFDL0gsaUpBQXlIO0FBQ3pILDRIQUFvRztBQUNwRywySUFBbUg7QUFDbkgsc0hBQThGO0FBQzlGLG9KQUE0SDtBQUM1SCxtSEFBMkY7QUFFM0YsTUFBTSxRQUFRLEdBQUc7SUFDYixzQ0FBc0MsRUFBRSwwQ0FBZ0M7SUFDeEUsMkNBQTJDLEVBQ3ZDLCtDQUFxQztJQUN6QywrQkFBK0IsRUFBRSxvQ0FBMEI7SUFDM0QsbURBQW1ELEVBQy9DLDRDQUE0QztJQUNoRCxvQ0FBb0MsRUFBRSx1Q0FBNkI7SUFDbkUsd0NBQXdDLEVBQ3BDLDRDQUFrQztJQUN0Qyx5Q0FBeUMsRUFDckMsNkNBQW1DO0lBQ3ZDLGtDQUFrQyxFQUFFLHNDQUE0QjtJQUNoRSwrQ0FBK0MsRUFDM0MsaURBQXVDO0lBQzNDLHNDQUFzQyxFQUFFLDhDQUFnQztJQUN4RSwwQ0FBMEMsRUFDdEMsNkNBQXVDO0lBQzNDLHVEQUF1RCxFQUNuRCw2Q0FBbUM7SUFDdkMsMENBQTBDLEVBQ3RDLDRDQUFrQztJQUN0QyxnQ0FBZ0MsRUFBRSxxQ0FBMkI7SUFDN0QsK0JBQStCLEVBQUUsbUNBQXlCO0lBQzFELDZCQUE2QixFQUFFLGtDQUF3QjtDQUMxRCxDQUFDO0FBRUYsa0JBQWUsUUFBUSxDQUFDIn0=
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.shouldTriggerForVariableDecleratorExpression = exports.shouldTriggerNewExpressionHasProperty = exports.checkObjectExpression = exports.isValidationPipeNewExpression = void 0;
|
|
4
|
+
const utils_1 = require("@typescript-eslint/utils");
|
|
4
5
|
const createRule_1 = require("../../utils/createRule");
|
|
6
|
+
const ast_utils_1 = require("@typescript-eslint/utils/dist/ast-utils");
|
|
5
7
|
const isValidationPipeNewExpression = (node) => {
|
|
6
8
|
const newExpression = node;
|
|
7
9
|
const callee = newExpression === null || newExpression === void 0 ? void 0 : newExpression.callee;
|
|
@@ -16,8 +18,7 @@ const checkObjectExpression = (os) => {
|
|
|
16
18
|
if (!os) {
|
|
17
19
|
return false;
|
|
18
20
|
}
|
|
19
|
-
const forbidUnknownValuesProperty = (_a = os === null || os === void 0 ? void 0 : os.properties) === null || _a === void 0 ? void 0 : _a.find((p) => p.key.name ===
|
|
20
|
-
"forbidUnknownValues");
|
|
21
|
+
const forbidUnknownValuesProperty = (_a = os === null || os === void 0 ? void 0 : os.properties) === null || _a === void 0 ? void 0 : _a.filter((0, ast_utils_1.isNodeOfType)(utils_1.TSESTree.AST_NODE_TYPES.Property)).find((p) => p.key.name === "forbidUnknownValues");
|
|
21
22
|
// property is not present. this is wrong.
|
|
22
23
|
if (os && !forbidUnknownValuesProperty) {
|
|
23
24
|
return true;
|
|
@@ -41,8 +42,10 @@ const shouldTriggerNewExpressionHasProperty = (node) => {
|
|
|
41
42
|
const newExpression = node;
|
|
42
43
|
// the default new ValidationPipe() seems to prevent the attack so we ignore calls with no parameters
|
|
43
44
|
// we also ignore parameters that are not explicit object expressions
|
|
45
|
+
// or if the properties are spread
|
|
44
46
|
if (((_a = newExpression.arguments) === null || _a === void 0 ? void 0 : _a.length) === 0 ||
|
|
45
|
-
newExpression.arguments[0].type !== "ObjectExpression"
|
|
47
|
+
newExpression.arguments[0].type !== "ObjectExpression" ||
|
|
48
|
+
newExpression.arguments[0].properties.some((0, ast_utils_1.isNodeOfType)(utils_1.TSESTree.AST_NODE_TYPES.SpreadElement))) {
|
|
46
49
|
return false;
|
|
47
50
|
}
|
|
48
51
|
const argument = newExpression === null || newExpression === void 0 ? void 0 : newExpression.arguments[0];
|
|
@@ -106,4 +109,4 @@ const rule = (0, createRule_1.createRule)({
|
|
|
106
109
|
},
|
|
107
110
|
});
|
|
108
111
|
exports.default = rule;
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdWxkU3BlY2lmeUZvcmJpZFVua25vd25WYWx1ZXNSdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3J1bGVzL3Nob3VsZFNwZWNpZnlGb3JiaWRVbmtub3duVmFsdWVzL3Nob3VsZFNwZWNpZnlGb3JiaWRVbmtub3duVmFsdWVzUnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxvREFBNEQ7QUFDNUQsdURBQWtEO0FBQ2xELHVFQUFxRTtBQUU5RCxNQUFNLDZCQUE2QixHQUFHLENBQUMsSUFBbUIsRUFBVyxFQUFFO0lBQzFFLE1BQU0sYUFBYSxHQUFHLElBQThCLENBQUM7SUFDckQsTUFBTSxNQUFNLEdBQUcsYUFBYSxhQUFiLGFBQWEsdUJBQWIsYUFBYSxDQUFFLE1BQTZCLENBQUM7SUFDNUQsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxnQkFBZ0IsRUFBRTtRQUM1QyxPQUFPLElBQUksQ0FBQztLQUNmO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyxDQUFDO0FBUFcsUUFBQSw2QkFBNkIsaUNBT3hDO0FBQ0ssTUFBTSxxQkFBcUIsR0FBRyxDQUNqQyxFQUE2QixFQUN0QixFQUFFOztJQUNULElBQUksQ0FBQyxFQUFFLEVBQUU7UUFDTCxPQUFPLEtBQUssQ0FBQztLQUNoQjtJQUNELE1BQU0sMkJBQTJCLEdBQUcsTUFBQSxFQUFFLGFBQUYsRUFBRSx1QkFBRixFQUFFLENBQUUsVUFBVSwwQ0FDNUMsTUFBTSxDQUFDLElBQUEsd0JBQVksRUFBQyxnQkFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFDdEQsSUFBSSxDQUNELENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBRSxDQUFDLENBQUMsR0FBMkIsQ0FBQyxJQUFJLEtBQUsscUJBQXFCLENBQ2xELENBQUM7SUFDM0IsMENBQTBDO0lBQzFDLElBQUksRUFBRSxJQUFJLENBQUMsMkJBQTJCLEVBQUU7UUFDcEMsT0FB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
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { TSESTree } from "@typescript-eslint/utils";
|
|
2
|
+
export declare type ValidModuleNodeTypes = TSESTree.Identifier | TSESTree.CallExpression;
|
|
3
|
+
export declare const isValidModuleMetaPropertyType: (node: TSESTree.Expression | TSESTree.SpreadElement | null) => node is ValidModuleNodeTypes;
|
|
4
|
+
export declare const getRelevantNodeName: (node: TSESTree.Node) => string;
|
|
5
|
+
declare const _default: import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<"moduleMetadataArraysAreSorted", {
|
|
6
|
+
locale: string;
|
|
7
|
+
}[], {
|
|
8
|
+
[x: string]: ({ elements, }: TSESTree.ArrayExpression) => void;
|
|
9
|
+
}>;
|
|
10
|
+
export default _default;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getRelevantNodeName = exports.isValidModuleMetaPropertyType = void 0;
|
|
4
|
+
const utils_1 = require("@typescript-eslint/utils");
|
|
5
|
+
const createRule_1 = require("../../utils/createRule");
|
|
6
|
+
const wellKnownSelectors_1 = require("../../utils/wellKnownSelectors");
|
|
7
|
+
const ast_utils_1 = require("@typescript-eslint/utils/dist/ast-utils");
|
|
8
|
+
// Inspired by https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/src/rules/sort-ngmodule-metadata-arrays.ts
|
|
9
|
+
const DEFAULT_LOCALE = "en-US";
|
|
10
|
+
const isValidModuleMetaPropertyType = (node) => {
|
|
11
|
+
return (!!node &&
|
|
12
|
+
(0, ast_utils_1.isNodeOfTypes)([
|
|
13
|
+
utils_1.TSESTree.AST_NODE_TYPES.Identifier,
|
|
14
|
+
utils_1.TSESTree.AST_NODE_TYPES.CallExpression,
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
16
|
+
]) // unsure about this type
|
|
17
|
+
);
|
|
18
|
+
};
|
|
19
|
+
exports.isValidModuleMetaPropertyType = isValidModuleMetaPropertyType;
|
|
20
|
+
const getRelevantNodeName = (node) => {
|
|
21
|
+
let currentName = "";
|
|
22
|
+
if (node.type === utils_1.TSESTree.AST_NODE_TYPES.Identifier) {
|
|
23
|
+
currentName = node.name;
|
|
24
|
+
}
|
|
25
|
+
if (node.type === utils_1.TSESTree.AST_NODE_TYPES.CallExpression &&
|
|
26
|
+
node.callee.type === utils_1.TSESTree.AST_NODE_TYPES.MemberExpression &&
|
|
27
|
+
node.callee.object.type === utils_1.TSESTree.AST_NODE_TYPES.Identifier) {
|
|
28
|
+
currentName = node.callee.object.name;
|
|
29
|
+
}
|
|
30
|
+
return currentName;
|
|
31
|
+
};
|
|
32
|
+
exports.getRelevantNodeName = getRelevantNodeName;
|
|
33
|
+
exports.default = (0, createRule_1.createRule)({
|
|
34
|
+
name: "sort-module-metadata-arrays",
|
|
35
|
+
meta: {
|
|
36
|
+
type: "suggestion",
|
|
37
|
+
docs: {
|
|
38
|
+
description: "Ensures ASC alphabetical order for `Module` metadata arrays for easy visual scanning",
|
|
39
|
+
recommended: false,
|
|
40
|
+
},
|
|
41
|
+
fixable: "code",
|
|
42
|
+
schema: [
|
|
43
|
+
{
|
|
44
|
+
type: "object",
|
|
45
|
+
properties: {
|
|
46
|
+
locale: {
|
|
47
|
+
type: "string",
|
|
48
|
+
description: "A string with a BCP 47 language tag.",
|
|
49
|
+
default: DEFAULT_LOCALE,
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
additionalProperties: false,
|
|
53
|
+
},
|
|
54
|
+
],
|
|
55
|
+
messages: {
|
|
56
|
+
moduleMetadataArraysAreSorted: "`Module` metadata arrays should be sorted in ASC alphabetical order",
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
defaultOptions: [
|
|
60
|
+
{
|
|
61
|
+
locale: DEFAULT_LOCALE,
|
|
62
|
+
},
|
|
63
|
+
],
|
|
64
|
+
create(context, [{ locale }]) {
|
|
65
|
+
const sourceCode = context.getSourceCode();
|
|
66
|
+
return {
|
|
67
|
+
[`${wellKnownSelectors_1.MODULE_CLASS_DECORATOR} Property > ArrayExpression`]({ elements, }) {
|
|
68
|
+
const unorderedNodes = elements
|
|
69
|
+
// nestjs modules use identifiers and call expressions
|
|
70
|
+
// can modify this later
|
|
71
|
+
.filter(exports.isValidModuleMetaPropertyType)
|
|
72
|
+
.map((current, index, list) => [current, list[index + 1]])
|
|
73
|
+
.find(([current, next]) => {
|
|
74
|
+
return (current &&
|
|
75
|
+
next &&
|
|
76
|
+
(0, exports.getRelevantNodeName)(current).localeCompare((0, exports.getRelevantNodeName)(next), locale) === 1);
|
|
77
|
+
});
|
|
78
|
+
if (!unorderedNodes)
|
|
79
|
+
return;
|
|
80
|
+
const [unorderedNode, nextNode] = unorderedNodes;
|
|
81
|
+
context.report({
|
|
82
|
+
node: nextNode,
|
|
83
|
+
messageId: "moduleMetadataArraysAreSorted",
|
|
84
|
+
fix: (fixer) => [
|
|
85
|
+
fixer.replaceText(unorderedNode, sourceCode.getText(nextNode)),
|
|
86
|
+
fixer.replaceText(nextNode, sourceCode.getText(unorderedNode)),
|
|
87
|
+
],
|
|
88
|
+
});
|
|
89
|
+
},
|
|
90
|
+
};
|
|
91
|
+
},
|
|
92
|
+
});
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydE1vZHVsZU1ldGFkYXRhQXJyYXlzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3J1bGVzL3NvcnRNb2R1bGVNZXRhZGF0YUFycmF5cy9zb3J0TW9kdWxlTWV0YWRhdGFBcnJheXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsb0RBQWtEO0FBQ2xELHVEQUFrRDtBQUNsRCx1RUFBc0U7QUFDdEUsdUVBQXNFO0FBRXRFLDJJQUEySTtBQUUzSSxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUM7QUFNeEIsTUFBTSw2QkFBNkIsR0FBRyxDQUN6QyxJQUF5RCxFQUM3QixFQUFFO0lBQzlCLE9BQU8sQ0FDSCxDQUFDLENBQUMsSUFBSTtRQUNMLElBQUEseUJBQWEsRUFBQztZQUNYLGdCQUFRLENBQUMsY0FBYyxDQUFDLFVBQVU7WUFDbEMsZ0JBQVEsQ0FBQyxjQUFjLENBQUMsY0FBYztZQUN0Qyw4REFBOEQ7U0FDakUsQ0FBUyxDQUFDLHlCQUF5QjtLQUN2QyxDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBWFcsUUFBQSw2QkFBNkIsaUNBV3hDO0FBQ0ssTUFBTSxtQkFBbUIsR0FBRyxDQUFDLElBQW1CLEVBQUUsRUFBRTtJQUN2RCxJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFFckIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLGdCQUFRLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRTtRQUNsRCxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztLQUMzQjtJQUNELElBQ0ksSUFBSSxDQUFDLElBQUksS0FBSyxnQkFBUSxDQUFDLGNBQWMsQ0FBQyxjQUFjO1FBQ3BELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLGdCQUFRLENBQUMsY0FBYyxDQUFDLGdCQUFnQjtRQUM3RCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssZ0JBQVEsQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUNoRTtRQUNF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
|
package/dist/rules/validateNonPrimitvesNeedsTypeDecorator/validateNonPrimitiveNeedsDecorators.js
CHANGED
|
@@ -76,6 +76,7 @@ const rule = (0, createRule_1.createRule)({
|
|
|
76
76
|
// this is getting very messy
|
|
77
77
|
if (isAnArray) {
|
|
78
78
|
const mainTypeInShortArray = (_c = (_b = (_a = node.typeAnnotation) === null || _a === void 0 ? void 0 : _a.typeAnnotation) === null || _b === void 0 ? void 0 : _b.elementType) === null || _c === void 0 ? void 0 : _c.type;
|
|
79
|
+
// eslint-disable-next-line unicorn/no-negated-condition
|
|
79
80
|
if (!mainTypeInShortArray) {
|
|
80
81
|
// try to get the type of Array<type> syntax
|
|
81
82
|
const foundParams = (_f = (_e = (_d = node.typeAnnotation) === null || _d === void 0 ? void 0 : _d.typeAnnotation) === null || _e === void 0 ? void 0 : _e.typeParameters) === null || _f === void 0 ? void 0 : _f.params;
|
|
@@ -195,4 +196,4 @@ const rule = (0, createRule_1.createRule)({
|
|
|
195
196
|
},
|
|
196
197
|
});
|
|
197
198
|
exports.default = rule;
|
|
198
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGVOb25QcmltaXRpdmVOZWVkc0RlY29yYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcnVsZXMvdmFsaWRhdGVOb25QcmltaXR2ZXNOZWVkc1R5cGVEZWNvcmF0b3IvdmFsaWRhdGVOb25QcmltaXRpdmVOZWVkc0RlY29yYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0RBQWtEO0FBQ2xELG9EQUtrQztBQUNsQyx1REFBa0Q7QUFDbEQscUVBQWdFO0FBRWhFLE1BQU0sY0FBYyxHQUFHLElBQUksR0FBRyxDQUFDO0lBQzNCLHNCQUFjLENBQUMsZUFBZTtJQUM5QixzQkFBYyxDQUFDLGdCQUFnQjtJQUMvQixzQkFBYyxDQUFDLGVBQWU7SUFDOUIsc0JBQWMsQ0FBQyxhQUFhO0NBQy9CLENBQUMsQ0FBQztBQU9JLE1BQU0sYUFBYSxHQUFHLEdBQVksRUFBRTtJQUN2QyxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDLENBQUM7QUFGVyxRQUFBLGFBQWEsaUJBRXhCO0FBRUYsTUFBTSxJQUFJLEdBQUcsSUFBQSx1QkFBVSxFQUFDO0lBQ3BCLElBQUksRUFBRSx1REFBdUQ7SUFDN0QsSUFBSSxFQUFFO1FBQ0YsSUFBSSxFQUFFO1lBQ0YsV0FBVyxFQUNQLGdGQUFnRjtZQUNwRixXQUFXLEVBQUUsS0FBSztZQUNsQixvQkFBb0IsRUFBRSxLQUFLO1NBQzlCO1FBQ0QsUUFBUSxFQUFFO1lBQ04sd0JBQXdCLEVBQ3BCLHdFQUF3RTtZQUM1RSxzQkFBc0IsRUFDbEIsOEpBQThKO1NBQ3JLO1FBQ0QsTUFBTSxFQUFFO1lBQ0o7Z0JBQ0ksVUFBVSxFQUFFO29CQUNSLHdCQUF3QixFQUFFO3dCQUN0QixXQUFXLEVBQ1Asc0VBQXNFO3dCQUMxRSxJQUFJLEVBQUUsT0FBTzt3QkFDYixRQUFRLEVBQUUsQ0FBQzt3QkFDWCxLQUFLLEVBQUU7NEJBQ0gsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsU0FBUyxF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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const MODULE_CLASS_DECORATOR = "ClassDeclaration > Decorator[expression.callee.name=\"Module\"]";
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MODULE_CLASS_DECORATOR = void 0;
|
|
4
|
+
exports.MODULE_CLASS_DECORATOR = 'ClassDeclaration > Decorator[expression.callee.name="Module"]';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2VsbEtub3duU2VsZWN0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3dlbGxLbm93blNlbGVjdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLHNCQUFzQixHQUMvQiwrREFBK0QsQ0FBQyJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@darraghor/eslint-plugin-nestjs-typed",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.22.1",
|
|
4
4
|
"description": "Eslint rules for nestjs projects",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"clean": "rm -Rf ./dist/",
|
|
@@ -43,26 +43,26 @@
|
|
|
43
43
|
"main": "dist/index.js",
|
|
44
44
|
"types": "index.d.ts",
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@typescript-eslint/scope-manager": "^5.59.
|
|
47
|
-
"@typescript-eslint/utils": "^5.59.
|
|
46
|
+
"@typescript-eslint/scope-manager": "^5.59.8",
|
|
47
|
+
"@typescript-eslint/utils": "^5.59.8",
|
|
48
48
|
"eslint-module-utils": "2.8.0",
|
|
49
49
|
"reflect-metadata": "0.1.13"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
|
-
"@commitlint/cli": "17.6.
|
|
53
|
-
"@commitlint/config-conventional": "17.6.
|
|
52
|
+
"@commitlint/cli": "17.6.5",
|
|
53
|
+
"@commitlint/config-conventional": "17.6.5",
|
|
54
54
|
"@semantic-release/changelog": "6.0.3",
|
|
55
55
|
"@semantic-release/exec": "6.0.3",
|
|
56
|
-
"@types/eslint": "8.
|
|
57
|
-
"@types/jest": "29.5.
|
|
56
|
+
"@types/eslint": "8.40.0",
|
|
57
|
+
"@types/jest": "29.5.2",
|
|
58
58
|
"@types/node": "18.16.0",
|
|
59
|
-
"@typescript-eslint/eslint-plugin": "5.59.
|
|
60
|
-
"@typescript-eslint/parser": "5.59.
|
|
59
|
+
"@typescript-eslint/eslint-plugin": "5.59.8",
|
|
60
|
+
"@typescript-eslint/parser": "5.59.8",
|
|
61
61
|
"class-validator": "^0.14",
|
|
62
|
-
"eslint": "8.
|
|
62
|
+
"eslint": "8.42.0",
|
|
63
63
|
"eslint-config-prettier": "8.8.0",
|
|
64
64
|
"eslint-plugin-import": "2.27.5",
|
|
65
|
-
"eslint-plugin-jsdoc": "
|
|
65
|
+
"eslint-plugin-jsdoc": "46.2.0",
|
|
66
66
|
"eslint-plugin-prefer-arrow": "1.2.3",
|
|
67
67
|
"eslint-plugin-unicorn": "47.0.0",
|
|
68
68
|
"husky": "8.0.3",
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
"jest-junit": "16.0.0",
|
|
72
72
|
"lint-staged": "13.2.2",
|
|
73
73
|
"prettier": "2.8.8",
|
|
74
|
-
"semantic-release": "21.0.
|
|
74
|
+
"semantic-release": "21.0.3",
|
|
75
75
|
"ts-jest": "29.1.0",
|
|
76
76
|
"ts-node": "10.9.1",
|
|
77
77
|
"typescript": "4.8.4"
|