@darraghor/eslint-plugin-nestjs-typed 3.12.1 → 3.14.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 +7 -1
- package/dist/fixtures/example.controller.js +1 -1
- package/dist/fixtures/example.module.js +1 -1
- package/dist/fixtures/providerArray.module.js +1 -1
- package/dist/rules/allPropertiesAreWhitelisted/allPropertiesAreWhitelisted.d.ts +1 -1
- package/dist/rules/allPropertiesAreWhitelisted/allPropertiesAreWhitelisted.js +4 -4
- package/dist/rules/validate-non-primitves-needs-type-decorator/validateNonPrimitiveNeedsDecorators.js +11 -3
- package/dist/utils/typedTokenHelpers.d.ts +40 -1
- package/dist/utils/typedTokenHelpers.js +85 -2
- package/package.json +16 -16
- package/dist/utils/classValidatorDecorators.d.ts +0 -1
- package/dist/utils/classValidatorDecorators.js +0 -104
package/README.md
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+

|
|
2
|
+

|
|
3
|
+

|
|
4
|
+

|
|
5
|
+

|
|
6
|
+
|
|
1
7
|
## A note on versions
|
|
2
8
|
|
|
3
9
|
Version 2.x supports Eslint version <=7.x and typescript eslint parser 4
|
|
@@ -6,7 +12,7 @@ Version 3.x supports Eslint version >=8.x and typescript eslint parser 5+
|
|
|
6
12
|
|
|
7
13
|
There were many breaking changes between these versions.
|
|
8
14
|
|
|
9
|
-
typescript eslint parser supports a range of typescript versions but there can be a delay in supporting the latest versions.
|
|
15
|
+
typescript eslint parser supports a range of typescript versions but there can be a delay in supporting the latest versions.
|
|
10
16
|
|
|
11
17
|
This plugin only supports typescript up to the version typescript eslint parser supports. See https://github.com/typescript-eslint/typescript-eslint#supported-typescript-version for the versions.
|
|
12
18
|
|
|
@@ -14,4 +14,4 @@ ExampleController = __decorate([
|
|
|
14
14
|
(0, Controller_stub_1.Controller)()
|
|
15
15
|
], ExampleController);
|
|
16
16
|
exports.ExampleController = ExampleController;
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhhbXBsZS5jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZpeHR1cmVzL2V4YW1wbGUuY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSx1REFBNkM7QUFHdEMsSUFBTSxpQkFBaUIsR0FBdkIsTUFBTSxpQkFBaUI7Q0FBRyxDQUFBO0FBQXBCLGlCQUFpQjtJQUQ3QixJQUFBLDRCQUFVLEdBQUU7R0FDQSxpQkFBaUIsQ0FBRztBQUFwQiw4Q0FBaUIifQ==
|
|
@@ -24,4 +24,4 @@ ExampleModule = __decorate([
|
|
|
24
24
|
})
|
|
25
25
|
], ExampleModule);
|
|
26
26
|
exports.ExampleModule = ExampleModule;
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhhbXBsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZml4dHVyZXMvZXhhbXBsZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQXFDO0FBQ3JDLDBFQUFpRTtBQUNqRSw2REFBdUQ7QUFDdkQscUVBQXlEO0FBT2xELElBQU0sYUFBYSxHQUFuQixNQUFNLGFBQWE7Q0FBRyxDQUFBO0FBQWhCLGFBQWE7SUFMekIsSUFBQSxvQkFBTSxFQUFDO1FBQ0osT0FBTyxFQUFFLEVBQUU7UUFDWCxXQUFXLEVBQUUsQ0FBQyxzQ0FBaUIsQ0FBQztRQUNoQyxTQUFTLEVBQUUsQ0FBQywwQkFBK0IsRUFBRSx3Q0FBZSxDQUFDO0tBQ2hFLENBQUM7R0FDVyxhQUFhLENBQUc7QUFBaEIsc0NBQWEifQ==
|
|
@@ -22,4 +22,4 @@ ProviderArrayModule = __decorate([
|
|
|
22
22
|
})
|
|
23
23
|
], ProviderArrayModule);
|
|
24
24
|
exports.ProviderArrayModule = ProviderArrayModule;
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJBcnJheS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZml4dHVyZXMvcHJvdmlkZXJBcnJheS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQXFDO0FBQ3JDLDBFQUFpRTtBQUVqRSxNQUFNLFNBQVMsR0FBRyxDQUFDLDBCQUErQixDQUFDLENBQUM7QUFNN0MsSUFBTSxtQkFBbUIsR0FBekIsTUFBTSxtQkFBbUI7Q0FBRyxDQUFBO0FBQXRCLG1CQUFtQjtJQUovQixJQUFBLG9CQUFNLEVBQUM7UUFDSixPQUFPLEVBQUUsRUFBRTtRQUNYLFNBQVMsRUFBRSxTQUFTO0tBQ3ZCLENBQUM7R0FDVyxtQkFBbUIsQ0FBRztBQUF0QixrREFBbUIifQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TSESLint, TSESTree } from "@typescript-eslint/utils";
|
|
2
2
|
declare const rule: TSESLint.RuleModule<"missing-property-decorator", never[], {
|
|
3
3
|
ClassDeclaration(node: TSESTree.ClassDeclaration): void;
|
|
4
4
|
}>;
|
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const utils_1 = require("@typescript-eslint/utils");
|
|
4
4
|
const createRule_1 = require("../../utils/createRule");
|
|
5
|
-
const
|
|
6
|
-
const CLASS_VALIDATOR_DECORATOR_NAMES = new Set(classValidatorDecorators_1.classValidatorDecorators);
|
|
5
|
+
const typedTokenHelpers_1 = require("../../utils/typedTokenHelpers");
|
|
7
6
|
const rule = (0, createRule_1.createRule)({
|
|
8
7
|
name: "all-properties-are-whitelisted",
|
|
9
8
|
meta: {
|
|
@@ -25,6 +24,7 @@ const rule = (0, createRule_1.createRule)({
|
|
|
25
24
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
26
25
|
ClassDeclaration(node) {
|
|
27
26
|
var _a;
|
|
27
|
+
const program = typedTokenHelpers_1.typedTokenHelpers.getRootProgram(node);
|
|
28
28
|
const withDecorator = [];
|
|
29
29
|
const withoutDecorator = [];
|
|
30
30
|
for (const element of node.body.body) {
|
|
@@ -35,7 +35,7 @@ const rule = (0, createRule_1.createRule)({
|
|
|
35
35
|
utils_1.AST_NODE_TYPES.CallExpression &&
|
|
36
36
|
decorator.expression.callee.type ===
|
|
37
37
|
utils_1.AST_NODE_TYPES.Identifier &&
|
|
38
|
-
|
|
38
|
+
typedTokenHelpers_1.typedTokenHelpers.decoratorIsClassValidatorDecorator(program, decorator));
|
|
39
39
|
if (hasDecorator) {
|
|
40
40
|
withDecorator.push(element);
|
|
41
41
|
}
|
|
@@ -56,4 +56,4 @@ const rule = (0, createRule_1.createRule)({
|
|
|
56
56
|
},
|
|
57
57
|
});
|
|
58
58
|
exports.default = rule;
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsUHJvcGVydGllc0FyZVdoaXRlbGlzdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3J1bGVzL2FsbFByb3BlcnRpZXNBcmVXaGl0ZWxpc3RlZC9hbGxQcm9wZXJ0aWVzQXJlV2hpdGVsaXN0ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxvREFBNEU7QUFDNUUsdURBQWtEO0FBQ2xELHFFQUFnRTtBQUVoRSxNQUFNLElBQUksR0FBRyxJQUFBLHVCQUFVLEVBQUM7SUFDcEIsSUFBSSxFQUFFLGdDQUFnQztJQUN0QyxJQUFJLEVBQUU7UUFDRixJQUFJLEVBQUU7WUFDRixXQUFXLEVBQUUsd0NBQXdDO1lBQ3JELFdBQVcsRUFBRSxPQUFPO1lBQ3BCLG9CQUFvQixFQUFFLEtBQUs7U0FDOUI7UUFDRCxRQUFRLEVBQUU7WUFDTixnRUFBZ0U7WUFDaEUsNEJBQTRCLEVBQ3hCLHlGQUF5RjtTQUNoRztRQUNELElBQUksRUFBRSxTQUFTO1FBQ2YsTUFBTSxFQUFFLEVBQUU7S0FDYjtJQUNELGNBQWMsRUFBRSxFQUFFO0lBQ2xCLE1BQU0sRUFBRSxVQUNKLE9BRUM7UUFFRCxPQUFPO1lBQ0gsZ0VBQWdFO1lBQ2hFLGdCQUFnQixDQUFDLElBQUk7O2dCQUNqQixNQUFNLE9BQU8sR0FBRyxxQ0FBaUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3ZELE1BQU0sYUFBYSxHQUFrQyxFQUFFLENBQUM7Z0JBQ3hELE1BQU0sZ0JBQWdCLEdBQWtDLEVBQUUsQ0FBQztnQkFDM0QsS0FBSyxNQUFNLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtvQkFDbEMsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLHNCQUFjLENBQUMsa0JBQWtCLEVBQUU7d0JBQ3BELFNBQVM7cUJBQ1o7b0JBQ0QsTUFBTSxZQUFZLEdBQUcsTUFBQSxPQUFPLENBQUMsVUFBVSwwQ0FBRSxJQUFJLENBQ3pDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FDVixTQUFTLENBQUMsVUFBVSxDQUFDLElBQUk7d0JBQ3JCLHNCQUFjLENBQUMsY0FBYzt3QkFDakMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSTs0QkFDNUIsc0JBQWMsQ0FBQyxVQUFVO3dCQUM3QixxQ0FBaUIsQ0FBQyxrQ0FBa0MsQ0FDaEQsT0FBTyxFQUNQLFNBQVMsQ0FDWixDQUNSLENBQUM7b0JBQ0YsSUFBSSxZQUFZLEVBQUU7d0JBQ2QsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztxQkFDL0I7eUJBQU07d0JBQ0gsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO3FCQUNsQztpQkFDSjtnQkFDRCxJQUFJLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQ3pELEtBQUssTUFBTSxPQUFPLElBQUksZ0JBQWdCLEVBQUU7d0JBQ3BDLE9BQU8sQ0FBQyxNQUFNLENBQUM7NEJBQ1gsSUFBSSxFQUFFLE9BQU87NEJBQ2IsU0FBUyxFQUFFLDRCQUE0Qjt5QkFDMUMsQ0FBQyxDQUFDO3FCQUNOO2lCQUNKO1lBQ0wsQ0FBQztTQUNKLENBQUM7SUFDTixDQUFDO0NBQ0osQ0FBQyxDQUFDO0FBRUgsa0JBQWUsSUFBSSxDQUFDIn0=
|
|
@@ -5,7 +5,6 @@ exports.shouldTrigger = void 0;
|
|
|
5
5
|
const utils_1 = require("@typescript-eslint/utils");
|
|
6
6
|
const createRule_1 = require("../../utils/createRule");
|
|
7
7
|
const typedTokenHelpers_1 = require("../../utils/typedTokenHelpers");
|
|
8
|
-
const classValidatorDecorators_1 = require("../../utils/classValidatorDecorators");
|
|
9
8
|
const primitiveTypes = new Set([
|
|
10
9
|
utils_1.AST_NODE_TYPES.TSStringKeyword,
|
|
11
10
|
utils_1.AST_NODE_TYPES.TSBooleanKeyword,
|
|
@@ -101,7 +100,16 @@ const rule = (0, createRule_1.createRule)({
|
|
|
101
100
|
// And for input DTOs they should specify types.
|
|
102
101
|
// property has a validation decorator but not IsEnum
|
|
103
102
|
// (we don't care about un-validated properties and enums don't need Type())
|
|
104
|
-
const foundClassValidatorDecorators = typedTokenHelpers_1.typedTokenHelpers.
|
|
103
|
+
const foundClassValidatorDecorators = typedTokenHelpers_1.typedTokenHelpers.getImportedClassValidatorDecorators(node);
|
|
104
|
+
const hasEnum = foundClassValidatorDecorators.some((foundClassValidatorDecorator) => typedTokenHelpers_1.typedTokenHelpers.decoratorIsIsEnum(foundClassValidatorDecorator));
|
|
105
|
+
if (hasEnum) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
// const foundClassValidatorDecorators =
|
|
109
|
+
// typedTokenHelpers.getDecoratorsNamed(
|
|
110
|
+
// node,
|
|
111
|
+
// classValidatorDecorators.filter((x) => x !== "IsEnum")
|
|
112
|
+
// );
|
|
105
113
|
if (foundClassValidatorDecorators.length === 0) {
|
|
106
114
|
return;
|
|
107
115
|
}
|
|
@@ -122,4 +130,4 @@ const rule = (0, createRule_1.createRule)({
|
|
|
122
130
|
},
|
|
123
131
|
});
|
|
124
132
|
exports.default = rule;
|
|
125
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGVOb25QcmltaXRpdmVOZWVkc0RlY29yYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcnVsZXMvdmFsaWRhdGUtbm9uLXByaW1pdHZlcy1uZWVkcy10eXBlLWRlY29yYXRvci92YWxpZGF0ZU5vblByaW1pdGl2ZU5lZWRzRGVjb3JhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrREFBa0Q7QUFDbEQsb0RBS2tDO0FBQ2xDLHVEQUFrRDtBQUNsRCxxRUFBZ0U7QUFFaEUsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLENBQUM7SUFDM0Isc0JBQWMsQ0FBQyxlQUFlO0lBQzlCLHNCQUFjLENBQUMsZ0JBQWdCO0lBQy9CLHNCQUFjLENBQUMsZUFBZTtDQUNqQyxDQUFDLENBQUM7QUFNSSxNQUFNLGFBQWEsR0FBRyxHQUFZLEVBQUU7SUFDdkMsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRlcsUUFBQSxhQUFhLGlCQUV4QjtBQUVGLE1BQU0sSUFBSSxHQUFHLElBQUEsdUJBQVUsRUFBQztJQUNwQixJQUFJLEVBQUUsdURBQXVEO0lBQzdELElBQUksRUFBRTtRQUNGLElBQUksRUFBRTtZQUNGLFdBQVcsRUFDUCwrRUFBK0U7WUFDbkYsV0FBVyxFQUFFLEtBQUs7WUFDbEIsb0JBQW9CLEVBQUUsS0FBSztTQUM5QjtRQUNELFFBQVEsRUFBRTtZQUNOLHNCQUFzQixFQUNsQiwrRUFBK0U7U0FDdEY7UUFDRCxNQUFNLEVBQUU7WUFDSjtnQkFDSSxVQUFVLEVBQUU7b0JBQ1Isd0JBQXdCLEVBQUU7d0JBQ3RCLFdBQVcsRUFDUCxzRUFBc0U7d0JBQzFFLElBQUksRUFBRSxPQUFPO3dCQUNiLFFBQVEsRUFBRSxDQUFDO3dCQUNYLEtBQUssRUFBRTs0QkFDSCxJQUFJLEVBQUUsUUFBUTs0QkFDZCxTQUFTLEVBQUUsQ0FBQzt5QkFDZjtxQkFDSjtpQkFDSjthQUNKO1NBQ0o7UUFDRCxj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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TSESLint, TSESTree } from "@typescript-eslint/utils";
|
|
2
2
|
import { ParserServices } from "@typescript-eslint/parser";
|
|
3
3
|
import ts from "typescript";
|
|
4
4
|
export declare const typedTokenHelpers: {
|
|
@@ -13,4 +13,43 @@ export declare const typedTokenHelpers: {
|
|
|
13
13
|
parseStringToAst(code: string, path: string, context: Readonly<TSESLint.RuleContext<never, never[]>>): TSESTree.Program;
|
|
14
14
|
isEnumType(type: ts.Type): boolean;
|
|
15
15
|
isOptionalPropertyValue(node: TSESTree.PropertyDefinition): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Checks if an import is an import of the given decorator name
|
|
18
|
+
* @param imp
|
|
19
|
+
* @param decoratorName
|
|
20
|
+
*/
|
|
21
|
+
importIsDecorator(imp: TSESTree.ImportDeclaration, decoratorName: string): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Checks if decorator is in imports of a node
|
|
24
|
+
* @param imports
|
|
25
|
+
* @param decorator
|
|
26
|
+
*/
|
|
27
|
+
decoratorIsImportedFromClassValidator(imports: TSESTree.ImportDeclaration[], decorator: TSESTree.Decorator): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Checks whether a decorator is a class validator decorator
|
|
30
|
+
* @param program The root program node
|
|
31
|
+
* @param decorator The decorator node
|
|
32
|
+
*/
|
|
33
|
+
decoratorIsClassValidatorDecorator(program: TSESTree.Program | null, decorator: TSESTree.Decorator): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Gets the root program of a node
|
|
36
|
+
* @param node
|
|
37
|
+
*/
|
|
38
|
+
getRootProgram(node: TSESTree.BaseNode): TSESTree.Program | null;
|
|
39
|
+
/**
|
|
40
|
+
* Gets all the decorators actually imported from class-validator lib
|
|
41
|
+
* @param node PropertyDefinition node
|
|
42
|
+
*/
|
|
43
|
+
getImportedClassValidatorDecorators(node: TSESTree.PropertyDefinition): TSESTree.Decorator[];
|
|
44
|
+
/**
|
|
45
|
+
* Checks if the decorator is the IsEnum decorator
|
|
46
|
+
* @param decorator
|
|
47
|
+
*/
|
|
48
|
+
decoratorIsIsEnum(decorator: TSESTree.Decorator): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Gets the name of a decorator
|
|
51
|
+
* Returns null if no name is found
|
|
52
|
+
* @param decorator
|
|
53
|
+
*/
|
|
54
|
+
getDecoratorName(decorator: TSESTree.Decorator): string | null;
|
|
16
55
|
};
|
|
@@ -30,8 +30,8 @@ exports.typedTokenHelpers = void 0;
|
|
|
30
30
|
const utils_1 = require("@typescript-eslint/utils");
|
|
31
31
|
const parser_1 = require("@typescript-eslint/parser");
|
|
32
32
|
const typescript_1 = __importDefault(require("typescript"));
|
|
33
|
-
const tsutils_1 = require("tsutils");
|
|
34
33
|
const tsutils = __importStar(require("tsutils"));
|
|
34
|
+
const tsutils_1 = require("tsutils");
|
|
35
35
|
exports.typedTokenHelpers = {
|
|
36
36
|
decoratorsThatCouldMeanTheDevIsValidatingAnArray: [
|
|
37
37
|
"IsArray",
|
|
@@ -131,5 +131,88 @@ exports.typedTokenHelpers = {
|
|
|
131
131
|
const isOptionalPropertyValue = node.optional || isUndefinedType || false;
|
|
132
132
|
return isOptionalPropertyValue;
|
|
133
133
|
},
|
|
134
|
+
/**
|
|
135
|
+
* Checks if an import is an import of the given decorator name
|
|
136
|
+
* @param imp
|
|
137
|
+
* @param decoratorName
|
|
138
|
+
*/
|
|
139
|
+
importIsDecorator(imp, decoratorName) {
|
|
140
|
+
const isFromClassValidator = imp.source.value.startsWith("class-validator");
|
|
141
|
+
const isDecoratorImport = imp.specifiers.some((specifier) => specifier.local.name === decoratorName);
|
|
142
|
+
return isFromClassValidator && isDecoratorImport;
|
|
143
|
+
},
|
|
144
|
+
/**
|
|
145
|
+
* Checks if decorator is in imports of a node
|
|
146
|
+
* @param imports
|
|
147
|
+
* @param decorator
|
|
148
|
+
*/
|
|
149
|
+
decoratorIsImportedFromClassValidator(imports, decorator) {
|
|
150
|
+
const decoratorName = this.getDecoratorName(decorator);
|
|
151
|
+
if (!decoratorName) {
|
|
152
|
+
return false;
|
|
153
|
+
}
|
|
154
|
+
return imports.some((imp) => exports.typedTokenHelpers.importIsDecorator(imp, decoratorName));
|
|
155
|
+
},
|
|
156
|
+
/**
|
|
157
|
+
* Checks whether a decorator is a class validator decorator
|
|
158
|
+
* @param program The root program node
|
|
159
|
+
* @param decorator The decorator node
|
|
160
|
+
*/
|
|
161
|
+
decoratorIsClassValidatorDecorator(program, decorator) {
|
|
162
|
+
if (!program) {
|
|
163
|
+
return false;
|
|
164
|
+
}
|
|
165
|
+
const imports = program.body.filter((node) => node.type === utils_1.TSESTree.AST_NODE_TYPES.ImportDeclaration);
|
|
166
|
+
return exports.typedTokenHelpers.decoratorIsImportedFromClassValidator(imports, decorator);
|
|
167
|
+
},
|
|
168
|
+
/**
|
|
169
|
+
* Gets the root program of a node
|
|
170
|
+
* @param node
|
|
171
|
+
*/
|
|
172
|
+
getRootProgram(node) {
|
|
173
|
+
let root = node;
|
|
174
|
+
while (root.parent) {
|
|
175
|
+
if (root.parent.type === utils_1.TSESTree.AST_NODE_TYPES.Program) {
|
|
176
|
+
return root.parent;
|
|
177
|
+
}
|
|
178
|
+
root = root.parent;
|
|
179
|
+
}
|
|
180
|
+
return null;
|
|
181
|
+
},
|
|
182
|
+
/**
|
|
183
|
+
* Gets all the decorators actually imported from class-validator lib
|
|
184
|
+
* @param node PropertyDefinition node
|
|
185
|
+
*/
|
|
186
|
+
getImportedClassValidatorDecorators(node) {
|
|
187
|
+
var _a;
|
|
188
|
+
const program = exports.typedTokenHelpers.getRootProgram(node);
|
|
189
|
+
const { decorators } = node;
|
|
190
|
+
return ((_a = decorators === null || decorators === void 0 ? void 0 : decorators.filter((decorator) => {
|
|
191
|
+
return exports.typedTokenHelpers.decoratorIsClassValidatorDecorator(program, decorator);
|
|
192
|
+
})) !== null && _a !== void 0 ? _a : []);
|
|
193
|
+
},
|
|
194
|
+
/**
|
|
195
|
+
* Checks if the decorator is the IsEnum decorator
|
|
196
|
+
* @param decorator
|
|
197
|
+
*/
|
|
198
|
+
decoratorIsIsEnum(decorator) {
|
|
199
|
+
const decoratorName = this.getDecoratorName(decorator);
|
|
200
|
+
return decoratorName === "IsEnum";
|
|
201
|
+
},
|
|
202
|
+
/**
|
|
203
|
+
* Gets the name of a decorator
|
|
204
|
+
* Returns null if no name is found
|
|
205
|
+
* @param decorator
|
|
206
|
+
*/
|
|
207
|
+
getDecoratorName(decorator) {
|
|
208
|
+
if (decorator.expression.type !== utils_1.TSESTree.AST_NODE_TYPES.CallExpression) {
|
|
209
|
+
return null;
|
|
210
|
+
}
|
|
211
|
+
if (decorator.expression.callee.type !==
|
|
212
|
+
utils_1.TSESTree.AST_NODE_TYPES.Identifier) {
|
|
213
|
+
return null;
|
|
214
|
+
}
|
|
215
|
+
return decorator.expression.callee.name;
|
|
216
|
+
},
|
|
134
217
|
};
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
218
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWRUb2tlbkhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvdHlwZWRUb2tlbkhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBNEU7QUFDNUUsc0RBQWdFO0FBQ2hFLDREQUE0QjtBQUM1QixpREFBbUM7QUFDbkMscUNBQXVDO0FBRTFCLFFBQUEsaUJBQWlCLEdBQUc7SUFDN0IsZ0RBQWdELEVBQUU7UUFDOUMsU0FBUztRQUNULGNBQWM7UUFDZCxjQUFjO1FBQ2QsZUFBZTtRQUNmLGtCQUFrQjtRQUNsQixlQUFlO1FBQ2YsYUFBYTtLQUNoQjtJQUNELGtDQUFrQyxDQUM5QixJQUFtQixFQUNuQixhQUE2QixFQUM3QixPQUF1Qjs7UUFFdkIsSUFDSSxDQUFBLE1BQUEsTUFBQyxJQUFvQyxhQUFwQyxJQUFJLHVCQUFKLElBQUksQ0FBa0MsY0FBYywwQ0FDL0MsY0FBYywwQ0FBRSxJQUFJLE1BQUssZ0JBQVEsQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUNwRTtZQUNFLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEUsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQy9CLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUEsd0JBQWMsRUFBQyxRQUFRLENBQUMsRUFBRTtZQUN0QyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDekIsT0FBTyxLQUFLLENBQUM7YUFDaEI7U0FDSjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxXQUFXLENBQ1AsSUFBbUIsRUFDbkIsYUFBNkIsRUFD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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@darraghor/eslint-plugin-nestjs-typed",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.14.0",
|
|
4
4
|
"description": "Eslint rules for nestjs projects",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"clean": "rm -Rf ./dist/",
|
|
@@ -40,38 +40,38 @@
|
|
|
40
40
|
"main": "dist/index.js",
|
|
41
41
|
"types": "index.d.ts",
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@typescript-eslint/scope-manager": "5.
|
|
44
|
-
"@typescript-eslint/utils": "5.
|
|
43
|
+
"@typescript-eslint/scope-manager": "^5.0.0",
|
|
44
|
+
"@typescript-eslint/utils": "^5.0.0",
|
|
45
45
|
"eslint-module-utils": "2.7.4",
|
|
46
46
|
"reflect-metadata": "0.1.13"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
|
-
"@commitlint/cli": "17.
|
|
50
|
-
"@commitlint/config-conventional": "17.
|
|
49
|
+
"@commitlint/cli": "17.2.0",
|
|
50
|
+
"@commitlint/config-conventional": "17.2.0",
|
|
51
51
|
"@semantic-release/changelog": "6.0.1",
|
|
52
52
|
"@semantic-release/exec": "6.0.3",
|
|
53
|
-
"@types/eslint": "8.4.
|
|
54
|
-
"@types/jest": "
|
|
55
|
-
"@types/node": "18.
|
|
56
|
-
"@typescript-eslint/eslint-plugin": "5.
|
|
57
|
-
"@typescript-eslint/parser": "5.
|
|
53
|
+
"@types/eslint": "8.4.9",
|
|
54
|
+
"@types/jest": "29.2.1",
|
|
55
|
+
"@types/node": "18.11.9",
|
|
56
|
+
"@typescript-eslint/eslint-plugin": "5.42.0",
|
|
57
|
+
"@typescript-eslint/parser": "5.42.0",
|
|
58
58
|
"class-validator": "^0.13.2",
|
|
59
|
-
"eslint": "8.
|
|
59
|
+
"eslint": "8.26.0",
|
|
60
60
|
"eslint-config-prettier": "8.5.0",
|
|
61
61
|
"eslint-plugin-import": "2.26.0",
|
|
62
|
-
"eslint-plugin-jsdoc": "39.
|
|
62
|
+
"eslint-plugin-jsdoc": "39.6.2",
|
|
63
63
|
"eslint-plugin-prefer-arrow": "1.2.3",
|
|
64
|
-
"eslint-plugin-unicorn": "
|
|
64
|
+
"eslint-plugin-unicorn": "44.0.2",
|
|
65
65
|
"husky": "8.0.1",
|
|
66
|
-
"jest": "29.
|
|
66
|
+
"jest": "29.2.2",
|
|
67
67
|
"jest-create-mock-instance": "2.0.0",
|
|
68
68
|
"jest-junit": "14.0.1",
|
|
69
69
|
"lint-staged": "13.0.3",
|
|
70
70
|
"prettier": "2.7.1",
|
|
71
71
|
"semantic-release": "19.0.5",
|
|
72
|
-
"ts-jest": "
|
|
72
|
+
"ts-jest": "29.0.3",
|
|
73
73
|
"ts-node": "10.9.1",
|
|
74
|
-
"typescript": "4.
|
|
74
|
+
"typescript": "4.8.4"
|
|
75
75
|
},
|
|
76
76
|
"peerDependencies": {
|
|
77
77
|
"@typescript-eslint/parser": "^5.0.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const classValidatorDecorators: string[];
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.classValidatorDecorators = void 0;
|
|
4
|
-
exports.classValidatorDecorators = [
|
|
5
|
-
"IsBooleanString",
|
|
6
|
-
"IsPositive",
|
|
7
|
-
"IsLatLong",
|
|
8
|
-
"IsLongitude",
|
|
9
|
-
"IsLatitude",
|
|
10
|
-
"IsNegative",
|
|
11
|
-
"Contains",
|
|
12
|
-
"Equals",
|
|
13
|
-
"MinDate",
|
|
14
|
-
"MaxDate",
|
|
15
|
-
"IsAlpha",
|
|
16
|
-
"IsAlphanumeric",
|
|
17
|
-
"IsAscii",
|
|
18
|
-
"IsDecimal",
|
|
19
|
-
"IsBase64",
|
|
20
|
-
"IsBoolean",
|
|
21
|
-
"IsByteLength",
|
|
22
|
-
"IsCreditCard",
|
|
23
|
-
"IsCurrency",
|
|
24
|
-
"IsDate",
|
|
25
|
-
"IsDivisibleBy",
|
|
26
|
-
"IsEmail",
|
|
27
|
-
"IsEnum",
|
|
28
|
-
"IsFQDN",
|
|
29
|
-
"IsFullWidth",
|
|
30
|
-
"IsHalfWidth",
|
|
31
|
-
"IsVariableWidth",
|
|
32
|
-
"IsHexColor",
|
|
33
|
-
"IsHexadecimal",
|
|
34
|
-
"IsIP",
|
|
35
|
-
"IsISBN",
|
|
36
|
-
"IsISO8601",
|
|
37
|
-
"IsIn",
|
|
38
|
-
"IsInt",
|
|
39
|
-
"IsJSON",
|
|
40
|
-
"IsJWT",
|
|
41
|
-
"IsObject",
|
|
42
|
-
"IsNotEmptyObject",
|
|
43
|
-
"Length",
|
|
44
|
-
"IsLowercase",
|
|
45
|
-
"IsMongoId",
|
|
46
|
-
"IsMultibyte",
|
|
47
|
-
"IsNumberString",
|
|
48
|
-
"IsSurrogatePair",
|
|
49
|
-
"IsUrl",
|
|
50
|
-
"IsUUID",
|
|
51
|
-
"IsUppercase",
|
|
52
|
-
"Matches",
|
|
53
|
-
"MinLength",
|
|
54
|
-
"MaxLength",
|
|
55
|
-
"Min",
|
|
56
|
-
"Max",
|
|
57
|
-
"IsNotEmpty",
|
|
58
|
-
"IsMilitaryTime",
|
|
59
|
-
"ArrayNotEmpty",
|
|
60
|
-
"ArrayMinSize",
|
|
61
|
-
"ArrayMaxSize",
|
|
62
|
-
"NotEquals",
|
|
63
|
-
"IsEmpty",
|
|
64
|
-
"IsDefined",
|
|
65
|
-
"IsNotIn",
|
|
66
|
-
"IsNumber",
|
|
67
|
-
"IsString",
|
|
68
|
-
"NotContains",
|
|
69
|
-
"ArrayContains",
|
|
70
|
-
"ArrayNotContains",
|
|
71
|
-
"ArrayUnique",
|
|
72
|
-
"IsArray",
|
|
73
|
-
"IsDateString",
|
|
74
|
-
"IsInstance",
|
|
75
|
-
"IsPhoneNumber",
|
|
76
|
-
"IsISO31661Alpha2",
|
|
77
|
-
"IsISO31661Alpha3",
|
|
78
|
-
"IsHash",
|
|
79
|
-
"IsMACAddress",
|
|
80
|
-
"IsISSN",
|
|
81
|
-
"IsFirebasePushId",
|
|
82
|
-
"Allow",
|
|
83
|
-
"IsEAN",
|
|
84
|
-
"IsEthereumAddress",
|
|
85
|
-
"IsBtcAddress",
|
|
86
|
-
"IsDataURI",
|
|
87
|
-
"IsHSL",
|
|
88
|
-
"IsRgbColor",
|
|
89
|
-
"IsIdentityCard",
|
|
90
|
-
"IsBase32",
|
|
91
|
-
"IsIBAN",
|
|
92
|
-
"IsBIC",
|
|
93
|
-
"IsISRC",
|
|
94
|
-
"IsRFC3339",
|
|
95
|
-
"IsLocale",
|
|
96
|
-
"IsMagnetURI",
|
|
97
|
-
"IsMimeType",
|
|
98
|
-
"IsOctal",
|
|
99
|
-
"IsPassportNumber",
|
|
100
|
-
"IsPostalCode",
|
|
101
|
-
"IsSemVer",
|
|
102
|
-
"ValidateNested",
|
|
103
|
-
];
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3NWYWxpZGF0b3JEZWNvcmF0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2NsYXNzVmFsaWRhdG9yRGVjb3JhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLHdCQUF3QixHQUFHO0lBQ3BDLGlCQUFpQjtJQUNqQixZQUFZO0lBQ1osV0FBVztJQUNYLGFBQWE7SUFDYixZQUFZO0lBQ1osWUFBWTtJQUNaLFVBQVU7SUFDVixRQUFRO0lBQ1IsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsZ0JBQWdCO0lBQ2hCLFNBQVM7SUFDVCxXQUFXO0lBQ1gsVUFBVTtJQUNWLFdBQVc7SUFDWCxjQUFjO0lBQ2QsY0FBYztJQUNkLFlBQVk7SUFDWixRQUFRO0lBQ1IsZUFBZTtJQUNmLFNBQVM7SUFDVCxRQUFRO0lBQ1IsUUFBUTtJQUNSLGFBQWE7SUFDYixhQUFhO0lBQ2IsaUJBQWlCO0lBQ2pCLFlBQVk7SUFDWixlQUFlO0lBQ2YsTUFBTTtJQUNOLFFBQVE7SUFDUixXQUFXO0lBQ1gsTUFBTTtJQUNOLE9BQU87SUFDUCxRQUFRO0lBQ1IsT0FBTztJQUNQLFVBQVU7SUFDVixrQkFBa0I7SUFDbEIsUUFBUTtJQUNSLGFBQWE7SUFDYixXQUFXO0lBQ1gsYUFBYTtJQUNiLGdCQUFnQjtJQUNoQixpQkFBaUI7SUFDakIsT0FBTztJQUNQLFFBQVE7SUFDUixhQUFhO0lBQ2IsU0FBUztJQUNULFdBQVc7SUFDWCxXQUFXO0lBQ1gsS0FBSztJQUNMLEtBQUs7SUFDTCxZQUFZO0lBQ1osZ0JBQWdCO0lBQ2hCLGVBQWU7SUFDZixjQUFjO0lBQ2QsY0FBYztJQUNkLFdBQVc7SUFDWCxTQUFTO0lBQ1QsV0FBVztJQUNYLFNBQVM7SUFDVCxVQUFVO0lBQ1YsVUFBVTtJQUNWLGFBQWE7SUFDYixlQUFlO0lBQ2Ysa0JBQWtCO0lBQ2xCLGFBQWE7SUFDYixTQUFTO0lBQ1QsY0FBYztJQUNkLFlBQVk7SUFDWixlQUFlO0lBQ2Ysa0JBQWtCO0lBQ2xCLGtCQUFrQjtJQUNsQixRQUFRO0lBQ1IsY0FBYztJQUNkLFFBQVE7SUFDUixrQkFBa0I7SUFDbEIsT0FBTztJQUNQLE9BQU87SUFDUCxtQkFBbUI7SUFDbkIsY0FBYztJQUNkLFdBQVc7SUFDWCxPQUFPO0lBQ1AsWUFBWTtJQUNaLGdCQUFnQjtJQUNoQixVQUFVO0lBQ1YsUUFBUTtJQUNSLE9BQU87SUFDUCxRQUFRO0lBQ1IsV0FBVztJQUNYLFVBQVU7SUFDVixhQUFhO0lBQ2IsWUFBWTtJQUNaLFNBQVM7SUFDVCxrQkFBa0I7SUFDbEIsY0FBYztJQUNkLFVBQVU7SUFDVixnQkFBZ0I7Q0FDbkIsQ0FBQyJ9
|