@enormora/eslint-config-zod 0.0.2 → 0.0.3
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/package.json +5 -6
- package/plugins/enormora-zod/enormora-zod-plugin.js +0 -2
- package/plugins/enormora-zod/enormora-zod-plugin.js.map +1 -1
- package/presets/zod/zod.js +5 -14
- package/presets/zod/zod.js.map +1 -1
- package/sbom.cdx.json +25 -25
- package/plugins/enormora-zod/no-unnecessary-readonly-schema.js +0 -89
- package/plugins/enormora-zod/no-unnecessary-readonly-schema.js.map +0 -1
package/package.json
CHANGED
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
}
|
|
8
8
|
],
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"@typescript-eslint/utils": "8.
|
|
11
|
-
"eslint-plugin-zod-core": "1.0.
|
|
12
|
-
"eslint-plugin-zod-mini": "1.
|
|
10
|
+
"@typescript-eslint/utils": "8.64.0",
|
|
11
|
+
"eslint-plugin-zod-core": "1.0.8",
|
|
12
|
+
"eslint-plugin-zod-mini": "1.5.0"
|
|
13
13
|
},
|
|
14
14
|
"description": "Enormora’s ESLint Zod configuration enforcing Zod Mini and Zod core",
|
|
15
15
|
"exports": {
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"license": "MIT",
|
|
21
21
|
"name": "@enormora/eslint-config-zod",
|
|
22
22
|
"peerDependencies": {
|
|
23
|
-
"@enormora/eslint-config-base": "0.0.
|
|
23
|
+
"@enormora/eslint-config-base": "0.0.52",
|
|
24
24
|
"eslint": "^10.0.0"
|
|
25
25
|
},
|
|
26
26
|
"repository": {
|
|
@@ -28,11 +28,10 @@
|
|
|
28
28
|
"url": "git://github.com/enormora/eslint-config.git"
|
|
29
29
|
},
|
|
30
30
|
"sideEffects": [
|
|
31
|
-
"./plugins/enormora-zod/no-unnecessary-readonly-schema.js",
|
|
32
31
|
"./plugins/enormora-zod/require-readonly-schema.js",
|
|
33
32
|
"./presets/zod/zod.js",
|
|
34
33
|
"./rule-sets/restricted-imports.js"
|
|
35
34
|
],
|
|
36
35
|
"type": "module",
|
|
37
|
-
"version": "0.0.
|
|
36
|
+
"version": "0.0.3"
|
|
38
37
|
}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import { noUnnecessaryReadonlySchemaRule } from "./no-unnecessary-readonly-schema.js";
|
|
2
1
|
import { requireReadonlySchemaRule } from "./require-readonly-schema.js";
|
|
3
2
|
export const enormoraZodPlugin = {
|
|
4
3
|
rules: {
|
|
5
|
-
'no-unnecessary-readonly-schema': noUnnecessaryReadonlySchemaRule,
|
|
6
4
|
'require-readonly-schema': requireReadonlySchemaRule
|
|
7
5
|
}
|
|
8
6
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enormora-zod-plugin.js","sourceRoot":"","sources":["../../../../../configs/plugins/enormora-zod/enormora-zod-plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE
|
|
1
|
+
{"version":3,"file":"enormora-zod-plugin.js","sourceRoot":"","sources":["../../../../../configs/plugins/enormora-zod/enormora-zod-plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAMzE,MAAM,CAAC,MAAM,iBAAiB,GAAsB;IAChD,KAAK,EAAE;QACH,yBAAyB,EAAE,yBAAuD;KACrF;CACJ,CAAC"}
|
package/presets/zod/zod.js
CHANGED
|
@@ -19,18 +19,8 @@ const noNativeEnumSchemaRestriction = {
|
|
|
19
19
|
selector: "CallExpression[callee.object.name='z'][callee.property.name='nativeEnum']",
|
|
20
20
|
message: 'Use a union of z.literal() schemas instead of z.nativeEnum().'
|
|
21
21
|
};
|
|
22
|
-
const lengthCheckedArraySelector = [
|
|
23
|
-
"CallExpression[callee.property.name='check']",
|
|
24
|
-
"[callee.object.callee.object.name='z'][callee.object.callee.property.name='array']",
|
|
25
|
-
":has(> CallExpression[callee.object.name='z'][callee.property.name=/^(minLength|maxLength|length)$/])"
|
|
26
|
-
]
|
|
27
|
-
.join('');
|
|
28
|
-
const noLengthCheckedArraySchemaRestriction = {
|
|
29
|
-
selector: lengthCheckedArraySelector,
|
|
30
|
-
message: 'Use z.tuple() instead of a z.array() with a length check.'
|
|
31
|
-
};
|
|
32
22
|
const restrictedImportsWrappers = createRestrictedImportsPlugin(['no-regular-zod-import']);
|
|
33
|
-
const restrictedSyntaxWrappers = createRestrictedSyntaxPlugin(['no-enum-schema', 'no-native-enum-schema'
|
|
23
|
+
const restrictedSyntaxWrappers = createRestrictedSyntaxPlugin(['no-enum-schema', 'no-native-enum-schema'], {});
|
|
34
24
|
export const zodConfig = {
|
|
35
25
|
plugins: {
|
|
36
26
|
'zod-mini': zodMiniPlugin,
|
|
@@ -47,24 +37,25 @@ export const zodConfig = {
|
|
|
47
37
|
'zod-mini/consistent-schema-var-name': 'error',
|
|
48
38
|
'zod-mini/no-any-schema': 'error',
|
|
49
39
|
'zod-mini/no-coerce-boolean': 'error',
|
|
40
|
+
'zod-mini/no-conflicting-checks': 'error',
|
|
50
41
|
'zod-mini/no-duplicate-schema-methods': 'error',
|
|
51
42
|
'zod-mini/no-empty-custom-schema': 'error',
|
|
52
43
|
'zod-mini/no-throw-in-refine': 'error',
|
|
53
44
|
'zod-mini/no-transform-in-record-key': 'error',
|
|
54
45
|
'zod-mini/no-unknown-schema': 'off',
|
|
46
|
+
'zod-mini/no-unnecessary-readonly': 'error',
|
|
55
47
|
'zod-mini/prefer-enum-over-literal-union': 'off',
|
|
56
48
|
'zod-mini/prefer-meta': 'error',
|
|
49
|
+
'zod-mini/prefer-tuple-over-array-length': 'error',
|
|
57
50
|
'zod-mini/require-brand-type-parameter': 'error',
|
|
58
51
|
'zod-mini/require-error-message': 'error',
|
|
59
52
|
'zod-mini/schema-error-property-style': 'off',
|
|
60
53
|
'zod-core/consistent-import': ['error', { syntax: 'named' }],
|
|
61
54
|
'zod-core/consistent-schema-output-type-style': ['error', { style: 'output' }],
|
|
62
55
|
'enormora-zod/require-readonly-schema': 'error',
|
|
63
|
-
'enormora-zod/no-unnecessary-readonly-schema': 'error',
|
|
64
56
|
'restricted-imports/no-regular-zod-import': ['error', regularZodImportRestriction],
|
|
65
57
|
'restricted-syntax-zod/no-enum-schema': ['error', noEnumSchemaRestriction],
|
|
66
|
-
'restricted-syntax-zod/no-native-enum-schema': ['error', noNativeEnumSchemaRestriction]
|
|
67
|
-
'restricted-syntax-zod/no-length-checked-array-schema': ['error', noLengthCheckedArraySchemaRestriction]
|
|
58
|
+
'restricted-syntax-zod/no-native-enum-schema': ['error', noNativeEnumSchemaRestriction]
|
|
68
59
|
}
|
|
69
60
|
};
|
|
70
61
|
//# sourceMappingURL=zod.js.map
|
package/presets/zod/zod.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zod.js","sourceRoot":"","sources":["../../../../../configs/presets/zod/zod.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,wBAAwB,CAAC;AACnD,OAAO,aAAa,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AACtF,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAEpF,MAAM,uBAAuB,GAAG,sCAAsC,CAAC;AAEvE,MAAM,2BAA2B,GAAG;IAChC,KAAK,EAAE;QACH,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,uBAAuB,EAAE;QACjD,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,uBAAuB,EAAE;QACpD,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,uBAAuB,EAAE;KACvD;CACJ,CAAC;AAEF,MAAM,uBAAuB,GAAG;IAC5B,QAAQ,EAAE,qEAAqE;IAC/E,OAAO,EAAE,yDAAyD;CACrE,CAAC;AAEF,MAAM,6BAA6B,GAAG;IAClC,QAAQ,EAAE,2EAA2E;IACrF,OAAO,EAAE,+DAA+D;CAC3E,CAAC;AAEF,MAAM,
|
|
1
|
+
{"version":3,"file":"zod.js","sourceRoot":"","sources":["../../../../../configs/presets/zod/zod.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,wBAAwB,CAAC;AACnD,OAAO,aAAa,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AACtF,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAEpF,MAAM,uBAAuB,GAAG,sCAAsC,CAAC;AAEvE,MAAM,2BAA2B,GAAG;IAChC,KAAK,EAAE;QACH,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,uBAAuB,EAAE;QACjD,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,uBAAuB,EAAE;QACpD,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,uBAAuB,EAAE;KACvD;CACJ,CAAC;AAEF,MAAM,uBAAuB,GAAG;IAC5B,QAAQ,EAAE,qEAAqE;IAC/E,OAAO,EAAE,yDAAyD;CACrE,CAAC;AAEF,MAAM,6BAA6B,GAAG;IAClC,QAAQ,EAAE,2EAA2E;IACrF,OAAO,EAAE,+DAA+D;CAC3E,CAAC;AAEF,MAAM,yBAAyB,GAAG,6BAA6B,CAAC,CAAE,uBAAuB,CAAE,CAAC,CAAC;AAC7F,MAAM,wBAAwB,GAAG,4BAA4B,CACzD,CAAE,gBAAgB,EAAE,uBAAuB,CAAE,EAC7C,EAAE,CACL,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG;IACrB,OAAO,EAAE;QACL,UAAU,EAAE,aAA8B;QAC1C,UAAU,EAAE,aAA8B;QAC1C,cAAc,EAAE,iBAAiB;QACjC,oBAAoB,EAAE,yBAAyB;QAC/C,uBAAuB,EAAE,wBAAwB;KACpD;IACD,KAAK,EAAE;QACH,4BAA4B,EAAE,CAAE,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAE;QAC9D,mCAAmC,EAAE,CAAE,OAAO,EAAE,EAAE,OAAO,EAAE,CAAE,UAAU,CAAE,EAAE,CAAE;QAC7E,wCAAwC,EAAE,KAAK;QAC/C,8CAA8C,EAAE,CAAE,OAAO,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAE;QAChF,qCAAqC,EAAE,OAAO;QAC9C,wBAAwB,EAAE,OAAO;QACjC,4BAA4B,EAAE,OAAO;QACrC,gCAAgC,EAAE,OAAO;QACzC,sCAAsC,EAAE,OAAO;QAC/C,iCAAiC,EAAE,OAAO;QAC1C,6BAA6B,EAAE,OAAO;QACtC,qCAAqC,EAAE,OAAO;QAC9C,4BAA4B,EAAE,KAAK;QACnC,kCAAkC,EAAE,OAAO;QAC3C,yCAAyC,EAAE,KAAK;QAChD,sBAAsB,EAAE,OAAO;QAC/B,yCAAyC,EAAE,OAAO;QAClD,uCAAuC,EAAE,OAAO;QAChD,gCAAgC,EAAE,OAAO;QACzC,sCAAsC,EAAE,KAAK;QAE7C,4BAA4B,EAAE,CAAE,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAE;QAC9D,8CAA8C,EAAE,CAAE,OAAO,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAE;QAEhF,sCAAsC,EAAE,OAAO;QAE/C,0CAA0C,EAAE,CAAE,OAAO,EAAE,2BAA2B,CAAE;QAEpF,sCAAsC,EAAE,CAAE,OAAO,EAAE,uBAAuB,CAAE;QAC5E,6CAA6C,EAAE,CAAE,OAAO,EAAE,6BAA6B,CAAE;KAC5F;CACJ,CAAC"}
|
package/sbom.cdx.json
CHANGED
|
@@ -9,70 +9,70 @@
|
|
|
9
9
|
{
|
|
10
10
|
"type": "application",
|
|
11
11
|
"name": "packtory",
|
|
12
|
-
"version": "0.0.
|
|
12
|
+
"version": "0.0.67"
|
|
13
13
|
}
|
|
14
14
|
]
|
|
15
15
|
},
|
|
16
16
|
"component": {
|
|
17
17
|
"type": "library",
|
|
18
18
|
"name": "@enormora/eslint-config-zod",
|
|
19
|
-
"version": "0.0.
|
|
20
|
-
"bom-ref": "pkg:npm/@enormora/eslint-config-zod@0.0.
|
|
21
|
-
"purl": "pkg:npm/@enormora/eslint-config-zod@0.0.
|
|
19
|
+
"version": "0.0.3",
|
|
20
|
+
"bom-ref": "pkg:npm/@enormora/eslint-config-zod@0.0.3",
|
|
21
|
+
"purl": "pkg:npm/@enormora/eslint-config-zod@0.0.3"
|
|
22
22
|
}
|
|
23
23
|
},
|
|
24
24
|
"components": [
|
|
25
25
|
{
|
|
26
26
|
"type": "library",
|
|
27
27
|
"name": "@enormora/eslint-config-base",
|
|
28
|
-
"version": "0.0.
|
|
29
|
-
"bom-ref": "pkg:npm/@enormora/eslint-config-base@0.0.
|
|
28
|
+
"version": "0.0.52",
|
|
29
|
+
"bom-ref": "pkg:npm/@enormora/eslint-config-base@0.0.52",
|
|
30
30
|
"scope": "optional",
|
|
31
31
|
"licenses": [
|
|
32
32
|
{
|
|
33
33
|
"expression": "MIT"
|
|
34
34
|
}
|
|
35
35
|
],
|
|
36
|
-
"purl": "pkg:npm/@enormora/eslint-config-base@0.0.
|
|
36
|
+
"purl": "pkg:npm/@enormora/eslint-config-base@0.0.52"
|
|
37
37
|
},
|
|
38
38
|
{
|
|
39
39
|
"type": "library",
|
|
40
40
|
"name": "@typescript-eslint/utils",
|
|
41
|
-
"version": "8.
|
|
42
|
-
"bom-ref": "pkg:npm/@typescript-eslint/utils@8.
|
|
41
|
+
"version": "8.64.0",
|
|
42
|
+
"bom-ref": "pkg:npm/@typescript-eslint/utils@8.64.0",
|
|
43
43
|
"scope": "required",
|
|
44
44
|
"licenses": [
|
|
45
45
|
{
|
|
46
46
|
"expression": "MIT"
|
|
47
47
|
}
|
|
48
48
|
],
|
|
49
|
-
"purl": "pkg:npm/@typescript-eslint/utils@8.
|
|
49
|
+
"purl": "pkg:npm/@typescript-eslint/utils@8.64.0"
|
|
50
50
|
},
|
|
51
51
|
{
|
|
52
52
|
"type": "library",
|
|
53
53
|
"name": "eslint-plugin-zod-core",
|
|
54
|
-
"version": "1.0.
|
|
55
|
-
"bom-ref": "pkg:npm/eslint-plugin-zod-core@1.0.
|
|
54
|
+
"version": "1.0.8",
|
|
55
|
+
"bom-ref": "pkg:npm/eslint-plugin-zod-core@1.0.8",
|
|
56
56
|
"scope": "required",
|
|
57
57
|
"licenses": [
|
|
58
58
|
{
|
|
59
59
|
"expression": "MIT"
|
|
60
60
|
}
|
|
61
61
|
],
|
|
62
|
-
"purl": "pkg:npm/eslint-plugin-zod-core@1.0.
|
|
62
|
+
"purl": "pkg:npm/eslint-plugin-zod-core@1.0.8"
|
|
63
63
|
},
|
|
64
64
|
{
|
|
65
65
|
"type": "library",
|
|
66
66
|
"name": "eslint-plugin-zod-mini",
|
|
67
|
-
"version": "1.
|
|
68
|
-
"bom-ref": "pkg:npm/eslint-plugin-zod-mini@1.
|
|
67
|
+
"version": "1.5.0",
|
|
68
|
+
"bom-ref": "pkg:npm/eslint-plugin-zod-mini@1.5.0",
|
|
69
69
|
"scope": "required",
|
|
70
70
|
"licenses": [
|
|
71
71
|
{
|
|
72
72
|
"expression": "MIT"
|
|
73
73
|
}
|
|
74
74
|
],
|
|
75
|
-
"purl": "pkg:npm/eslint-plugin-zod-mini@1.
|
|
75
|
+
"purl": "pkg:npm/eslint-plugin-zod-mini@1.5.0"
|
|
76
76
|
},
|
|
77
77
|
{
|
|
78
78
|
"type": "library",
|
|
@@ -90,26 +90,26 @@
|
|
|
90
90
|
],
|
|
91
91
|
"dependencies": [
|
|
92
92
|
{
|
|
93
|
-
"ref": "pkg:npm/@enormora/eslint-config-base@0.0.
|
|
93
|
+
"ref": "pkg:npm/@enormora/eslint-config-base@0.0.52"
|
|
94
94
|
},
|
|
95
95
|
{
|
|
96
|
-
"ref": "pkg:npm/@enormora/eslint-config-zod@0.0.
|
|
96
|
+
"ref": "pkg:npm/@enormora/eslint-config-zod@0.0.3",
|
|
97
97
|
"dependsOn": [
|
|
98
|
-
"pkg:npm/@enormora/eslint-config-base@0.0.
|
|
99
|
-
"pkg:npm/@typescript-eslint/utils@8.
|
|
100
|
-
"pkg:npm/eslint-plugin-zod-core@1.0.
|
|
101
|
-
"pkg:npm/eslint-plugin-zod-mini@1.
|
|
98
|
+
"pkg:npm/@enormora/eslint-config-base@0.0.52",
|
|
99
|
+
"pkg:npm/@typescript-eslint/utils@8.64.0",
|
|
100
|
+
"pkg:npm/eslint-plugin-zod-core@1.0.8",
|
|
101
|
+
"pkg:npm/eslint-plugin-zod-mini@1.5.0",
|
|
102
102
|
"pkg:npm/eslint@%5E10.0.0"
|
|
103
103
|
]
|
|
104
104
|
},
|
|
105
105
|
{
|
|
106
|
-
"ref": "pkg:npm/@typescript-eslint/utils@8.
|
|
106
|
+
"ref": "pkg:npm/@typescript-eslint/utils@8.64.0"
|
|
107
107
|
},
|
|
108
108
|
{
|
|
109
|
-
"ref": "pkg:npm/eslint-plugin-zod-core@1.0.
|
|
109
|
+
"ref": "pkg:npm/eslint-plugin-zod-core@1.0.8"
|
|
110
110
|
},
|
|
111
111
|
{
|
|
112
|
-
"ref": "pkg:npm/eslint-plugin-zod-mini@1.
|
|
112
|
+
"ref": "pkg:npm/eslint-plugin-zod-mini@1.5.0"
|
|
113
113
|
},
|
|
114
114
|
{
|
|
115
115
|
"ref": "pkg:npm/eslint@%5E10.0.0"
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { AST_NODE_TYPES, ESLintUtils } from '@typescript-eslint/utils';
|
|
2
|
-
function ruleUrl(ruleName) {
|
|
3
|
-
return `https://github.com/enormora/eslint-config/blob/main/configs/plugins/enormora-zod/${ruleName}.ts`;
|
|
4
|
-
}
|
|
5
|
-
const { RuleCreator: ruleCreator } = ESLintUtils;
|
|
6
|
-
const buildRule = ruleCreator(ruleUrl);
|
|
7
|
-
const zodNamespace = 'z';
|
|
8
|
-
const readonlyFactory = 'readonly';
|
|
9
|
-
const immutableSchemaFactories = new Set([
|
|
10
|
-
'string',
|
|
11
|
-
'number',
|
|
12
|
-
'boolean',
|
|
13
|
-
'bigint',
|
|
14
|
-
'symbol',
|
|
15
|
-
'date',
|
|
16
|
-
'literal',
|
|
17
|
-
'int',
|
|
18
|
-
'null',
|
|
19
|
-
'undefined',
|
|
20
|
-
'void',
|
|
21
|
-
'any',
|
|
22
|
-
'unknown',
|
|
23
|
-
'never',
|
|
24
|
-
'nan',
|
|
25
|
-
'enum',
|
|
26
|
-
'nativeEnum'
|
|
27
|
-
]);
|
|
28
|
-
function getZodFactoryName(node) {
|
|
29
|
-
const { callee } = node;
|
|
30
|
-
if (callee.type !== AST_NODE_TYPES.MemberExpression || callee.computed) {
|
|
31
|
-
return undefined;
|
|
32
|
-
}
|
|
33
|
-
const { object, property } = callee;
|
|
34
|
-
if (object.type !== AST_NODE_TYPES.Identifier || object.name !== zodNamespace) {
|
|
35
|
-
return undefined;
|
|
36
|
-
}
|
|
37
|
-
if (property.type !== AST_NODE_TYPES.Identifier) {
|
|
38
|
-
return undefined;
|
|
39
|
-
}
|
|
40
|
-
return property.name;
|
|
41
|
-
}
|
|
42
|
-
function isAlreadyImmutable(node) {
|
|
43
|
-
if (node.type !== AST_NODE_TYPES.CallExpression) {
|
|
44
|
-
return false;
|
|
45
|
-
}
|
|
46
|
-
const factory = getZodFactoryName(node);
|
|
47
|
-
if (factory === undefined) {
|
|
48
|
-
return false;
|
|
49
|
-
}
|
|
50
|
-
return immutableSchemaFactories.has(factory) || factory === readonlyFactory;
|
|
51
|
-
}
|
|
52
|
-
const description = 'Disallow `z.readonly()` on schemas whose type is already immutable — primitives ' +
|
|
53
|
-
'(`z.string`, `z.number`, `z.literal`, `z.enum`, …) and already-readonly schemas — where the ' +
|
|
54
|
-
'wrapper has no effect on the inferred type.';
|
|
55
|
-
export const noUnnecessaryReadonlySchemaRule = buildRule({
|
|
56
|
-
name: 'no-unnecessary-readonly-schema',
|
|
57
|
-
meta: {
|
|
58
|
-
type: 'suggestion',
|
|
59
|
-
fixable: 'code',
|
|
60
|
-
docs: { description },
|
|
61
|
-
messages: {
|
|
62
|
-
unnecessaryReadonly: 'Unnecessary z.readonly() on an already-immutable schema; remove it.'
|
|
63
|
-
},
|
|
64
|
-
schema: []
|
|
65
|
-
},
|
|
66
|
-
defaultOptions: [],
|
|
67
|
-
create(context) {
|
|
68
|
-
const { sourceCode } = context;
|
|
69
|
-
return {
|
|
70
|
-
CallExpression(node) {
|
|
71
|
-
if (getZodFactoryName(node) !== readonlyFactory) {
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
const [argument] = node.arguments;
|
|
75
|
-
if (argument === undefined || !isAlreadyImmutable(argument)) {
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
context.report({
|
|
79
|
-
node,
|
|
80
|
-
messageId: 'unnecessaryReadonly',
|
|
81
|
-
fix(fixer) {
|
|
82
|
-
return fixer.replaceText(node, sourceCode.getText(argument));
|
|
83
|
-
}
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
//# sourceMappingURL=no-unnecessary-readonly-schema.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"no-unnecessary-readonly-schema.js","sourceRoot":"","sources":["../../../../../configs/plugins/enormora-zod/no-unnecessary-readonly-schema.ts"],"names":[],"mappings":"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"}
|