@darraghor/eslint-plugin-nestjs-typed 5.0.13 → 5.0.14
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
CHANGED
|
@@ -19,37 +19,40 @@ This plugin only supports typescript up to the version typescript eslint parser
|
|
|
19
19
|
|
|
20
20
|
## Have an idea for a rule?
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
Awesome! [Click here](https://github.com/darraghoriordan/eslint-plugin-nestjs-typed/issues/new?title=New%20Rule%20Suggestion&labels=Rule%20Suggestion&body=Hi!%20I%20have%20an%20idea%20for%20a%20rule...) to submit a new issue!
|
|
23
23
|
|
|
24
24
|
## Index of available rules
|
|
25
25
|
|
|
26
26
|
| Category | Rule | is on in recommended ruleset? |
|
|
27
27
|
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------- |
|
|
28
|
-
| Nest Modules and Dependency Injection | [`provided-injected-should-match-factory-parameters`](./src/docs/rules/provided-injected-should-match-factory-parameters.md) |
|
|
29
|
-
| | [`injectable-should-be-provided`](./src/docs/rules/injectable-should-be-provided.md) |
|
|
28
|
+
| Nest Modules and Dependency Injection | [`provided-injected-should-match-factory-parameters`](./src/docs/rules/provided-injected-should-match-factory-parameters.md) | ✅ |
|
|
29
|
+
| | [`injectable-should-be-provided`](./src/docs/rules/injectable-should-be-provided.md) | ✅ |
|
|
30
30
|
| | | |
|
|
31
|
-
| Nest Swagger | [`api-property-matches-property-optionality`](./src/docs/rules/api-property-matches-property-optionality.md) |
|
|
32
|
-
| | [`controllers-should-supply-api-tags`](./src/docs/rules/controllers-should-supply-api-tags.md) |
|
|
33
|
-
| | [`api-method-should-specify-api-response`](./src/docs/rules/api-method-should-specify-api-response.md) |
|
|
34
|
-
| | [`api-method-should-specify-api-operation`](./src/docs/rules/api-method-should-specify-api-operation.md) |
|
|
35
|
-
| | [`api-enum-property-best-practices`](./src/docs/rules/api-enum-property-best-practices.md) |
|
|
36
|
-
| | [`api-property-returning-array-should-set-array`](./src/docs/rules/api-property-returning-array-should-set-array.md) |
|
|
31
|
+
| Nest Swagger | [`api-property-matches-property-optionality`](./src/docs/rules/api-property-matches-property-optionality.md) | ✅ |
|
|
32
|
+
| | [`controllers-should-supply-api-tags`](./src/docs/rules/controllers-should-supply-api-tags.md) | ✅ |
|
|
33
|
+
| | [`api-method-should-specify-api-response`](./src/docs/rules/api-method-should-specify-api-response.md) | ✅ |
|
|
34
|
+
| | [`api-method-should-specify-api-operation`](./src/docs/rules/api-method-should-specify-api-operation.md) | ✅ |
|
|
35
|
+
| | [`api-enum-property-best-practices`](./src/docs/rules/api-enum-property-best-practices.md) | ✅ |
|
|
36
|
+
| | [`api-property-returning-array-should-set-array`](./src/docs/rules/api-property-returning-array-should-set-array.md) | ✅ |
|
|
37
37
|
| | | |
|
|
38
|
-
| Preventing bugs | [`param-decorator-name-matches-route-param`](./src/docs/rules/param-decorator-name-matches-route-param.md) |
|
|
39
|
-
| | [`validate-nested-of-array-should-set-each`](./src/docs/rules/validate-nested-of-array-should-set-each.md) |
|
|
40
|
-
| | [`validated-non-primitive-property-needs-type-decorator`](./src/docs/rules/validated-non-primitive-property-needs-type-decorator.md) |
|
|
41
|
-
| | [`all-properties-are-whitelisted`](./src/docs/rules/all-properties-are-whitelisted.md) |
|
|
42
|
-
| | [`all-properties-have-explicit-defined`](./src/docs/rules/all-properties-have-explicit-defined.md) |
|
|
43
|
-
| | [`no-duplicate-decorators`](./src/docs/rules/no-duplicate-decorators.md) |
|
|
38
|
+
| Preventing bugs | [`param-decorator-name-matches-route-param`](./src/docs/rules/param-decorator-name-matches-route-param.md) | ✅ |
|
|
39
|
+
| | [`validate-nested-of-array-should-set-each`](./src/docs/rules/validate-nested-of-array-should-set-each.md) | ✅ |
|
|
40
|
+
| | [`validated-non-primitive-property-needs-type-decorator`](./src/docs/rules/validated-non-primitive-property-needs-type-decorator.md) | ✅ |
|
|
41
|
+
| | [`all-properties-are-whitelisted`](./src/docs/rules/all-properties-are-whitelisted.md) | ✅ |
|
|
42
|
+
| | [`all-properties-have-explicit-defined`](./src/docs/rules/all-properties-have-explicit-defined.md) | ✅ |
|
|
43
|
+
| | [`no-duplicate-decorators`](./src/docs/rules/no-duplicate-decorators.md) | ✅ |
|
|
44
|
+
| | [`should-specify-forbid-unknown-values`](./src/docs/rules/should-specify-forbid-unknown-values.md) | ✅ |
|
|
44
45
|
| | | |
|
|
45
|
-
| Security | [`
|
|
46
|
-
| | [`api-methods-should-be-guarded`](./src/docs/rules/api-methods-should-be-guarded.md) | N |
|
|
46
|
+
| Security | [`api-methods-should-be-guarded`](./src/docs/rules/api-methods-should-be-guarded.md) | ❌ |
|
|
47
47
|
| | | |
|
|
48
|
-
| Code Consistency | [`sort-module-metadata-arrays`](./src/docs/rules/sort-module-metadata-arrays.md) |
|
|
48
|
+
| Code Consistency | [`sort-module-metadata-arrays`](./src/docs/rules/sort-module-metadata-arrays.md) | ❌ |
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
49
52
|
|
|
50
53
|
The "recommended" ruleset are the default rules that are turned on when you configure the plugin as described in this document.
|
|
51
54
|
|
|
52
|
-
The name "recommended" is an eslint convention
|
|
55
|
+
The name "recommended" is an eslint convention, you can safely use the rules not in that list, they are just more opinionated.
|
|
53
56
|
|
|
54
57
|
## Who is this package for?
|
|
55
58
|
|
package/dist/rules/validateNonPrimitiveNeedsTypeDecorator/validateNonPrimitiveNeedsDecorators.js
CHANGED
|
@@ -11,6 +11,9 @@ const primitiveTypes = new Set([
|
|
|
11
11
|
utils_1.AST_NODE_TYPES.TSNumberKeyword,
|
|
12
12
|
utils_1.AST_NODE_TYPES.TSLiteralType,
|
|
13
13
|
utils_1.AST_NODE_TYPES.TSNullKeyword,
|
|
14
|
+
utils_1.AST_NODE_TYPES.TSUnknownKeyword,
|
|
15
|
+
utils_1.AST_NODE_TYPES.TSAnyKeyword,
|
|
16
|
+
utils_1.AST_NODE_TYPES.TSObjectKeyword,
|
|
14
17
|
]);
|
|
15
18
|
const shouldTrigger = () => {
|
|
16
19
|
return true;
|
|
@@ -202,4 +205,4 @@ const rule = (0, createRule_1.createRule)({
|
|
|
202
205
|
},
|
|
203
206
|
});
|
|
204
207
|
exports.default = rule;
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
208
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGVOb25QcmltaXRpdmVOZWVkc0RlY29yYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcnVsZXMvdmFsaWRhdGVOb25QcmltaXRpdmVOZWVkc1R5cGVEZWNvcmF0b3IvdmFsaWRhdGVOb25QcmltaXRpdmVOZWVkc0RlY29yYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0RBQWtEO0FBQ2xELG9EQUErRTtBQUMvRSx1REFBa0Q7QUFDbEQscUVBQWdFO0FBR2hFLE1BQU0sY0FBYyxHQUFHLElBQUksR0FBRyxDQUFDO0lBQzNCLHNCQUFjLENBQUMsZUFBZTtJQUM5QixzQkFBYyxDQUFDLGdCQUFnQjtJQUMvQixzQkFBYyxDQUFDLGVBQWU7SUFDOUIsc0JBQWMsQ0FBQyxhQUFhO0lBQzVCLHNCQUFjLENBQUMsYUFBYTtJQUM1QixzQkFBYyxDQUFDLGdCQUFnQjtJQUMvQixzQkFBYyxDQUFDLFlBQVk7SUFDM0Isc0JBQWMsQ0FBQyxlQUFlO0NBQ2pDLENBQUMsQ0FBQztBQU9JLE1BQU0sYUFBYSxHQUFHLEdBQVksRUFBRTtJQUN2QyxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDLENBQUM7QUFGVyxRQUFBLGFBQWEsaUJBRXhCO0FBRUYsTUFBTSxJQUFJLEdBQUcsSUFBQSx1QkFBVSxFQUdyQjtJQUNFLElBQUksRUFBRSx1REFBdUQ7SUFDN0QsSUFBSSxFQUFFO1FBQ0YsSUFBSSxFQUFFO1lBQ0YsV0FBVyxFQUNQLGdGQUFnRjtZQUNwRixvQkFBb0IsRUFBRSxLQUFLO1NBQzlCO1FBQ0QsUUFBUSxFQUFFO1lBQ04sd0JBQXdCLEVBQ3BCLHdFQUF3RTtZQUM1RSxzQkFBc0IsRUFDbEIsOEpBQThKO1NBQ3JLO1FBQ0QsTUFBTSxFQUFFO1lBQ0o7Z0JBQ0ksSUFBSSxFQUFFLFFBQStCO2dCQUNyQyxVQUFVLEVBQUU7b0JBQ1Isd0JBQXdCLEVBQUU7d0JBQ3RCLFdBQVcsRUFDUCxzRUFBc0U7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
|