eslint-plugin-zod-mini 1.7.0 → 1.9.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 CHANGED
@@ -50,6 +50,7 @@ Find out more about [Oxlint's `jsPLugins`](https://oxc.rs/docs/guide/usage/linte
50
50
  | [no-unknown-schema](docs/rules/no-unknown-schema.md) | Disallow usage of `z.unknown()` in Zod Mini schemas | | | |
51
51
  | [no-unnecessary-readonly](docs/rules/no-unnecessary-readonly.md) | Disallow `z.readonly()` on schemas whose output is already immutable | | 🔧 | |
52
52
  | [prefer-enum-over-literal-union](docs/rules/prefer-enum-over-literal-union.md) | Prefer `z.enum()` over `z.union()` when all members are string literals. | ✅ | 🔧 | |
53
+ | [prefer-map-set-size-over-min-max](docs/rules/prefer-map-set-size-over-min-max.md) | Prefer `z.size(n)` over `z.minSize(n)` and `z.maxSize(n)` with the same value on a set or map schema | | 🔧 | |
53
54
  | [prefer-meta](docs/rules/prefer-meta.md) | Enforce usage of `z.meta()` over `z.describe()` | ✅ | 🔧 | |
54
55
  | [prefer-nullish](docs/rules/prefer-nullish.md) | Enforce `z.nullish()` instead of combining `z.optional()` and `z.nullable()` | ✅ | 🔧 | |
55
56
  | [prefer-string-length-over-min-max](docs/rules/prefer-string-length-over-min-max.md) | Prefer `z.length(n)` over `z.minLength(n)` and `z.maxLength(n)` with the same value on a string schema | | 🔧 | |
package/dist/index.cjs CHANGED
@@ -16,6 +16,7 @@ const require_no_transform_in_record_key = require("./rules/no-transform-in-reco
16
16
  const require_no_unknown_schema = require("./rules/no-unknown-schema.cjs");
17
17
  const require_no_unnecessary_readonly = require("./rules/no-unnecessary-readonly.cjs");
18
18
  const require_prefer_enum_over_literal_union = require("./rules/prefer-enum-over-literal-union.cjs");
19
+ const require_prefer_map_set_size_over_min_max = require("./rules/prefer-map-set-size-over-min-max.cjs");
19
20
  const require_prefer_meta = require("./rules/prefer-meta.cjs");
20
21
  const require_prefer_nullish = require("./rules/prefer-nullish.cjs");
21
22
  const require_prefer_string_length_over_min_max = require("./rules/prefer-string-length-over-min-max.cjs");
@@ -47,6 +48,7 @@ const eslintPluginZodMini = {
47
48
  "no-unknown-schema": require_no_unknown_schema.noUnknownSchema,
48
49
  "no-unnecessary-readonly": require_no_unnecessary_readonly.noUnnecessaryReadonly,
49
50
  "prefer-enum-over-literal-union": require_prefer_enum_over_literal_union.preferEnumOverLiteralUnion,
51
+ "prefer-map-set-size-over-min-max": require_prefer_map_set_size_over_min_max.preferMapSetSizeOverMinMax,
50
52
  "prefer-meta": require_prefer_meta.preferMeta,
51
53
  "prefer-nullish": require_prefer_nullish.preferNullish,
52
54
  "prefer-string-length-over-min-max": require_prefer_string_length_over_min_max.preferStringLengthOverMinMax,
package/dist/index.mjs CHANGED
@@ -16,6 +16,7 @@ import { noTransformInRecordKey } from "./rules/no-transform-in-record-key.mjs";
16
16
  import { noUnknownSchema } from "./rules/no-unknown-schema.mjs";
17
17
  import { noUnnecessaryReadonly } from "./rules/no-unnecessary-readonly.mjs";
18
18
  import { preferEnumOverLiteralUnion } from "./rules/prefer-enum-over-literal-union.mjs";
19
+ import { preferMapSetSizeOverMinMax } from "./rules/prefer-map-set-size-over-min-max.mjs";
19
20
  import { preferMeta } from "./rules/prefer-meta.mjs";
20
21
  import { preferNullish } from "./rules/prefer-nullish.mjs";
21
22
  import { preferStringLengthOverMinMax } from "./rules/prefer-string-length-over-min-max.mjs";
@@ -47,6 +48,7 @@ const eslintPluginZodMini = {
47
48
  "no-unknown-schema": noUnknownSchema,
48
49
  "no-unnecessary-readonly": noUnnecessaryReadonly,
49
50
  "prefer-enum-over-literal-union": preferEnumOverLiteralUnion,
51
+ "prefer-map-set-size-over-min-max": preferMapSetSizeOverMinMax,
50
52
  "prefer-meta": preferMeta,
51
53
  "prefer-nullish": preferNullish,
52
54
  "prefer-string-length-over-min-max": preferStringLengthOverMinMax,
@@ -0,0 +1,23 @@
1
+ const require_create_plugin_rule = require("../utils/create-plugin-rule.cjs");
2
+ let _eslint_zod_utils = require("@eslint-zod/utils");
3
+ let _eslint_zod_utils_rule_patterns_collapse_equal_bounds = require("@eslint-zod/utils/rule-patterns/collapse-equal-bounds");
4
+ //#region src/rules/prefer-map-set-size-over-min-max.ts
5
+ const preferMapSetSizeOverMinMax = require_create_plugin_rule.createZodMiniPluginRule({
6
+ name: "prefer-map-set-size-over-min-max",
7
+ meta: {
8
+ type: "suggestion",
9
+ fixable: "code",
10
+ docs: { description: "Prefer `z.size(n)` over `z.minSize(n)` and `z.maxSize(n)` with the same value on a set or map schema" },
11
+ messages: { preferMapSetSize: "Use `z.size(n)` instead of `z.minSize(n)` and `z.maxSize(n)` with the same value." },
12
+ schema: []
13
+ },
14
+ defaultOptions: [],
15
+ create: (0, _eslint_zod_utils_rule_patterns_collapse_equal_bounds.buildCollapseEqualBoundsCreate)({
16
+ scope: _eslint_zod_utils.zodMiniImportScope,
17
+ baseTypes: ["set", "map"],
18
+ domain: "size",
19
+ messageId: "preferMapSetSize"
20
+ })
21
+ });
22
+ //#endregion
23
+ exports.preferMapSetSizeOverMinMax = preferMapSetSizeOverMinMax;
@@ -0,0 +1,23 @@
1
+ import { createZodMiniPluginRule } from "../utils/create-plugin-rule.mjs";
2
+ import { zodMiniImportScope } from "@eslint-zod/utils";
3
+ import { buildCollapseEqualBoundsCreate } from "@eslint-zod/utils/rule-patterns/collapse-equal-bounds";
4
+ //#region src/rules/prefer-map-set-size-over-min-max.ts
5
+ const preferMapSetSizeOverMinMax = createZodMiniPluginRule({
6
+ name: "prefer-map-set-size-over-min-max",
7
+ meta: {
8
+ type: "suggestion",
9
+ fixable: "code",
10
+ docs: { description: "Prefer `z.size(n)` over `z.minSize(n)` and `z.maxSize(n)` with the same value on a set or map schema" },
11
+ messages: { preferMapSetSize: "Use `z.size(n)` instead of `z.minSize(n)` and `z.maxSize(n)` with the same value." },
12
+ schema: []
13
+ },
14
+ defaultOptions: [],
15
+ create: buildCollapseEqualBoundsCreate({
16
+ scope: zodMiniImportScope,
17
+ baseTypes: ["set", "map"],
18
+ domain: "size",
19
+ messageId: "preferMapSetSize"
20
+ })
21
+ });
22
+ //#endregion
23
+ export { preferMapSetSizeOverMinMax };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eslint-plugin-zod-mini",
3
- "version": "1.7.0",
3
+ "version": "1.9.0",
4
4
  "description": "ESLint plugin that adds custom linting rules to enforce best practices when using Zod Mini",
5
5
  "keywords": [
6
6
  "eslint",
@@ -39,7 +39,7 @@
39
39
  },
40
40
  "dependencies": {
41
41
  "@typescript-eslint/utils": "^8.67.0",
42
- "@eslint-zod/utils": "3.1.0"
42
+ "@eslint-zod/utils": "3.3.0"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@typescript-eslint/rule-tester": "8.67.0",