@jcoreio/zod-forms 1.1.3 → 1.2.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/ConditionalValidator.d.ts +25 -0
- package/ConditionalValidator.d.ts.map +1 -0
- package/ConditionalValidator.js +141 -0
- package/ConditionalValidator.js.map +1 -0
- package/ConditionalValidator.mjs +74 -0
- package/ConditionalValidator.mjs.map +1 -0
- package/FieldPath.js +10 -2
- package/FieldPath.js.map +1 -1
- package/FieldPath.mjs +11 -2
- package/FieldPath.mjs.map +1 -1
- package/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/index.js +13 -0
- package/index.js.map +1 -1
- package/index.mjs +1 -0
- package/index.mjs.map +1 -1
- package/package.json +2 -2
- package/src/ConditionalValidator.ts +140 -0
- package/src/FieldPath.ts +11 -6
- package/src/index.ts +4 -0
- package/src/util/DeepPartial.ts +3 -0
- package/src/util/isPromise.ts +7 -0
- package/util/DeepPartial.d.ts +4 -0
- package/util/DeepPartial.d.ts.map +1 -0
- package/util/DeepPartial.js +6 -0
- package/util/DeepPartial.js.map +1 -0
- package/util/DeepPartial.mjs +2 -0
- package/util/DeepPartial.mjs.map +1 -0
- package/util/isPromise.d.ts +2 -0
- package/util/isPromise.d.ts.map +1 -0
- package/util/isPromise.js +12 -0
- package/util/isPromise.js.map +1 -0
- package/util/isPromise.mjs +4 -0
- package/util/isPromise.mjs.map +1 -0
- package/src/util/acceptsArray.ts +0 -72
- package/util/acceptsArray.d.ts +0 -3
- package/util/acceptsArray.d.ts.map +0 -1
- package/util/acceptsArray.js +0 -89
- package/util/acceptsArray.js.map +0 -1
- package/util/acceptsArray.mjs +0 -105
- package/util/acceptsArray.mjs.map +0 -1
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import z from 'zod';
|
|
2
|
+
import { IgnoreEffect } from 'zod-invertible';
|
|
3
|
+
import { DeepPartial } from './util/DeepPartial';
|
|
4
|
+
type ConditionalCheck<T extends z.ZodTypeAny> = {
|
|
5
|
+
schema: T;
|
|
6
|
+
check: (value: z.output<T>, ctx: z.RefinementCtx) => void | Promise<void>;
|
|
7
|
+
async: boolean;
|
|
8
|
+
};
|
|
9
|
+
interface ConditionalValidatorDef<T extends z.ZodTypeAny> extends z.ZodEffectsDef<T> {
|
|
10
|
+
checks: ConditionalCheck<any>[];
|
|
11
|
+
}
|
|
12
|
+
type ConditionalRefineMessage<Output> = string | z.CustomErrorParams | z.CustomErrorParams[] | ((value: Output) => z.CustomErrorParams | z.CustomErrorParams[]);
|
|
13
|
+
type ConditionalRefineSchema<T extends z.ZodTypeAny> = z.ZodType<DeepPartial<z.output<T>>, any, DeepPartial<z.input<T>>> | ((schema: T) => z.ZodType<DeepPartial<z.output<T>>, any, DeepPartial<z.input<T>>>);
|
|
14
|
+
export declare class ConditionalValidator<T extends z.ZodTypeAny, Output = z.output<T>, Input = z.input<T>> extends z.ZodEffects<T, Output, Input> {
|
|
15
|
+
_def: ConditionalValidatorDef<T>;
|
|
16
|
+
[IgnoreEffect]: boolean;
|
|
17
|
+
constructor(schema: T, checks: ConditionalCheck<any>[]);
|
|
18
|
+
conditionalRefine(schema: ConditionalRefineSchema<T>, check: (value: z.output<T>) => unknown, message: ConditionalRefineMessage<z.output<T>>): ConditionalValidator<T, z.output<T>, z.input<T>>;
|
|
19
|
+
conditionalRefineAsync(schema: ConditionalRefineSchema<T>, check: (value: z.output<T>) => unknown | Promise<unknown>, message: ConditionalRefineMessage<z.output<T>>): ConditionalValidator<T, z.output<T>, z.input<T>>;
|
|
20
|
+
conditionalSuperRefine(schema: ConditionalRefineSchema<T>, check: (value: z.output<T>, ctx: z.RefinementCtx) => void): ConditionalValidator<T, z.output<T>, z.input<T>>;
|
|
21
|
+
conditionalSuperRefineAsync(schema: ConditionalRefineSchema<T>, check: (value: z.output<T>, ctx: z.RefinementCtx) => void | Promise<void>): ConditionalValidator<T, z.output<T>, z.input<T>>;
|
|
22
|
+
}
|
|
23
|
+
export declare function conditionalValidate<T extends z.ZodTypeAny>(schema: T): ConditionalValidator<T>;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=ConditionalValidator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConditionalValidator.d.ts","sourceRoot":"","sources":["src/ConditionalValidator.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEhD,KAAK,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,IAAI;IAC9C,MAAM,EAAE,CAAC,CAAA;IACT,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,aAAa,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzE,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AAED,UAAU,uBAAuB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,CACtD,SAAQ,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;IAC1B,MAAM,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAA;CAChC;AAED,KAAK,wBAAwB,CAAC,MAAM,IAChC,MAAM,GACN,CAAC,CAAC,iBAAiB,GACnB,CAAC,CAAC,iBAAiB,EAAE,GACrB,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,CAAC,iBAAiB,GAAG,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAA;AAEpE,KAAK,uBAAuB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,IAC/C,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GACjE,CAAC,CACC,MAAM,EAAE,CAAC,KACN,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAW3E,qBAAa,oBAAoB,CAC/B,CAAC,SAAS,CAAC,CAAC,UAAU,EACtB,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EACpB,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAClB,SAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC;IAC9B,IAAI,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAEzC,CAAC,YAAY,CAAC,UAAO;gBAET,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE;IAOtD,iBAAiB,CACf,MAAM,EAAE,uBAAuB,CAAC,CAAC,CAAC,EAClC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,EACtC,OAAO,EAAE,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAQhD,sBAAsB,CACpB,MAAM,EAAE,uBAAuB,CAAC,CAAC,CAAC,EAClC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,EACzD,OAAO,EAAE,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAQhD,sBAAsB,CACpB,MAAM,EAAE,uBAAuB,CAAC,CAAC,CAAC,EAClC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,aAAa,KAAK,IAAI;IAO3D,2BAA2B,CACzB,MAAM,EAAE,uBAAuB,CAAC,CAAC,CAAC,EAClC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,aAAa,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAO5E;AAED,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EACxD,MAAM,EAAE,CAAC,GACR,oBAAoB,CAAC,CAAC,CAAC,CAEzB"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.ConditionalValidator = void 0;
|
|
8
|
+
exports.conditionalValidate = conditionalValidate;
|
|
9
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
10
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
11
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
12
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
14
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
15
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
16
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
18
|
+
var _zod = _interopRequireDefault(require("zod"));
|
|
19
|
+
var _zodInvertible = require("zod-invertible");
|
|
20
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
21
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
22
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
23
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
24
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
25
|
+
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
26
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
27
|
+
function resolveSchema(baseSchema, refineSchema) {
|
|
28
|
+
return typeof refineSchema === 'function' ? refineSchema(baseSchema) : refineSchema;
|
|
29
|
+
}
|
|
30
|
+
var ConditionalValidator = exports.ConditionalValidator = /*#__PURE__*/function (_z$ZodEffects) {
|
|
31
|
+
function ConditionalValidator(schema, checks) {
|
|
32
|
+
var _this;
|
|
33
|
+
(0, _classCallCheck2["default"])(this, ConditionalValidator);
|
|
34
|
+
_this = _callSuper(this, ConditionalValidator, [_objectSpread(_objectSpread({}, makePreprocess(schema, checks)._def), {}, {
|
|
35
|
+
checks: checks
|
|
36
|
+
})]);
|
|
37
|
+
(0, _defineProperty2["default"])(_this, _zodInvertible.IgnoreEffect, true);
|
|
38
|
+
return _this;
|
|
39
|
+
}
|
|
40
|
+
(0, _inherits2["default"])(ConditionalValidator, _z$ZodEffects);
|
|
41
|
+
return (0, _createClass2["default"])(ConditionalValidator, [{
|
|
42
|
+
key: "conditionalRefine",
|
|
43
|
+
value: function conditionalRefine(schema, check, message) {
|
|
44
|
+
return this.conditionalSuperRefine(schema, function (value, ctx) {
|
|
45
|
+
if (!check(value)) {
|
|
46
|
+
addIssues(ctx, value, message);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}, {
|
|
51
|
+
key: "conditionalRefineAsync",
|
|
52
|
+
value: function conditionalRefineAsync(schema, check, message) {
|
|
53
|
+
return this.conditionalSuperRefineAsync(schema, /*#__PURE__*/function () {
|
|
54
|
+
var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(value, ctx) {
|
|
55
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
56
|
+
while (1) switch (_context.prev = _context.next) {
|
|
57
|
+
case 0:
|
|
58
|
+
_context.next = 2;
|
|
59
|
+
return check(value);
|
|
60
|
+
case 2:
|
|
61
|
+
if (_context.sent) {
|
|
62
|
+
_context.next = 4;
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
addIssues(ctx, value, message);
|
|
66
|
+
case 4:
|
|
67
|
+
case "end":
|
|
68
|
+
return _context.stop();
|
|
69
|
+
}
|
|
70
|
+
}, _callee);
|
|
71
|
+
}));
|
|
72
|
+
return function (_x, _x2) {
|
|
73
|
+
return _ref.apply(this, arguments);
|
|
74
|
+
};
|
|
75
|
+
}());
|
|
76
|
+
}
|
|
77
|
+
}, {
|
|
78
|
+
key: "conditionalSuperRefine",
|
|
79
|
+
value: function conditionalSuperRefine(schema, check) {
|
|
80
|
+
return new ConditionalValidator(this._def.schema, [].concat((0, _toConsumableArray2["default"])(this._def.checks), [{
|
|
81
|
+
schema: resolveSchema(this._def.schema, schema),
|
|
82
|
+
check: check,
|
|
83
|
+
async: false
|
|
84
|
+
}]));
|
|
85
|
+
}
|
|
86
|
+
}, {
|
|
87
|
+
key: "conditionalSuperRefineAsync",
|
|
88
|
+
value: function conditionalSuperRefineAsync(schema, check) {
|
|
89
|
+
return new ConditionalValidator(this._def.schema, [].concat((0, _toConsumableArray2["default"])(this._def.checks), [{
|
|
90
|
+
schema: resolveSchema(this._def.schema, schema),
|
|
91
|
+
check: check,
|
|
92
|
+
async: true
|
|
93
|
+
}]));
|
|
94
|
+
}
|
|
95
|
+
}]);
|
|
96
|
+
}(_zod["default"].ZodEffects);
|
|
97
|
+
function conditionalValidate(schema) {
|
|
98
|
+
return new ConditionalValidator(schema, []);
|
|
99
|
+
}
|
|
100
|
+
function makePreprocess(schema, checks) {
|
|
101
|
+
return _zod["default"].preprocess(function (input, ctx) {
|
|
102
|
+
var results = checks.map(function (_ref2) {
|
|
103
|
+
var schema = _ref2.schema,
|
|
104
|
+
check = _ref2.check,
|
|
105
|
+
async = _ref2.async;
|
|
106
|
+
function handleParsed(parsed) {
|
|
107
|
+
if (!parsed.success) return;
|
|
108
|
+
return check(parsed.data, ctx);
|
|
109
|
+
}
|
|
110
|
+
return async ? schema.safeParseAsync(input).then(handleParsed) : handleParsed(schema.safeParse(input));
|
|
111
|
+
});
|
|
112
|
+
return checks.some(function (c) {
|
|
113
|
+
return c.async;
|
|
114
|
+
}) ? Promise.all(results).then(function () {
|
|
115
|
+
return input;
|
|
116
|
+
}) : input;
|
|
117
|
+
}, schema);
|
|
118
|
+
}
|
|
119
|
+
var asArray = function asArray(value) {
|
|
120
|
+
return Array.isArray(value) ? value : [value];
|
|
121
|
+
};
|
|
122
|
+
function addIssues(ctx, value, message) {
|
|
123
|
+
var issues = asArray(typeof message === 'function' ? message(value) : typeof message === 'string' ? {
|
|
124
|
+
message: message
|
|
125
|
+
} : message);
|
|
126
|
+
var _iterator = _createForOfIteratorHelper(issues),
|
|
127
|
+
_step;
|
|
128
|
+
try {
|
|
129
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
130
|
+
var issue = _step.value;
|
|
131
|
+
ctx.addIssue(_objectSpread({
|
|
132
|
+
code: _zod["default"].ZodIssueCode.custom
|
|
133
|
+
}, issue));
|
|
134
|
+
}
|
|
135
|
+
} catch (err) {
|
|
136
|
+
_iterator.e(err);
|
|
137
|
+
} finally {
|
|
138
|
+
_iterator.f();
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=ConditionalValidator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConditionalValidator.js","names":["_zod","_interopRequireDefault","require","_zodInvertible","_createForOfIteratorHelper","r","e","t","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","o","a","u","call","next","_arrayLikeToArray","toString","slice","constructor","name","from","test","ownKeys","Object","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","Boolean","prototype","valueOf","resolveSchema","baseSchema","refineSchema","ConditionalValidator","exports","_z$ZodEffects","schema","checks","_this","_classCallCheck2","makePreprocess","_def","IgnoreEffect","_inherits2","_createClass2","key","conditionalRefine","check","message","conditionalSuperRefine","ctx","addIssues","conditionalRefineAsync","conditionalSuperRefineAsync","_ref","_asyncToGenerator2","_regenerator","mark","_callee","wrap","_callee$","_context","prev","sent","stop","_x","_x2","concat","_toConsumableArray2","async","z","ZodEffects","conditionalValidate","preprocess","input","results","map","_ref2","handleParsed","parsed","success","data","safeParseAsync","then","safeParse","some","c","Promise","all","asArray","issues","_iterator","_step","issue","addIssue","code","ZodIssueCode","custom","err"],"sources":["src/ConditionalValidator.ts"],"sourcesContent":["import z from 'zod'\nimport { IgnoreEffect } from 'zod-invertible'\nimport { DeepPartial } from './util/DeepPartial'\n\ntype ConditionalCheck<T extends z.ZodTypeAny> = {\n schema: T\n check: (value: z.output<T>, ctx: z.RefinementCtx) => void | Promise<void>\n async: boolean\n}\n\ninterface ConditionalValidatorDef<T extends z.ZodTypeAny>\n extends z.ZodEffectsDef<T> {\n checks: ConditionalCheck<any>[]\n}\n\ntype ConditionalRefineMessage<Output> =\n | string\n | z.CustomErrorParams\n | z.CustomErrorParams[]\n | ((value: Output) => z.CustomErrorParams | z.CustomErrorParams[])\n\ntype ConditionalRefineSchema<T extends z.ZodTypeAny> =\n | z.ZodType<DeepPartial<z.output<T>>, any, DeepPartial<z.input<T>>>\n | ((\n schema: T\n ) => z.ZodType<DeepPartial<z.output<T>>, any, DeepPartial<z.input<T>>>)\n\nfunction resolveSchema<T extends z.ZodTypeAny>(\n baseSchema: T,\n refineSchema: ConditionalRefineSchema<T>\n) {\n return typeof refineSchema === 'function'\n ? refineSchema(baseSchema)\n : refineSchema\n}\n\nexport class ConditionalValidator<\n T extends z.ZodTypeAny,\n Output = z.output<T>,\n Input = z.input<T>\n> extends z.ZodEffects<T, Output, Input> {\n declare _def: ConditionalValidatorDef<T>;\n\n [IgnoreEffect] = true\n\n constructor(schema: T, checks: ConditionalCheck<any>[]) {\n super({\n ...makePreprocess(schema, checks)._def,\n checks,\n } satisfies ConditionalValidatorDef<T> as z.ZodEffectsDef<T>)\n }\n\n conditionalRefine(\n schema: ConditionalRefineSchema<T>,\n check: (value: z.output<T>) => unknown,\n message: ConditionalRefineMessage<z.output<T>>\n ) {\n return this.conditionalSuperRefine(schema, (value, ctx) => {\n if (!check(value)) {\n addIssues(ctx, value, message)\n }\n })\n }\n conditionalRefineAsync(\n schema: ConditionalRefineSchema<T>,\n check: (value: z.output<T>) => unknown | Promise<unknown>,\n message: ConditionalRefineMessage<z.output<T>>\n ) {\n return this.conditionalSuperRefineAsync(schema, async (value, ctx) => {\n if (!(await check(value))) {\n addIssues(ctx, value, message)\n }\n })\n }\n conditionalSuperRefine(\n schema: ConditionalRefineSchema<T>,\n check: (value: z.output<T>, ctx: z.RefinementCtx) => void\n ) {\n return new ConditionalValidator(this._def.schema, [\n ...this._def.checks,\n { schema: resolveSchema(this._def.schema, schema), check, async: false },\n ])\n }\n conditionalSuperRefineAsync(\n schema: ConditionalRefineSchema<T>,\n check: (value: z.output<T>, ctx: z.RefinementCtx) => void | Promise<void>\n ) {\n return new ConditionalValidator(this._def.schema, [\n ...this._def.checks,\n { schema: resolveSchema(this._def.schema, schema), check, async: true },\n ])\n }\n}\n\nexport function conditionalValidate<T extends z.ZodTypeAny>(\n schema: T\n): ConditionalValidator<T> {\n return new ConditionalValidator(schema, [])\n}\n\nfunction makePreprocess<T extends z.ZodTypeAny>(\n schema: T,\n checks: ConditionalCheck<any>[]\n): z.ZodEffects<T> {\n return z.preprocess((input, ctx) => {\n const results = checks.map(({ schema, check, async }) => {\n function handleParsed(\n parsed: z.SafeParseReturnType<z.input<T>, z.output<T>>\n ) {\n if (!parsed.success) return\n return check(parsed.data, ctx)\n }\n return async\n ? schema.safeParseAsync(input).then(handleParsed)\n : handleParsed(schema.safeParse(input))\n })\n return checks.some((c) => c.async)\n ? Promise.all(results).then(() => input)\n : input\n }, schema)\n}\n\nconst asArray = <T>(value: T | T[]) => (Array.isArray(value) ? value : [value])\n\nfunction addIssues<Output>(\n ctx: z.RefinementCtx,\n value: Output,\n message: ConditionalRefineMessage<Output>\n) {\n const issues = asArray(\n typeof message === 'function'\n ? message(value)\n : typeof message === 'string'\n ? { message }\n : message\n )\n for (const issue of issues) {\n ctx.addIssue({ code: z.ZodIssueCode.custom, ...issue })\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import z from 'zod';
|
|
2
|
+
import { IgnoreEffect } from 'zod-invertible';
|
|
3
|
+
function resolveSchema(baseSchema, refineSchema) {
|
|
4
|
+
return typeof refineSchema === 'function' ? refineSchema(baseSchema) : refineSchema;
|
|
5
|
+
}
|
|
6
|
+
export class ConditionalValidator extends z.ZodEffects {
|
|
7
|
+
[IgnoreEffect] = true;
|
|
8
|
+
constructor(schema, checks) {
|
|
9
|
+
super({
|
|
10
|
+
...makePreprocess(schema, checks)._def,
|
|
11
|
+
checks
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
conditionalRefine(schema, check, message) {
|
|
15
|
+
return this.conditionalSuperRefine(schema, (value, ctx) => {
|
|
16
|
+
if (!check(value)) {
|
|
17
|
+
addIssues(ctx, value, message);
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
conditionalRefineAsync(schema, check, message) {
|
|
22
|
+
return this.conditionalSuperRefineAsync(schema, async (value, ctx) => {
|
|
23
|
+
if (!(await check(value))) {
|
|
24
|
+
addIssues(ctx, value, message);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
conditionalSuperRefine(schema, check) {
|
|
29
|
+
return new ConditionalValidator(this._def.schema, [...this._def.checks, {
|
|
30
|
+
schema: resolveSchema(this._def.schema, schema),
|
|
31
|
+
check,
|
|
32
|
+
async: false
|
|
33
|
+
}]);
|
|
34
|
+
}
|
|
35
|
+
conditionalSuperRefineAsync(schema, check) {
|
|
36
|
+
return new ConditionalValidator(this._def.schema, [...this._def.checks, {
|
|
37
|
+
schema: resolveSchema(this._def.schema, schema),
|
|
38
|
+
check,
|
|
39
|
+
async: true
|
|
40
|
+
}]);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
export function conditionalValidate(schema) {
|
|
44
|
+
return new ConditionalValidator(schema, []);
|
|
45
|
+
}
|
|
46
|
+
function makePreprocess(schema, checks) {
|
|
47
|
+
return z.preprocess((input, ctx) => {
|
|
48
|
+
const results = checks.map(({
|
|
49
|
+
schema,
|
|
50
|
+
check,
|
|
51
|
+
async
|
|
52
|
+
}) => {
|
|
53
|
+
function handleParsed(parsed) {
|
|
54
|
+
if (!parsed.success) return;
|
|
55
|
+
return check(parsed.data, ctx);
|
|
56
|
+
}
|
|
57
|
+
return async ? schema.safeParseAsync(input).then(handleParsed) : handleParsed(schema.safeParse(input));
|
|
58
|
+
});
|
|
59
|
+
return checks.some(c => c.async) ? Promise.all(results).then(() => input) : input;
|
|
60
|
+
}, schema);
|
|
61
|
+
}
|
|
62
|
+
const asArray = value => Array.isArray(value) ? value : [value];
|
|
63
|
+
function addIssues(ctx, value, message) {
|
|
64
|
+
const issues = asArray(typeof message === 'function' ? message(value) : typeof message === 'string' ? {
|
|
65
|
+
message
|
|
66
|
+
} : message);
|
|
67
|
+
for (const issue of issues) {
|
|
68
|
+
ctx.addIssue({
|
|
69
|
+
code: z.ZodIssueCode.custom,
|
|
70
|
+
...issue
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=ConditionalValidator.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConditionalValidator.mjs","names":["z","IgnoreEffect","resolveSchema","baseSchema","refineSchema","ConditionalValidator","ZodEffects","constructor","schema","checks","makePreprocess","_def","conditionalRefine","check","message","conditionalSuperRefine","value","ctx","addIssues","conditionalRefineAsync","conditionalSuperRefineAsync","async","conditionalValidate","preprocess","input","results","map","handleParsed","parsed","success","data","safeParseAsync","then","safeParse","some","c","Promise","all","asArray","Array","isArray","issues","issue","addIssue","code","ZodIssueCode","custom"],"sources":["src/ConditionalValidator.ts"],"sourcesContent":["import z from 'zod'\nimport { IgnoreEffect } from 'zod-invertible'\nimport { DeepPartial } from './util/DeepPartial'\n\ntype ConditionalCheck<T extends z.ZodTypeAny> = {\n schema: T\n check: (value: z.output<T>, ctx: z.RefinementCtx) => void | Promise<void>\n async: boolean\n}\n\ninterface ConditionalValidatorDef<T extends z.ZodTypeAny>\n extends z.ZodEffectsDef<T> {\n checks: ConditionalCheck<any>[]\n}\n\ntype ConditionalRefineMessage<Output> =\n | string\n | z.CustomErrorParams\n | z.CustomErrorParams[]\n | ((value: Output) => z.CustomErrorParams | z.CustomErrorParams[])\n\ntype ConditionalRefineSchema<T extends z.ZodTypeAny> =\n | z.ZodType<DeepPartial<z.output<T>>, any, DeepPartial<z.input<T>>>\n | ((\n schema: T\n ) => z.ZodType<DeepPartial<z.output<T>>, any, DeepPartial<z.input<T>>>)\n\nfunction resolveSchema<T extends z.ZodTypeAny>(\n baseSchema: T,\n refineSchema: ConditionalRefineSchema<T>\n) {\n return typeof refineSchema === 'function'\n ? refineSchema(baseSchema)\n : refineSchema\n}\n\nexport class ConditionalValidator<\n T extends z.ZodTypeAny,\n Output = z.output<T>,\n Input = z.input<T>\n> extends z.ZodEffects<T, Output, Input> {\n declare _def: ConditionalValidatorDef<T>;\n\n [IgnoreEffect] = true\n\n constructor(schema: T, checks: ConditionalCheck<any>[]) {\n super({\n ...makePreprocess(schema, checks)._def,\n checks,\n } satisfies ConditionalValidatorDef<T> as z.ZodEffectsDef<T>)\n }\n\n conditionalRefine(\n schema: ConditionalRefineSchema<T>,\n check: (value: z.output<T>) => unknown,\n message: ConditionalRefineMessage<z.output<T>>\n ) {\n return this.conditionalSuperRefine(schema, (value, ctx) => {\n if (!check(value)) {\n addIssues(ctx, value, message)\n }\n })\n }\n conditionalRefineAsync(\n schema: ConditionalRefineSchema<T>,\n check: (value: z.output<T>) => unknown | Promise<unknown>,\n message: ConditionalRefineMessage<z.output<T>>\n ) {\n return this.conditionalSuperRefineAsync(schema, async (value, ctx) => {\n if (!(await check(value))) {\n addIssues(ctx, value, message)\n }\n })\n }\n conditionalSuperRefine(\n schema: ConditionalRefineSchema<T>,\n check: (value: z.output<T>, ctx: z.RefinementCtx) => void\n ) {\n return new ConditionalValidator(this._def.schema, [\n ...this._def.checks,\n { schema: resolveSchema(this._def.schema, schema), check, async: false },\n ])\n }\n conditionalSuperRefineAsync(\n schema: ConditionalRefineSchema<T>,\n check: (value: z.output<T>, ctx: z.RefinementCtx) => void | Promise<void>\n ) {\n return new ConditionalValidator(this._def.schema, [\n ...this._def.checks,\n { schema: resolveSchema(this._def.schema, schema), check, async: true },\n ])\n }\n}\n\nexport function conditionalValidate<T extends z.ZodTypeAny>(\n schema: T\n): ConditionalValidator<T> {\n return new ConditionalValidator(schema, [])\n}\n\nfunction makePreprocess<T extends z.ZodTypeAny>(\n schema: T,\n checks: ConditionalCheck<any>[]\n): z.ZodEffects<T> {\n return z.preprocess((input, ctx) => {\n const results = checks.map(({ schema, check, async }) => {\n function handleParsed(\n parsed: z.SafeParseReturnType<z.input<T>, z.output<T>>\n ) {\n if (!parsed.success) return\n return check(parsed.data, ctx)\n }\n return async\n ? schema.safeParseAsync(input).then(handleParsed)\n : handleParsed(schema.safeParse(input))\n })\n return checks.some((c) => c.async)\n ? Promise.all(results).then(() => input)\n : input\n }, schema)\n}\n\nconst asArray = <T>(value: T | T[]) => (Array.isArray(value) ? value : [value])\n\nfunction addIssues<Output>(\n ctx: z.RefinementCtx,\n value: Output,\n message: ConditionalRefineMessage<Output>\n) {\n const issues = asArray(\n typeof message === 'function'\n ? message(value)\n : typeof message === 'string'\n ? { message }\n : message\n )\n for (const issue of issues) {\n ctx.addIssue({ code: z.ZodIssueCode.custom, ...issue })\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/FieldPath.js
CHANGED
|
@@ -74,7 +74,9 @@ function subschema(schema, key) {
|
|
|
74
74
|
unknownKeys = _ref2$_def.unknownKeys,
|
|
75
75
|
catchall = _ref2$_def.catchall;
|
|
76
76
|
if (key in shape) return shape[key];
|
|
77
|
-
if (unknownKeys === 'passthrough')
|
|
77
|
+
if (unknownKeys === 'passthrough') {
|
|
78
|
+
return catchall._def.typeName === _zod["default"].ZodFirstPartyTypeKind.ZodNever ? _zod["default"].unknown() : catchall;
|
|
79
|
+
}
|
|
78
80
|
break;
|
|
79
81
|
}
|
|
80
82
|
case 'ZodUnion':
|
|
@@ -145,7 +147,13 @@ function subschema(schema, key) {
|
|
|
145
147
|
case 'ZodBranded':
|
|
146
148
|
return subschema(schema._def.type, key);
|
|
147
149
|
case 'ZodPipeline':
|
|
148
|
-
|
|
150
|
+
{
|
|
151
|
+
var _ref7 = schema,
|
|
152
|
+
_def = _ref7._def;
|
|
153
|
+
var _in = subschema(_def["in"], key);
|
|
154
|
+
var out = subschema(_def.out, key);
|
|
155
|
+
return _in && out ? _in.pipe(out) : _in || out;
|
|
156
|
+
}
|
|
149
157
|
}
|
|
150
158
|
return undefined;
|
|
151
159
|
}
|
package/FieldPath.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldPath.js","names":["_zod","_interopRequireDefault","require","_pathstring","_parsePathstring","FieldPath","exports","_ref","schema","path","_classCallCheck2","_defineProperty2","pathstring","_createClass2","key","value","get","parsePathstring","Array","isArray","Error","concat","reduce","field","subfield","_this$subfields","cached","subfields","subschema","_toConsumableArray2","Map","set","root","_def","typeName","z","ZodFirstPartyTypeKind","ZodAny","element","_ref2","shape","_ref2$_def","unknownKeys","catchall","options","map","opt","filter","length","union","undefined","discUnion","_ref3","items","rest","_ref4","keySchema","valueSchema","safeParse","success","_ref5","_ref6","innerSchema","unwrap","removeDefault","removeCatch","type"],"sources":["src/FieldPath.ts"],"sourcesContent":["import z from 'zod'\nimport { pathstring } from './util/pathstring'\nimport { SchemaAt } from './util/SchemaAt'\nimport { PathInSchema, PathstringInSchema } from './util/PathInSchema'\nimport { parsePathstring } from './util/parsePathstring'\n\nexport type FieldPathForValue<Value, RawValue = any> = FieldPath<\n z.ZodType<Value, any, RawValue>\n>\nexport type FieldPathForRawValue<RawValue> = FieldPath<\n z.ZodType<any, any, RawValue>\n>\n\nexport class FieldPath<T extends z.ZodTypeAny = z.ZodTypeAny> {\n readonly path: BasePath\n readonly pathstring: string\n readonly schema: T\n\n private subfields: Map<SubpathKey<T>, FieldPath> | undefined\n\n private constructor({ schema, path }: { schema: T; path: BasePath }) {\n this.path = path\n this.schema = schema\n this.pathstring = pathstring(path)\n }\n\n static root<T extends z.ZodTypeAny>(schema: T) {\n return new FieldPath({ schema, path: [] })\n }\n\n get<Path extends PathInSchema<T>>(\n path: Path\n ): SchemaAt<T, Path> extends never ? never : FieldPath<SchemaAt<T, Path>>\n get<Pathstring extends PathstringInSchema<T>>(\n path: Pathstring\n ): FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>\n get(path: any): FieldPath {\n if (typeof path === 'string') path = parsePathstring(path)\n if (!Array.isArray(path)) throw new Error(`invalid path: ${path}`)\n return path.reduce((field, key) => field.subfield(key), this)\n }\n\n subfield<K extends SubpathKey<T>>(key: K): FieldPath<SchemaAt<T, [K]>> {\n const cached = this.subfields?.get(key)\n if (cached) return cached as any\n const schema = subschema(this.schema, key)\n if (!schema) throw new Error(`invalid subschema key: ${key}`)\n const subfield = new FieldPath({\n path: [...this.path, key] as any,\n schema: schema as any,\n })\n if (this.subfields == null) this.subfields = new Map()\n this.subfields.set(key, subfield)\n return subfield\n }\n}\n\nexport type BasePath = (string | number)[]\n\nexport type SubpathKey<T extends z.ZodTypeAny> = 0 extends 1 & T\n ? any\n : 0 extends 1 & z.input<T>\n ? any\n : T extends z.ZodObject<infer Shape, infer UnknownKeys>\n ? UnknownKeys extends 'passthrough'\n ? string\n : keyof Shape\n : T extends z.ZodRecord<infer Key, any>\n ? z.input<Key>\n : T extends z.ZodMap<infer Key, any>\n ? z.input<Key>\n : T extends z.ZodArray<any>\n ? number\n : T extends z.ZodTuple<any, any>\n ? number\n : T extends z.ZodLazy<infer U>\n ? SubpathKey<U>\n : T extends z.ZodUnion<infer Options>\n ? SubpathKey<Options[number]>\n : T extends z.ZodDiscriminatedUnion<any, infer Options>\n ? SubpathKey<Options[number]>\n : T extends z.ZodOptional<infer U>\n ? SubpathKey<U>\n : T extends z.ZodNullable<infer U>\n ? SubpathKey<U>\n : T extends z.ZodDefault<infer U>\n ? SubpathKey<U>\n : T extends z.ZodCatch<infer U>\n ? SubpathKey<U>\n : T extends z.ZodEffects<infer U, any>\n ? SubpathKey<U>\n : T extends z.ZodBranded<infer U, any>\n ? SubpathKey<U>\n : never\n\nexport type AllPaths<T extends z.ZodTypeAny> = SubpathKey<T> extends never\n ? []\n : [] | ValuesOf<SubpathKeyMap<T>>\n\ntype ValuesOf<O> = O[keyof O]\n\nexport type SubpathKeyMap<T extends z.ZodTypeAny> = {\n [K in SubpathKey<T>]: [K, ...AllPaths<SchemaAt<T, [K]>>]\n}\n\nfunction subschema(\n schema: z.ZodTypeAny,\n key: string\n): z.ZodTypeAny | undefined {\n switch (schema._def.typeName) {\n case z.ZodFirstPartyTypeKind.ZodAny:\n case 'ZodArray':\n if (typeof key === 'number') return (schema as z.ZodArray<any>).element\n break\n case 'ZodObject': {\n const {\n shape,\n _def: { unknownKeys, catchall },\n } = schema as z.AnyZodObject\n if (key in shape) return shape[key]\n if (unknownKeys === 'passthrough') return catchall\n break\n }\n case 'ZodUnion': {\n const options = (\n schema as z.ZodUnion<[z.ZodTypeAny, ...z.ZodTypeAny[]]>\n ).options\n .map((opt) => subschema(opt, key))\n .filter((opt): opt is z.ZodTypeAny => opt != null)\n return options.length > 1\n ? z.union(options as any)\n : options.length === 1\n ? options[0]\n : undefined\n }\n case 'ZodDiscriminatedUnion': {\n const discUnion = schema as z.ZodDiscriminatedUnion<\n any,\n [z.AnyZodObject, ...z.AnyZodObject[]]\n >\n const options = discUnion.options\n .map((opt) => subschema(opt, key))\n .filter((opt): opt is z.ZodTypeAny => opt != null)\n return options.length > 1\n ? z.union(options as any)\n : options.length === 1\n ? options[0]\n : undefined\n break\n }\n case 'ZodIntersection':\n break\n case 'ZodTuple': {\n const {\n items,\n _def: { rest },\n } = schema as z.ZodTuple<any, any>\n if (typeof key === 'number' && key > 0 && key < items.length) {\n return items[key]\n }\n if (rest) return rest\n break\n }\n case 'ZodRecord': {\n const { keySchema, valueSchema } = schema as z.ZodRecord<\n z.ZodTypeAny,\n z.ZodTypeAny\n >\n if (keySchema.safeParse(key).success) return valueSchema\n break\n }\n case 'ZodMap': {\n const { keySchema, valueSchema } = schema as z.ZodMap<\n z.ZodTypeAny,\n z.ZodTypeAny\n >\n if (keySchema.safeParse(key).success) return valueSchema\n break\n }\n case 'ZodLazy':\n return subschema((schema as z.ZodLazy<z.ZodTypeAny>).schema, key)\n case 'ZodEffects': {\n const {\n _def: { schema: innerSchema },\n } = schema as z.ZodEffects<z.ZodTypeAny, any>\n return subschema(innerSchema, key)\n }\n case 'ZodOptional':\n return subschema((schema as z.ZodOptional<z.ZodTypeAny>).unwrap(), key)\n case 'ZodNullable':\n return subschema((schema as z.ZodNullable<z.ZodTypeAny>).unwrap(), key)\n case 'ZodDefault':\n return subschema(\n (schema as z.ZodDefault<z.ZodTypeAny>).removeDefault(),\n key\n )\n case 'ZodCatch':\n return subschema((schema as z.ZodCatch<z.ZodTypeAny>).removeCatch(), key)\n case 'ZodBranded':\n return subschema(\n (schema as z.ZodBranded<z.ZodTypeAny, any>)._def.type,\n key\n )\n case 'ZodPipeline':\n return subschema(\n (schema as z.ZodPipeline<z.ZodTypeAny, z.ZodTypeAny>)._def.in,\n key\n )\n }\n return undefined\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"FieldPath.js","names":["_zod","_interopRequireDefault","require","_pathstring","_parsePathstring","FieldPath","exports","_ref","schema","path","_classCallCheck2","_defineProperty2","pathstring","_createClass2","key","value","get","parsePathstring","Array","isArray","Error","concat","reduce","field","subfield","_this$subfields","cached","subfields","subschema","_toConsumableArray2","Map","set","root","_def","typeName","z","ZodFirstPartyTypeKind","ZodAny","element","_ref2","shape","_ref2$_def","unknownKeys","catchall","ZodNever","unknown","options","map","opt","filter","length","union","undefined","discUnion","_ref3","items","rest","_ref4","keySchema","valueSchema","safeParse","success","_ref5","_ref6","innerSchema","unwrap","removeDefault","removeCatch","type","_ref7","_in","out","pipe"],"sources":["src/FieldPath.ts"],"sourcesContent":["import z from 'zod'\nimport { pathstring } from './util/pathstring'\nimport { SchemaAt } from './util/SchemaAt'\nimport { PathInSchema, PathstringInSchema } from './util/PathInSchema'\nimport { parsePathstring } from './util/parsePathstring'\n\nexport type FieldPathForValue<Value, RawValue = any> = FieldPath<\n z.ZodType<Value, any, RawValue>\n>\nexport type FieldPathForRawValue<RawValue> = FieldPath<\n z.ZodType<any, any, RawValue>\n>\n\nexport class FieldPath<T extends z.ZodTypeAny = z.ZodTypeAny> {\n readonly path: BasePath\n readonly pathstring: string\n readonly schema: T\n\n private subfields: Map<SubpathKey<T>, FieldPath> | undefined\n\n private constructor({ schema, path }: { schema: T; path: BasePath }) {\n this.path = path\n this.schema = schema\n this.pathstring = pathstring(path)\n }\n\n static root<T extends z.ZodTypeAny>(schema: T) {\n return new FieldPath({ schema, path: [] })\n }\n\n get<Path extends PathInSchema<T>>(\n path: Path\n ): SchemaAt<T, Path> extends never ? never : FieldPath<SchemaAt<T, Path>>\n get<Pathstring extends PathstringInSchema<T>>(\n path: Pathstring\n ): FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>\n get(path: any): FieldPath {\n if (typeof path === 'string') path = parsePathstring(path)\n if (!Array.isArray(path)) throw new Error(`invalid path: ${path}`)\n return path.reduce((field, key) => field.subfield(key), this)\n }\n\n subfield<K extends SubpathKey<T>>(key: K): FieldPath<SchemaAt<T, [K]>> {\n const cached = this.subfields?.get(key)\n if (cached) return cached as any\n const schema = subschema(this.schema, key)\n if (!schema) throw new Error(`invalid subschema key: ${key}`)\n const subfield = new FieldPath({\n path: [...this.path, key] as any,\n schema: schema as any,\n })\n if (this.subfields == null) this.subfields = new Map()\n this.subfields.set(key, subfield)\n return subfield\n }\n}\n\nexport type BasePath = (string | number)[]\n\nexport type SubpathKey<T extends z.ZodTypeAny> = 0 extends 1 & T\n ? any\n : 0 extends 1 & z.input<T>\n ? any\n : T extends z.ZodObject<infer Shape, infer UnknownKeys>\n ? UnknownKeys extends 'passthrough'\n ? string\n : keyof Shape\n : T extends z.ZodRecord<infer Key, any>\n ? z.input<Key>\n : T extends z.ZodMap<infer Key, any>\n ? z.input<Key>\n : T extends z.ZodArray<any>\n ? number\n : T extends z.ZodTuple<any, any>\n ? number\n : T extends z.ZodLazy<infer U>\n ? SubpathKey<U>\n : T extends z.ZodUnion<infer Options>\n ? SubpathKey<Options[number]>\n : T extends z.ZodDiscriminatedUnion<any, infer Options>\n ? SubpathKey<Options[number]>\n : T extends z.ZodOptional<infer U>\n ? SubpathKey<U>\n : T extends z.ZodNullable<infer U>\n ? SubpathKey<U>\n : T extends z.ZodDefault<infer U>\n ? SubpathKey<U>\n : T extends z.ZodCatch<infer U>\n ? SubpathKey<U>\n : T extends z.ZodEffects<infer U, any>\n ? SubpathKey<U>\n : T extends z.ZodBranded<infer U, any>\n ? SubpathKey<U>\n : never\n\nexport type AllPaths<T extends z.ZodTypeAny> = SubpathKey<T> extends never\n ? []\n : [] | ValuesOf<SubpathKeyMap<T>>\n\ntype ValuesOf<O> = O[keyof O]\n\nexport type SubpathKeyMap<T extends z.ZodTypeAny> = {\n [K in SubpathKey<T>]: [K, ...AllPaths<SchemaAt<T, [K]>>]\n}\n\nfunction subschema(\n schema: z.ZodTypeAny,\n key: string\n): z.ZodTypeAny | undefined {\n switch (schema._def.typeName) {\n case z.ZodFirstPartyTypeKind.ZodAny:\n case 'ZodArray':\n if (typeof key === 'number') return (schema as z.ZodArray<any>).element\n break\n case 'ZodObject': {\n const {\n shape,\n _def: { unknownKeys, catchall },\n } = schema as z.AnyZodObject\n if (key in shape) return shape[key]\n if (unknownKeys === 'passthrough') {\n return catchall._def.typeName === z.ZodFirstPartyTypeKind.ZodNever\n ? z.unknown()\n : catchall\n }\n break\n }\n case 'ZodUnion': {\n const options = (\n schema as z.ZodUnion<[z.ZodTypeAny, ...z.ZodTypeAny[]]>\n ).options\n .map((opt) => subschema(opt, key))\n .filter((opt): opt is z.ZodTypeAny => opt != null)\n return options.length > 1\n ? z.union(options as any)\n : options.length === 1\n ? options[0]\n : undefined\n }\n case 'ZodDiscriminatedUnion': {\n const discUnion = schema as z.ZodDiscriminatedUnion<\n any,\n [z.AnyZodObject, ...z.AnyZodObject[]]\n >\n const options = discUnion.options\n .map((opt) => subschema(opt, key))\n .filter((opt): opt is z.ZodTypeAny => opt != null)\n return options.length > 1\n ? z.union(options as any)\n : options.length === 1\n ? options[0]\n : undefined\n break\n }\n case 'ZodIntersection':\n break\n case 'ZodTuple': {\n const {\n items,\n _def: { rest },\n } = schema as z.ZodTuple<any, any>\n if (typeof key === 'number' && key > 0 && key < items.length) {\n return items[key]\n }\n if (rest) return rest\n break\n }\n case 'ZodRecord': {\n const { keySchema, valueSchema } = schema as z.ZodRecord<\n z.ZodTypeAny,\n z.ZodTypeAny\n >\n if (keySchema.safeParse(key).success) return valueSchema\n break\n }\n case 'ZodMap': {\n const { keySchema, valueSchema } = schema as z.ZodMap<\n z.ZodTypeAny,\n z.ZodTypeAny\n >\n if (keySchema.safeParse(key).success) return valueSchema\n break\n }\n case 'ZodLazy':\n return subschema((schema as z.ZodLazy<z.ZodTypeAny>).schema, key)\n case 'ZodEffects': {\n const {\n _def: { schema: innerSchema },\n } = schema as z.ZodEffects<z.ZodTypeAny, any>\n return subschema(innerSchema, key)\n }\n case 'ZodOptional':\n return subschema((schema as z.ZodOptional<z.ZodTypeAny>).unwrap(), key)\n case 'ZodNullable':\n return subschema((schema as z.ZodNullable<z.ZodTypeAny>).unwrap(), key)\n case 'ZodDefault':\n return subschema(\n (schema as z.ZodDefault<z.ZodTypeAny>).removeDefault(),\n key\n )\n case 'ZodCatch':\n return subschema((schema as z.ZodCatch<z.ZodTypeAny>).removeCatch(), key)\n case 'ZodBranded':\n return subschema(\n (schema as z.ZodBranded<z.ZodTypeAny, any>)._def.type,\n key\n )\n case 'ZodPipeline': {\n const { _def } = schema as z.ZodPipeline<z.ZodTypeAny, z.ZodTypeAny>\n const _in = subschema(_def.in, key)\n const out = subschema(_def.out, key)\n return _in && out ? _in.pipe(out) : _in || out\n }\n }\n return undefined\n}\n"],"mappings":"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","ignoreList":[]}
|
package/FieldPath.mjs
CHANGED
|
@@ -56,7 +56,9 @@ function subschema(schema, key) {
|
|
|
56
56
|
}
|
|
57
57
|
} = schema;
|
|
58
58
|
if (key in shape) return shape[key];
|
|
59
|
-
if (unknownKeys === 'passthrough')
|
|
59
|
+
if (unknownKeys === 'passthrough') {
|
|
60
|
+
return catchall._def.typeName === z.ZodFirstPartyTypeKind.ZodNever ? z.unknown() : catchall;
|
|
61
|
+
}
|
|
60
62
|
break;
|
|
61
63
|
}
|
|
62
64
|
case 'ZodUnion':
|
|
@@ -127,7 +129,14 @@ function subschema(schema, key) {
|
|
|
127
129
|
case 'ZodBranded':
|
|
128
130
|
return subschema(schema._def.type, key);
|
|
129
131
|
case 'ZodPipeline':
|
|
130
|
-
|
|
132
|
+
{
|
|
133
|
+
const {
|
|
134
|
+
_def
|
|
135
|
+
} = schema;
|
|
136
|
+
const _in = subschema(_def.in, key);
|
|
137
|
+
const out = subschema(_def.out, key);
|
|
138
|
+
return _in && out ? _in.pipe(out) : _in || out;
|
|
139
|
+
}
|
|
131
140
|
}
|
|
132
141
|
return undefined;
|
|
133
142
|
}
|
package/FieldPath.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldPath.mjs","names":["z","pathstring","parsePathstring","FieldPath","path","schema","subfields","constructor","root","get","Array","isArray","Error","reduce","field","key","subfield","_this$subfields","cached","subschema","Map","set","_def","typeName","ZodFirstPartyTypeKind","ZodAny","element","shape","unknownKeys","catchall","options","map","opt","filter","length","union","undefined","discUnion","items","rest","keySchema","valueSchema","safeParse","success","innerSchema","unwrap","removeDefault","removeCatch","type","in"],"sources":["src/FieldPath.ts"],"sourcesContent":["import z from 'zod'\nimport { pathstring } from './util/pathstring'\nimport { SchemaAt } from './util/SchemaAt'\nimport { PathInSchema, PathstringInSchema } from './util/PathInSchema'\nimport { parsePathstring } from './util/parsePathstring'\n\nexport type FieldPathForValue<Value, RawValue = any> = FieldPath<\n z.ZodType<Value, any, RawValue>\n>\nexport type FieldPathForRawValue<RawValue> = FieldPath<\n z.ZodType<any, any, RawValue>\n>\n\nexport class FieldPath<T extends z.ZodTypeAny = z.ZodTypeAny> {\n readonly path: BasePath\n readonly pathstring: string\n readonly schema: T\n\n private subfields: Map<SubpathKey<T>, FieldPath> | undefined\n\n private constructor({ schema, path }: { schema: T; path: BasePath }) {\n this.path = path\n this.schema = schema\n this.pathstring = pathstring(path)\n }\n\n static root<T extends z.ZodTypeAny>(schema: T) {\n return new FieldPath({ schema, path: [] })\n }\n\n get<Path extends PathInSchema<T>>(\n path: Path\n ): SchemaAt<T, Path> extends never ? never : FieldPath<SchemaAt<T, Path>>\n get<Pathstring extends PathstringInSchema<T>>(\n path: Pathstring\n ): FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>\n get(path: any): FieldPath {\n if (typeof path === 'string') path = parsePathstring(path)\n if (!Array.isArray(path)) throw new Error(`invalid path: ${path}`)\n return path.reduce((field, key) => field.subfield(key), this)\n }\n\n subfield<K extends SubpathKey<T>>(key: K): FieldPath<SchemaAt<T, [K]>> {\n const cached = this.subfields?.get(key)\n if (cached) return cached as any\n const schema = subschema(this.schema, key)\n if (!schema) throw new Error(`invalid subschema key: ${key}`)\n const subfield = new FieldPath({\n path: [...this.path, key] as any,\n schema: schema as any,\n })\n if (this.subfields == null) this.subfields = new Map()\n this.subfields.set(key, subfield)\n return subfield\n }\n}\n\nexport type BasePath = (string | number)[]\n\nexport type SubpathKey<T extends z.ZodTypeAny> = 0 extends 1 & T\n ? any\n : 0 extends 1 & z.input<T>\n ? any\n : T extends z.ZodObject<infer Shape, infer UnknownKeys>\n ? UnknownKeys extends 'passthrough'\n ? string\n : keyof Shape\n : T extends z.ZodRecord<infer Key, any>\n ? z.input<Key>\n : T extends z.ZodMap<infer Key, any>\n ? z.input<Key>\n : T extends z.ZodArray<any>\n ? number\n : T extends z.ZodTuple<any, any>\n ? number\n : T extends z.ZodLazy<infer U>\n ? SubpathKey<U>\n : T extends z.ZodUnion<infer Options>\n ? SubpathKey<Options[number]>\n : T extends z.ZodDiscriminatedUnion<any, infer Options>\n ? SubpathKey<Options[number]>\n : T extends z.ZodOptional<infer U>\n ? SubpathKey<U>\n : T extends z.ZodNullable<infer U>\n ? SubpathKey<U>\n : T extends z.ZodDefault<infer U>\n ? SubpathKey<U>\n : T extends z.ZodCatch<infer U>\n ? SubpathKey<U>\n : T extends z.ZodEffects<infer U, any>\n ? SubpathKey<U>\n : T extends z.ZodBranded<infer U, any>\n ? SubpathKey<U>\n : never\n\nexport type AllPaths<T extends z.ZodTypeAny> = SubpathKey<T> extends never\n ? []\n : [] | ValuesOf<SubpathKeyMap<T>>\n\ntype ValuesOf<O> = O[keyof O]\n\nexport type SubpathKeyMap<T extends z.ZodTypeAny> = {\n [K in SubpathKey<T>]: [K, ...AllPaths<SchemaAt<T, [K]>>]\n}\n\nfunction subschema(\n schema: z.ZodTypeAny,\n key: string\n): z.ZodTypeAny | undefined {\n switch (schema._def.typeName) {\n case z.ZodFirstPartyTypeKind.ZodAny:\n case 'ZodArray':\n if (typeof key === 'number') return (schema as z.ZodArray<any>).element\n break\n case 'ZodObject': {\n const {\n shape,\n _def: { unknownKeys, catchall },\n } = schema as z.AnyZodObject\n if (key in shape) return shape[key]\n if (unknownKeys === 'passthrough') return catchall\n break\n }\n case 'ZodUnion': {\n const options = (\n schema as z.ZodUnion<[z.ZodTypeAny, ...z.ZodTypeAny[]]>\n ).options\n .map((opt) => subschema(opt, key))\n .filter((opt): opt is z.ZodTypeAny => opt != null)\n return options.length > 1\n ? z.union(options as any)\n : options.length === 1\n ? options[0]\n : undefined\n }\n case 'ZodDiscriminatedUnion': {\n const discUnion = schema as z.ZodDiscriminatedUnion<\n any,\n [z.AnyZodObject, ...z.AnyZodObject[]]\n >\n const options = discUnion.options\n .map((opt) => subschema(opt, key))\n .filter((opt): opt is z.ZodTypeAny => opt != null)\n return options.length > 1\n ? z.union(options as any)\n : options.length === 1\n ? options[0]\n : undefined\n break\n }\n case 'ZodIntersection':\n break\n case 'ZodTuple': {\n const {\n items,\n _def: { rest },\n } = schema as z.ZodTuple<any, any>\n if (typeof key === 'number' && key > 0 && key < items.length) {\n return items[key]\n }\n if (rest) return rest\n break\n }\n case 'ZodRecord': {\n const { keySchema, valueSchema } = schema as z.ZodRecord<\n z.ZodTypeAny,\n z.ZodTypeAny\n >\n if (keySchema.safeParse(key).success) return valueSchema\n break\n }\n case 'ZodMap': {\n const { keySchema, valueSchema } = schema as z.ZodMap<\n z.ZodTypeAny,\n z.ZodTypeAny\n >\n if (keySchema.safeParse(key).success) return valueSchema\n break\n }\n case 'ZodLazy':\n return subschema((schema as z.ZodLazy<z.ZodTypeAny>).schema, key)\n case 'ZodEffects': {\n const {\n _def: { schema: innerSchema },\n } = schema as z.ZodEffects<z.ZodTypeAny, any>\n return subschema(innerSchema, key)\n }\n case 'ZodOptional':\n return subschema((schema as z.ZodOptional<z.ZodTypeAny>).unwrap(), key)\n case 'ZodNullable':\n return subschema((schema as z.ZodNullable<z.ZodTypeAny>).unwrap(), key)\n case 'ZodDefault':\n return subschema(\n (schema as z.ZodDefault<z.ZodTypeAny>).removeDefault(),\n key\n )\n case 'ZodCatch':\n return subschema((schema as z.ZodCatch<z.ZodTypeAny>).removeCatch(), key)\n case 'ZodBranded':\n return subschema(\n (schema as z.ZodBranded<z.ZodTypeAny, any>)._def.type,\n key\n )\n case 'ZodPipeline':\n return subschema(\n (schema as z.ZodPipeline<z.ZodTypeAny, z.ZodTypeAny>)._def.in,\n key\n )\n }\n return undefined\n}\n"],"mappings":"AAAA,OAAOA,CAAC,MAAM,KAAK;AACnB,SAASC,UAAU;AAGnB,SAASC,eAAe;AASxB,OAAO,MAAMC,SAAS,CAAwC;EACnDC,IAAI;EACJH,UAAU;EACVI,MAAM;EAEPC,SAAS;EAETC,WAAWA,CAAC;IAAEF,MAAM;IAAED;EAAoC,CAAC,EAAE;IACnE,IAAI,CAACA,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACJ,UAAU,GAAGA,UAAU,CAACG,IAAI,CAAC;EACpC;EAEA,OAAOI,IAAIA,CAAyBH,MAAS,EAAE;IAC7C,OAAO,IAAIF,SAAS,CAAC;MAAEE,MAAM;MAAED,IAAI,EAAE;IAAG,CAAC,CAAC;EAC5C;EAQAK,GAAGA,CAACL,IAAS,EAAa;IACxB,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAEA,IAAI,GAAGF,eAAe,CAACE,IAAI,CAAC;IAC1D,IAAI,CAACM,KAAK,CAACC,OAAO,CAACP,IAAI,CAAC,EAAE,MAAM,IAAIQ,KAAK,CAAC,iBAAiBR,IAAI,EAAE,CAAC;IAClE,OAAOA,IAAI,CAACS,MAAM,CAAC,CAACC,KAAK,EAAEC,GAAG,KAAKD,KAAK,CAACE,QAAQ,CAACD,GAAG,CAAC,EAAE,IAAI,CAAC;EAC/D;EAEAC,QAAQA,CAA0BD,GAAM,EAA+B;IAAA,IAAAE,eAAA;IACrE,MAAMC,MAAM,IAAAD,eAAA,GAAG,IAAI,CAACX,SAAS,cAAAW,eAAA,uBAAdA,eAAA,CAAgBR,GAAG,CAACM,GAAG,CAAC;IACvC,IAAIG,MAAM,EAAE,OAAOA,MAAM;IACzB,MAAMb,MAAM,GAAGc,SAAS,CAAC,IAAI,CAACd,MAAM,EAAEU,GAAG,CAAC;IAC1C,IAAI,CAACV,MAAM,EAAE,MAAM,IAAIO,KAAK,CAAC,0BAA0BG,GAAG,EAAE,CAAC;IAC7D,MAAMC,QAAQ,GAAG,IAAIb,SAAS,CAAC;MAC7BC,IAAI,EAAE,CAAC,GAAG,IAAI,CAACA,IAAI,EAAEW,GAAG,CAAQ;MAChCV,MAAM,EAAEA;IACV,CAAC,CAAC;IACF,IAAI,IAAI,CAACC,SAAS,IAAI,IAAI,EAAE,IAAI,CAACA,SAAS,GAAG,IAAIc,GAAG,CAAC,CAAC;IACtD,IAAI,CAACd,SAAS,CAACe,GAAG,CAACN,GAAG,EAAEC,QAAQ,CAAC;IACjC,OAAOA,QAAQ;EACjB;AACF;AAkDA,SAASG,SAASA,CAChBd,MAAoB,EACpBU,GAAW,EACe;EAC1B,QAAQV,MAAM,CAACiB,IAAI,CAACC,QAAQ;IAC1B,KAAKvB,CAAC,CAACwB,qBAAqB,CAACC,MAAM;IACnC,KAAK,UAAU;MACb,IAAI,OAAOV,GAAG,KAAK,QAAQ,EAAE,OAAQV,MAAM,CAAqBqB,OAAO;MACvE;IACF,KAAK,WAAW;MAAE;QAChB,MAAM;UACJC,KAAK;UACLL,IAAI,EAAE;YAAEM,WAAW;YAAEC;UAAS;QAChC,CAAC,GAAGxB,MAAwB;QAC5B,IAAIU,GAAG,IAAIY,KAAK,EAAE,OAAOA,KAAK,CAACZ,GAAG,CAAC;QACnC,IAAIa,WAAW,KAAK,aAAa,EAAE,OAAOC,QAAQ;QAClD;MACF;IACA,KAAK,UAAU;MAAE;QACf,MAAMC,OAAO,GACXzB,MAAM,CACNyB,OAAO,CACNC,GAAG,CAAEC,GAAG,IAAKb,SAAS,CAACa,GAAG,EAAEjB,GAAG,CAAC,CAAC,CACjCkB,MAAM,CAAED,GAAG,IAA0BA,GAAG,IAAI,IAAI,CAAC;QACpD,OAAOF,OAAO,CAACI,MAAM,GAAG,CAAC,GACrBlC,CAAC,CAACmC,KAAK,CAACL,OAAc,CAAC,GACvBA,OAAO,CAACI,MAAM,KAAK,CAAC,GACpBJ,OAAO,CAAC,CAAC,CAAC,GACVM,SAAS;MACf;IACA,KAAK,uBAAuB;MAAE;QAC5B,MAAMC,SAAS,GAAGhC,MAGjB;QACD,MAAMyB,OAAO,GAAGO,SAAS,CAACP,OAAO,CAC9BC,GAAG,CAAEC,GAAG,IAAKb,SAAS,CAACa,GAAG,EAAEjB,GAAG,CAAC,CAAC,CACjCkB,MAAM,CAAED,GAAG,IAA0BA,GAAG,IAAI,IAAI,CAAC;QACpD,OAAOF,OAAO,CAACI,MAAM,GAAG,CAAC,GACrBlC,CAAC,CAACmC,KAAK,CAACL,OAAc,CAAC,GACvBA,OAAO,CAACI,MAAM,KAAK,CAAC,GACpBJ,OAAO,CAAC,CAAC,CAAC,GACVM,SAAS;QACb;MACF;IACA,KAAK,iBAAiB;MACpB;IACF,KAAK,UAAU;MAAE;QACf,MAAM;UACJE,KAAK;UACLhB,IAAI,EAAE;YAAEiB;UAAK;QACf,CAAC,GAAGlC,MAA8B;QAClC,IAAI,OAAOU,GAAG,KAAK,QAAQ,IAAIA,GAAG,GAAG,CAAC,IAAIA,GAAG,GAAGuB,KAAK,CAACJ,MAAM,EAAE;UAC5D,OAAOI,KAAK,CAACvB,GAAG,CAAC;QACnB;QACA,IAAIwB,IAAI,EAAE,OAAOA,IAAI;QACrB;MACF;IACA,KAAK,WAAW;MAAE;QAChB,MAAM;UAAEC,SAAS;UAAEC;QAAY,CAAC,GAAGpC,MAGlC;QACD,IAAImC,SAAS,CAACE,SAAS,CAAC3B,GAAG,CAAC,CAAC4B,OAAO,EAAE,OAAOF,WAAW;QACxD;MACF;IACA,KAAK,QAAQ;MAAE;QACb,MAAM;UAAED,SAAS;UAAEC;QAAY,CAAC,GAAGpC,MAGlC;QACD,IAAImC,SAAS,CAACE,SAAS,CAAC3B,GAAG,CAAC,CAAC4B,OAAO,EAAE,OAAOF,WAAW;QACxD;MACF;IACA,KAAK,SAAS;MACZ,OAAOtB,SAAS,CAAEd,MAAM,CAA6BA,MAAM,EAAEU,GAAG,CAAC;IACnE,KAAK,YAAY;MAAE;QACjB,MAAM;UACJO,IAAI,EAAE;YAAEjB,MAAM,EAAEuC;UAAY;QAC9B,CAAC,GAAGvC,MAAyC;QAC7C,OAAOc,SAAS,CAACyB,WAAW,EAAE7B,GAAG,CAAC;MACpC;IACA,KAAK,aAAa;MAChB,OAAOI,SAAS,CAAEd,MAAM,CAAiCwC,MAAM,CAAC,CAAC,EAAE9B,GAAG,CAAC;IACzE,KAAK,aAAa;MAChB,OAAOI,SAAS,CAAEd,MAAM,CAAiCwC,MAAM,CAAC,CAAC,EAAE9B,GAAG,CAAC;IACzE,KAAK,YAAY;MACf,OAAOI,SAAS,CACbd,MAAM,CAAgCyC,aAAa,CAAC,CAAC,EACtD/B,GACF,CAAC;IACH,KAAK,UAAU;MACb,OAAOI,SAAS,CAAEd,MAAM,CAA8B0C,WAAW,CAAC,CAAC,EAAEhC,GAAG,CAAC;IAC3E,KAAK,YAAY;MACf,OAAOI,SAAS,CACbd,MAAM,CAAqCiB,IAAI,CAAC0B,IAAI,EACrDjC,GACF,CAAC;IACH,KAAK,aAAa;MAChB,OAAOI,SAAS,CACbd,MAAM,CAA+CiB,IAAI,CAAC2B,EAAE,EAC7DlC,GACF,CAAC;EACL;EACA,OAAOqB,SAAS;AAClB","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"FieldPath.mjs","names":["z","pathstring","parsePathstring","FieldPath","path","schema","subfields","constructor","root","get","Array","isArray","Error","reduce","field","key","subfield","_this$subfields","cached","subschema","Map","set","_def","typeName","ZodFirstPartyTypeKind","ZodAny","element","shape","unknownKeys","catchall","ZodNever","unknown","options","map","opt","filter","length","union","undefined","discUnion","items","rest","keySchema","valueSchema","safeParse","success","innerSchema","unwrap","removeDefault","removeCatch","type","_in","in","out","pipe"],"sources":["src/FieldPath.ts"],"sourcesContent":["import z from 'zod'\nimport { pathstring } from './util/pathstring'\nimport { SchemaAt } from './util/SchemaAt'\nimport { PathInSchema, PathstringInSchema } from './util/PathInSchema'\nimport { parsePathstring } from './util/parsePathstring'\n\nexport type FieldPathForValue<Value, RawValue = any> = FieldPath<\n z.ZodType<Value, any, RawValue>\n>\nexport type FieldPathForRawValue<RawValue> = FieldPath<\n z.ZodType<any, any, RawValue>\n>\n\nexport class FieldPath<T extends z.ZodTypeAny = z.ZodTypeAny> {\n readonly path: BasePath\n readonly pathstring: string\n readonly schema: T\n\n private subfields: Map<SubpathKey<T>, FieldPath> | undefined\n\n private constructor({ schema, path }: { schema: T; path: BasePath }) {\n this.path = path\n this.schema = schema\n this.pathstring = pathstring(path)\n }\n\n static root<T extends z.ZodTypeAny>(schema: T) {\n return new FieldPath({ schema, path: [] })\n }\n\n get<Path extends PathInSchema<T>>(\n path: Path\n ): SchemaAt<T, Path> extends never ? never : FieldPath<SchemaAt<T, Path>>\n get<Pathstring extends PathstringInSchema<T>>(\n path: Pathstring\n ): FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>\n get(path: any): FieldPath {\n if (typeof path === 'string') path = parsePathstring(path)\n if (!Array.isArray(path)) throw new Error(`invalid path: ${path}`)\n return path.reduce((field, key) => field.subfield(key), this)\n }\n\n subfield<K extends SubpathKey<T>>(key: K): FieldPath<SchemaAt<T, [K]>> {\n const cached = this.subfields?.get(key)\n if (cached) return cached as any\n const schema = subschema(this.schema, key)\n if (!schema) throw new Error(`invalid subschema key: ${key}`)\n const subfield = new FieldPath({\n path: [...this.path, key] as any,\n schema: schema as any,\n })\n if (this.subfields == null) this.subfields = new Map()\n this.subfields.set(key, subfield)\n return subfield\n }\n}\n\nexport type BasePath = (string | number)[]\n\nexport type SubpathKey<T extends z.ZodTypeAny> = 0 extends 1 & T\n ? any\n : 0 extends 1 & z.input<T>\n ? any\n : T extends z.ZodObject<infer Shape, infer UnknownKeys>\n ? UnknownKeys extends 'passthrough'\n ? string\n : keyof Shape\n : T extends z.ZodRecord<infer Key, any>\n ? z.input<Key>\n : T extends z.ZodMap<infer Key, any>\n ? z.input<Key>\n : T extends z.ZodArray<any>\n ? number\n : T extends z.ZodTuple<any, any>\n ? number\n : T extends z.ZodLazy<infer U>\n ? SubpathKey<U>\n : T extends z.ZodUnion<infer Options>\n ? SubpathKey<Options[number]>\n : T extends z.ZodDiscriminatedUnion<any, infer Options>\n ? SubpathKey<Options[number]>\n : T extends z.ZodOptional<infer U>\n ? SubpathKey<U>\n : T extends z.ZodNullable<infer U>\n ? SubpathKey<U>\n : T extends z.ZodDefault<infer U>\n ? SubpathKey<U>\n : T extends z.ZodCatch<infer U>\n ? SubpathKey<U>\n : T extends z.ZodEffects<infer U, any>\n ? SubpathKey<U>\n : T extends z.ZodBranded<infer U, any>\n ? SubpathKey<U>\n : never\n\nexport type AllPaths<T extends z.ZodTypeAny> = SubpathKey<T> extends never\n ? []\n : [] | ValuesOf<SubpathKeyMap<T>>\n\ntype ValuesOf<O> = O[keyof O]\n\nexport type SubpathKeyMap<T extends z.ZodTypeAny> = {\n [K in SubpathKey<T>]: [K, ...AllPaths<SchemaAt<T, [K]>>]\n}\n\nfunction subschema(\n schema: z.ZodTypeAny,\n key: string\n): z.ZodTypeAny | undefined {\n switch (schema._def.typeName) {\n case z.ZodFirstPartyTypeKind.ZodAny:\n case 'ZodArray':\n if (typeof key === 'number') return (schema as z.ZodArray<any>).element\n break\n case 'ZodObject': {\n const {\n shape,\n _def: { unknownKeys, catchall },\n } = schema as z.AnyZodObject\n if (key in shape) return shape[key]\n if (unknownKeys === 'passthrough') {\n return catchall._def.typeName === z.ZodFirstPartyTypeKind.ZodNever\n ? z.unknown()\n : catchall\n }\n break\n }\n case 'ZodUnion': {\n const options = (\n schema as z.ZodUnion<[z.ZodTypeAny, ...z.ZodTypeAny[]]>\n ).options\n .map((opt) => subschema(opt, key))\n .filter((opt): opt is z.ZodTypeAny => opt != null)\n return options.length > 1\n ? z.union(options as any)\n : options.length === 1\n ? options[0]\n : undefined\n }\n case 'ZodDiscriminatedUnion': {\n const discUnion = schema as z.ZodDiscriminatedUnion<\n any,\n [z.AnyZodObject, ...z.AnyZodObject[]]\n >\n const options = discUnion.options\n .map((opt) => subschema(opt, key))\n .filter((opt): opt is z.ZodTypeAny => opt != null)\n return options.length > 1\n ? z.union(options as any)\n : options.length === 1\n ? options[0]\n : undefined\n break\n }\n case 'ZodIntersection':\n break\n case 'ZodTuple': {\n const {\n items,\n _def: { rest },\n } = schema as z.ZodTuple<any, any>\n if (typeof key === 'number' && key > 0 && key < items.length) {\n return items[key]\n }\n if (rest) return rest\n break\n }\n case 'ZodRecord': {\n const { keySchema, valueSchema } = schema as z.ZodRecord<\n z.ZodTypeAny,\n z.ZodTypeAny\n >\n if (keySchema.safeParse(key).success) return valueSchema\n break\n }\n case 'ZodMap': {\n const { keySchema, valueSchema } = schema as z.ZodMap<\n z.ZodTypeAny,\n z.ZodTypeAny\n >\n if (keySchema.safeParse(key).success) return valueSchema\n break\n }\n case 'ZodLazy':\n return subschema((schema as z.ZodLazy<z.ZodTypeAny>).schema, key)\n case 'ZodEffects': {\n const {\n _def: { schema: innerSchema },\n } = schema as z.ZodEffects<z.ZodTypeAny, any>\n return subschema(innerSchema, key)\n }\n case 'ZodOptional':\n return subschema((schema as z.ZodOptional<z.ZodTypeAny>).unwrap(), key)\n case 'ZodNullable':\n return subschema((schema as z.ZodNullable<z.ZodTypeAny>).unwrap(), key)\n case 'ZodDefault':\n return subschema(\n (schema as z.ZodDefault<z.ZodTypeAny>).removeDefault(),\n key\n )\n case 'ZodCatch':\n return subschema((schema as z.ZodCatch<z.ZodTypeAny>).removeCatch(), key)\n case 'ZodBranded':\n return subschema(\n (schema as z.ZodBranded<z.ZodTypeAny, any>)._def.type,\n key\n )\n case 'ZodPipeline': {\n const { _def } = schema as z.ZodPipeline<z.ZodTypeAny, z.ZodTypeAny>\n const _in = subschema(_def.in, key)\n const out = subschema(_def.out, key)\n return _in && out ? _in.pipe(out) : _in || out\n }\n }\n return undefined\n}\n"],"mappings":"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","ignoreList":[]}
|
package/index.d.ts
CHANGED
|
@@ -11,4 +11,5 @@ export { useFormValues } from './useFormValues';
|
|
|
11
11
|
export { useHtmlField, type TypedUseHtmlField, type UseHtmlFieldOptions, type UseHtmlFieldProps, type HtmlFieldInputProps, type ValidUseHtmlFieldProps, } from './useHtmlField';
|
|
12
12
|
export { useInitialize } from './useInitialize';
|
|
13
13
|
export { useSubmit } from './useSubmit';
|
|
14
|
+
export { conditionalValidate, ConditionalValidator, } from './ConditionalValidator';
|
|
14
15
|
//# sourceMappingURL=index.d.ts.map
|
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAC7D,OAAO,EACL,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,GACzB,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,SAAS,EACT,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,GAC1B,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AAC7E,OAAO,EACL,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,GAC5B,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAC7D,OAAO,EACL,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,GACzB,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,SAAS,EACT,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,GAC1B,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AAC7E,OAAO,EACL,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,GAC5B,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EACL,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,wBAAwB,CAAA"}
|
package/index.js
CHANGED
|
@@ -3,12 +3,24 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
Object.defineProperty(exports, "ConditionalValidator", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _ConditionalValidator.ConditionalValidator;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
6
12
|
Object.defineProperty(exports, "FieldPath", {
|
|
7
13
|
enumerable: true,
|
|
8
14
|
get: function get() {
|
|
9
15
|
return _FieldPath.FieldPath;
|
|
10
16
|
}
|
|
11
17
|
});
|
|
18
|
+
Object.defineProperty(exports, "conditionalValidate", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function get() {
|
|
21
|
+
return _ConditionalValidator.conditionalValidate;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
12
24
|
Object.defineProperty(exports, "createZodForm", {
|
|
13
25
|
enumerable: true,
|
|
14
26
|
get: function get() {
|
|
@@ -73,4 +85,5 @@ var _useFormValues = require("./useFormValues.js");
|
|
|
73
85
|
var _useHtmlField = require("./useHtmlField.js");
|
|
74
86
|
var _useInitialize = require("./useInitialize.js");
|
|
75
87
|
var _useSubmit = require("./useSubmit.js");
|
|
88
|
+
var _ConditionalValidator = require("./ConditionalValidator.js");
|
|
76
89
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_createZodForm","require","_FieldPath","_useField","_useArrayField","_useFormContext","_useFormStatus","_useFormValues","_useHtmlField","_useInitialize","_useSubmit"],"sources":["src/index.ts"],"sourcesContent":["export { createZodForm, type ZodForm } from './createZodForm'\nexport {\n type FieldMeta,\n type SubmitHandler,\n type SubmitSuccededHandler,\n type SubmitFailedHandler,\n} from './FormState'\nexport {\n FieldPath,\n type FieldPathForValue,\n type FieldPathForRawValue,\n} from './FieldPath'\nexport { useField, type UseFieldProps, type TypedUseField } from './useField'\nexport {\n useArrayField,\n type UseArrayFieldProps,\n type TypedUseArrayField,\n} from './useArrayField'\nexport { type FormContextProps } from './FormContext'\nexport { useFormContext } from './useFormContext'\nexport { type FormStatus } from './createSelectFormStatus'\nexport { useFormStatus } from './useFormStatus'\nexport { useFormValues } from './useFormValues'\nexport {\n useHtmlField,\n type TypedUseHtmlField,\n type UseHtmlFieldOptions,\n type UseHtmlFieldProps,\n type HtmlFieldInputProps,\n type ValidUseHtmlFieldProps,\n} from './useHtmlField'\nexport { useInitialize } from './useInitialize'\nexport { useSubmit } from './useSubmit'\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":["_createZodForm","require","_FieldPath","_useField","_useArrayField","_useFormContext","_useFormStatus","_useFormValues","_useHtmlField","_useInitialize","_useSubmit","_ConditionalValidator"],"sources":["src/index.ts"],"sourcesContent":["export { createZodForm, type ZodForm } from './createZodForm'\nexport {\n type FieldMeta,\n type SubmitHandler,\n type SubmitSuccededHandler,\n type SubmitFailedHandler,\n} from './FormState'\nexport {\n FieldPath,\n type FieldPathForValue,\n type FieldPathForRawValue,\n} from './FieldPath'\nexport { useField, type UseFieldProps, type TypedUseField } from './useField'\nexport {\n useArrayField,\n type UseArrayFieldProps,\n type TypedUseArrayField,\n} from './useArrayField'\nexport { type FormContextProps } from './FormContext'\nexport { useFormContext } from './useFormContext'\nexport { type FormStatus } from './createSelectFormStatus'\nexport { useFormStatus } from './useFormStatus'\nexport { useFormValues } from './useFormValues'\nexport {\n useHtmlField,\n type TypedUseHtmlField,\n type UseHtmlFieldOptions,\n type UseHtmlFieldProps,\n type HtmlFieldInputProps,\n type ValidUseHtmlFieldProps,\n} from './useHtmlField'\nexport { useInitialize } from './useInitialize'\nexport { useSubmit } from './useSubmit'\nexport {\n conditionalValidate,\n ConditionalValidator,\n} from './ConditionalValidator'\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AAOA,IAAAC,UAAA,GAAAD,OAAA;AAKA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AAMA,IAAAI,eAAA,GAAAJ,OAAA;AAEA,IAAAK,cAAA,GAAAL,OAAA;AACA,IAAAM,cAAA,GAAAN,OAAA;AACA,IAAAO,aAAA,GAAAP,OAAA;AAQA,IAAAQ,cAAA,GAAAR,OAAA;AACA,IAAAS,UAAA,GAAAT,OAAA;AACA,IAAAU,qBAAA,GAAAV,OAAA","ignoreList":[]}
|
package/index.mjs
CHANGED
|
@@ -8,4 +8,5 @@ export { useFormValues } from "./useFormValues.mjs";
|
|
|
8
8
|
export { useHtmlField } from "./useHtmlField.mjs";
|
|
9
9
|
export { useInitialize } from "./useInitialize.mjs";
|
|
10
10
|
export { useSubmit } from "./useSubmit.mjs";
|
|
11
|
+
export { conditionalValidate, ConditionalValidator } from "./ConditionalValidator.mjs";
|
|
11
12
|
//# sourceMappingURL=index.mjs.map
|
package/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["createZodForm","FieldPath","useField","useArrayField","useFormContext","useFormStatus","useFormValues","useHtmlField","useInitialize","useSubmit"],"sources":["src/index.ts"],"sourcesContent":["export { createZodForm, type ZodForm } from './createZodForm'\nexport {\n type FieldMeta,\n type SubmitHandler,\n type SubmitSuccededHandler,\n type SubmitFailedHandler,\n} from './FormState'\nexport {\n FieldPath,\n type FieldPathForValue,\n type FieldPathForRawValue,\n} from './FieldPath'\nexport { useField, type UseFieldProps, type TypedUseField } from './useField'\nexport {\n useArrayField,\n type UseArrayFieldProps,\n type TypedUseArrayField,\n} from './useArrayField'\nexport { type FormContextProps } from './FormContext'\nexport { useFormContext } from './useFormContext'\nexport { type FormStatus } from './createSelectFormStatus'\nexport { useFormStatus } from './useFormStatus'\nexport { useFormValues } from './useFormValues'\nexport {\n useHtmlField,\n type TypedUseHtmlField,\n type UseHtmlFieldOptions,\n type UseHtmlFieldProps,\n type HtmlFieldInputProps,\n type ValidUseHtmlFieldProps,\n} from './useHtmlField'\nexport { useInitialize } from './useInitialize'\nexport { useSubmit } from './useSubmit'\n"],"mappings":"AAAA,SAASA,aAAa;AAOtB,SACEC,SAAS;AAIX,SAASC,QAAQ;AACjB,SACEC,aAAa;AAKf,SAASC,cAAc;AAEvB,SAASC,aAAa;AACtB,SAASC,aAAa;AACtB,SACEC,YAAY;AAOd,SAASC,aAAa;AACtB,SAASC,SAAS","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["createZodForm","FieldPath","useField","useArrayField","useFormContext","useFormStatus","useFormValues","useHtmlField","useInitialize","useSubmit","conditionalValidate","ConditionalValidator"],"sources":["src/index.ts"],"sourcesContent":["export { createZodForm, type ZodForm } from './createZodForm'\nexport {\n type FieldMeta,\n type SubmitHandler,\n type SubmitSuccededHandler,\n type SubmitFailedHandler,\n} from './FormState'\nexport {\n FieldPath,\n type FieldPathForValue,\n type FieldPathForRawValue,\n} from './FieldPath'\nexport { useField, type UseFieldProps, type TypedUseField } from './useField'\nexport {\n useArrayField,\n type UseArrayFieldProps,\n type TypedUseArrayField,\n} from './useArrayField'\nexport { type FormContextProps } from './FormContext'\nexport { useFormContext } from './useFormContext'\nexport { type FormStatus } from './createSelectFormStatus'\nexport { useFormStatus } from './useFormStatus'\nexport { useFormValues } from './useFormValues'\nexport {\n useHtmlField,\n type TypedUseHtmlField,\n type UseHtmlFieldOptions,\n type UseHtmlFieldProps,\n type HtmlFieldInputProps,\n type ValidUseHtmlFieldProps,\n} from './useHtmlField'\nexport { useInitialize } from './useInitialize'\nexport { useSubmit } from './useSubmit'\nexport {\n conditionalValidate,\n ConditionalValidator,\n} from './ConditionalValidator'\n"],"mappings":"AAAA,SAASA,aAAa;AAOtB,SACEC,SAAS;AAIX,SAASC,QAAQ;AACjB,SACEC,aAAa;AAKf,SAASC,cAAc;AAEvB,SAASC,aAAa;AACtB,SAASC,aAAa;AACtB,SACEC,YAAY;AAOd,SAASC,aAAa;AACtB,SAASC,SAAS;AAClB,SACEC,mBAAmB,EACnBC,oBAAoB","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"peerDependencies": {
|
|
31
31
|
"react": "^18.0.0"
|
|
32
32
|
},
|
|
33
|
-
"version": "1.1
|
|
33
|
+
"version": "1.2.1",
|
|
34
34
|
"sideEffects": false,
|
|
35
35
|
"engines": {
|
|
36
36
|
"node": ">=16"
|
|
@@ -44,6 +44,6 @@
|
|
|
44
44
|
"reselect": "^5.1.1",
|
|
45
45
|
"shallow-equal": "^3.1.0",
|
|
46
46
|
"zod": "^3.23.8",
|
|
47
|
-
"zod-invertible": "^1.
|
|
47
|
+
"zod-invertible": "^1.1.0"
|
|
48
48
|
}
|
|
49
49
|
}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import z from 'zod'
|
|
2
|
+
import { IgnoreEffect } from 'zod-invertible'
|
|
3
|
+
import { DeepPartial } from './util/DeepPartial'
|
|
4
|
+
|
|
5
|
+
type ConditionalCheck<T extends z.ZodTypeAny> = {
|
|
6
|
+
schema: T
|
|
7
|
+
check: (value: z.output<T>, ctx: z.RefinementCtx) => void | Promise<void>
|
|
8
|
+
async: boolean
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
interface ConditionalValidatorDef<T extends z.ZodTypeAny>
|
|
12
|
+
extends z.ZodEffectsDef<T> {
|
|
13
|
+
checks: ConditionalCheck<any>[]
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
type ConditionalRefineMessage<Output> =
|
|
17
|
+
| string
|
|
18
|
+
| z.CustomErrorParams
|
|
19
|
+
| z.CustomErrorParams[]
|
|
20
|
+
| ((value: Output) => z.CustomErrorParams | z.CustomErrorParams[])
|
|
21
|
+
|
|
22
|
+
type ConditionalRefineSchema<T extends z.ZodTypeAny> =
|
|
23
|
+
| z.ZodType<DeepPartial<z.output<T>>, any, DeepPartial<z.input<T>>>
|
|
24
|
+
| ((
|
|
25
|
+
schema: T
|
|
26
|
+
) => z.ZodType<DeepPartial<z.output<T>>, any, DeepPartial<z.input<T>>>)
|
|
27
|
+
|
|
28
|
+
function resolveSchema<T extends z.ZodTypeAny>(
|
|
29
|
+
baseSchema: T,
|
|
30
|
+
refineSchema: ConditionalRefineSchema<T>
|
|
31
|
+
) {
|
|
32
|
+
return typeof refineSchema === 'function'
|
|
33
|
+
? refineSchema(baseSchema)
|
|
34
|
+
: refineSchema
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export class ConditionalValidator<
|
|
38
|
+
T extends z.ZodTypeAny,
|
|
39
|
+
Output = z.output<T>,
|
|
40
|
+
Input = z.input<T>
|
|
41
|
+
> extends z.ZodEffects<T, Output, Input> {
|
|
42
|
+
declare _def: ConditionalValidatorDef<T>;
|
|
43
|
+
|
|
44
|
+
[IgnoreEffect] = true
|
|
45
|
+
|
|
46
|
+
constructor(schema: T, checks: ConditionalCheck<any>[]) {
|
|
47
|
+
super({
|
|
48
|
+
...makePreprocess(schema, checks)._def,
|
|
49
|
+
checks,
|
|
50
|
+
} satisfies ConditionalValidatorDef<T> as z.ZodEffectsDef<T>)
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
conditionalRefine(
|
|
54
|
+
schema: ConditionalRefineSchema<T>,
|
|
55
|
+
check: (value: z.output<T>) => unknown,
|
|
56
|
+
message: ConditionalRefineMessage<z.output<T>>
|
|
57
|
+
) {
|
|
58
|
+
return this.conditionalSuperRefine(schema, (value, ctx) => {
|
|
59
|
+
if (!check(value)) {
|
|
60
|
+
addIssues(ctx, value, message)
|
|
61
|
+
}
|
|
62
|
+
})
|
|
63
|
+
}
|
|
64
|
+
conditionalRefineAsync(
|
|
65
|
+
schema: ConditionalRefineSchema<T>,
|
|
66
|
+
check: (value: z.output<T>) => unknown | Promise<unknown>,
|
|
67
|
+
message: ConditionalRefineMessage<z.output<T>>
|
|
68
|
+
) {
|
|
69
|
+
return this.conditionalSuperRefineAsync(schema, async (value, ctx) => {
|
|
70
|
+
if (!(await check(value))) {
|
|
71
|
+
addIssues(ctx, value, message)
|
|
72
|
+
}
|
|
73
|
+
})
|
|
74
|
+
}
|
|
75
|
+
conditionalSuperRefine(
|
|
76
|
+
schema: ConditionalRefineSchema<T>,
|
|
77
|
+
check: (value: z.output<T>, ctx: z.RefinementCtx) => void
|
|
78
|
+
) {
|
|
79
|
+
return new ConditionalValidator(this._def.schema, [
|
|
80
|
+
...this._def.checks,
|
|
81
|
+
{ schema: resolveSchema(this._def.schema, schema), check, async: false },
|
|
82
|
+
])
|
|
83
|
+
}
|
|
84
|
+
conditionalSuperRefineAsync(
|
|
85
|
+
schema: ConditionalRefineSchema<T>,
|
|
86
|
+
check: (value: z.output<T>, ctx: z.RefinementCtx) => void | Promise<void>
|
|
87
|
+
) {
|
|
88
|
+
return new ConditionalValidator(this._def.schema, [
|
|
89
|
+
...this._def.checks,
|
|
90
|
+
{ schema: resolveSchema(this._def.schema, schema), check, async: true },
|
|
91
|
+
])
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export function conditionalValidate<T extends z.ZodTypeAny>(
|
|
96
|
+
schema: T
|
|
97
|
+
): ConditionalValidator<T> {
|
|
98
|
+
return new ConditionalValidator(schema, [])
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
function makePreprocess<T extends z.ZodTypeAny>(
|
|
102
|
+
schema: T,
|
|
103
|
+
checks: ConditionalCheck<any>[]
|
|
104
|
+
): z.ZodEffects<T> {
|
|
105
|
+
return z.preprocess((input, ctx) => {
|
|
106
|
+
const results = checks.map(({ schema, check, async }) => {
|
|
107
|
+
function handleParsed(
|
|
108
|
+
parsed: z.SafeParseReturnType<z.input<T>, z.output<T>>
|
|
109
|
+
) {
|
|
110
|
+
if (!parsed.success) return
|
|
111
|
+
return check(parsed.data, ctx)
|
|
112
|
+
}
|
|
113
|
+
return async
|
|
114
|
+
? schema.safeParseAsync(input).then(handleParsed)
|
|
115
|
+
: handleParsed(schema.safeParse(input))
|
|
116
|
+
})
|
|
117
|
+
return checks.some((c) => c.async)
|
|
118
|
+
? Promise.all(results).then(() => input)
|
|
119
|
+
: input
|
|
120
|
+
}, schema)
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
const asArray = <T>(value: T | T[]) => (Array.isArray(value) ? value : [value])
|
|
124
|
+
|
|
125
|
+
function addIssues<Output>(
|
|
126
|
+
ctx: z.RefinementCtx,
|
|
127
|
+
value: Output,
|
|
128
|
+
message: ConditionalRefineMessage<Output>
|
|
129
|
+
) {
|
|
130
|
+
const issues = asArray(
|
|
131
|
+
typeof message === 'function'
|
|
132
|
+
? message(value)
|
|
133
|
+
: typeof message === 'string'
|
|
134
|
+
? { message }
|
|
135
|
+
: message
|
|
136
|
+
)
|
|
137
|
+
for (const issue of issues) {
|
|
138
|
+
ctx.addIssue({ code: z.ZodIssueCode.custom, ...issue })
|
|
139
|
+
}
|
|
140
|
+
}
|
package/src/FieldPath.ts
CHANGED
|
@@ -118,7 +118,11 @@ function subschema(
|
|
|
118
118
|
_def: { unknownKeys, catchall },
|
|
119
119
|
} = schema as z.AnyZodObject
|
|
120
120
|
if (key in shape) return shape[key]
|
|
121
|
-
if (unknownKeys === 'passthrough')
|
|
121
|
+
if (unknownKeys === 'passthrough') {
|
|
122
|
+
return catchall._def.typeName === z.ZodFirstPartyTypeKind.ZodNever
|
|
123
|
+
? z.unknown()
|
|
124
|
+
: catchall
|
|
125
|
+
}
|
|
122
126
|
break
|
|
123
127
|
}
|
|
124
128
|
case 'ZodUnion': {
|
|
@@ -201,11 +205,12 @@ function subschema(
|
|
|
201
205
|
(schema as z.ZodBranded<z.ZodTypeAny, any>)._def.type,
|
|
202
206
|
key
|
|
203
207
|
)
|
|
204
|
-
case 'ZodPipeline':
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
)
|
|
208
|
+
case 'ZodPipeline': {
|
|
209
|
+
const { _def } = schema as z.ZodPipeline<z.ZodTypeAny, z.ZodTypeAny>
|
|
210
|
+
const _in = subschema(_def.in, key)
|
|
211
|
+
const out = subschema(_def.out, key)
|
|
212
|
+
return _in && out ? _in.pipe(out) : _in || out
|
|
213
|
+
}
|
|
209
214
|
}
|
|
210
215
|
return undefined
|
|
211
216
|
}
|
package/src/index.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeepPartial.d.ts","sourceRoot":"","sources":["../../src/util/DeepPartial.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG,GAAG,EAAE,GACjD;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACtC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeepPartial.js","names":[],"sources":["../../src/util/DeepPartial.ts"],"sourcesContent":["export type DeepPartial<T> = T extends object | any[]\n ? { [K in keyof T]?: DeepPartial<T[K]> }\n : T\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeepPartial.mjs","names":[],"sources":["../../src/util/DeepPartial.ts"],"sourcesContent":["export type DeepPartial<T> = T extends object | any[]\n ? { [K in keyof T]?: DeepPartial<T[K]> }\n : T\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isPromise.d.ts","sourceRoot":"","sources":["../../src/util/isPromise.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC,CAM5D"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.isPromise = isPromise;
|
|
8
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
9
|
+
function isPromise(value) {
|
|
10
|
+
return value != null && (0, _typeof2["default"])(value) === 'object' && typeof value.then === 'function';
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=isPromise.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isPromise.js","names":["isPromise","value","_typeof2","then"],"sources":["../../src/util/isPromise.ts"],"sourcesContent":["export function isPromise<U>(value: any): value is Promise<U> {\n return (\n value != null &&\n typeof value === 'object' &&\n typeof value.then === 'function'\n )\n}\n"],"mappings":";;;;;;;;AAAO,SAASA,SAASA,CAAIC,KAAU,EAAuB;EAC5D,OACEA,KAAK,IAAI,IAAI,IACb,IAAAC,QAAA,aAAOD,KAAK,MAAK,QAAQ,IACzB,OAAOA,KAAK,CAACE,IAAI,KAAK,UAAU;AAEpC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isPromise.mjs","names":["isPromise","value","then"],"sources":["../../src/util/isPromise.ts"],"sourcesContent":["export function isPromise<U>(value: any): value is Promise<U> {\n return (\n value != null &&\n typeof value === 'object' &&\n typeof value.then === 'function'\n )\n}\n"],"mappings":"AAAA,OAAO,SAASA,SAASA,CAAIC,KAAU,EAAuB;EAC5D,OACEA,KAAK,IAAI,IAAI,IACb,OAAOA,KAAK,KAAK,QAAQ,IACzB,OAAOA,KAAK,CAACC,IAAI,KAAK,UAAU;AAEpC","ignoreList":[]}
|
package/src/util/acceptsArray.ts
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import z from 'zod'
|
|
2
|
-
|
|
3
|
-
export function acceptsArray(schema: z.ZodTypeAny): boolean {
|
|
4
|
-
switch (schema._def.typeName) {
|
|
5
|
-
case z.ZodFirstPartyTypeKind.ZodArray:
|
|
6
|
-
case z.ZodFirstPartyTypeKind.ZodTuple:
|
|
7
|
-
return true
|
|
8
|
-
case z.ZodFirstPartyTypeKind.ZodUnion: {
|
|
9
|
-
const { options } = schema as z.ZodUnion<z.ZodUnionOptions>
|
|
10
|
-
return options.some(acceptsArray)
|
|
11
|
-
}
|
|
12
|
-
case z.ZodFirstPartyTypeKind.ZodIntersection: {
|
|
13
|
-
const {
|
|
14
|
-
_def: { left, right },
|
|
15
|
-
} = schema as z.ZodIntersection<z.ZodTypeAny, z.ZodTypeAny>
|
|
16
|
-
return acceptsArray(left) && acceptsArray(right)
|
|
17
|
-
}
|
|
18
|
-
case z.ZodFirstPartyTypeKind.ZodLazy: {
|
|
19
|
-
const { schema: innerSchema } = schema as z.ZodLazy<z.ZodTypeAny>
|
|
20
|
-
return acceptsArray(innerSchema)
|
|
21
|
-
}
|
|
22
|
-
case z.ZodFirstPartyTypeKind.ZodLiteral: {
|
|
23
|
-
const { value } = schema as z.ZodLiteral<any>
|
|
24
|
-
return typeof value === 'number'
|
|
25
|
-
}
|
|
26
|
-
case z.ZodFirstPartyTypeKind.ZodEffects: {
|
|
27
|
-
const {
|
|
28
|
-
_def: { schema: innerSchema },
|
|
29
|
-
} = schema as z.ZodEffects<z.ZodTypeAny>
|
|
30
|
-
return acceptsArray(innerSchema)
|
|
31
|
-
}
|
|
32
|
-
case z.ZodFirstPartyTypeKind.ZodOptional: {
|
|
33
|
-
const innerSchema = (schema as z.ZodOptional<z.ZodTypeAny>).unwrap()
|
|
34
|
-
return acceptsArray(innerSchema)
|
|
35
|
-
}
|
|
36
|
-
case z.ZodFirstPartyTypeKind.ZodNullable: {
|
|
37
|
-
const innerSchema = (schema as z.ZodNullable<z.ZodTypeAny>).unwrap()
|
|
38
|
-
return acceptsArray(innerSchema)
|
|
39
|
-
}
|
|
40
|
-
case z.ZodFirstPartyTypeKind.ZodDefault: {
|
|
41
|
-
const {
|
|
42
|
-
_def: { innerType },
|
|
43
|
-
} = schema as z.ZodDefault<z.ZodTypeAny>
|
|
44
|
-
return acceptsArray(innerType)
|
|
45
|
-
}
|
|
46
|
-
case z.ZodFirstPartyTypeKind.ZodCatch: {
|
|
47
|
-
const {
|
|
48
|
-
_def: { innerType },
|
|
49
|
-
} = schema as z.ZodCatch<z.ZodTypeAny>
|
|
50
|
-
return acceptsArray(innerType)
|
|
51
|
-
}
|
|
52
|
-
case z.ZodFirstPartyTypeKind.ZodBranded: {
|
|
53
|
-
const {
|
|
54
|
-
_def: { type: innerType },
|
|
55
|
-
} = schema as z.ZodBranded<z.ZodTypeAny, string | number | symbol>
|
|
56
|
-
return acceptsArray(innerType)
|
|
57
|
-
}
|
|
58
|
-
case z.ZodFirstPartyTypeKind.ZodPipeline: {
|
|
59
|
-
const {
|
|
60
|
-
_def: { in: input },
|
|
61
|
-
} = schema as z.ZodPipeline<z.ZodTypeAny, z.ZodTypeAny>
|
|
62
|
-
return acceptsArray(input)
|
|
63
|
-
}
|
|
64
|
-
case z.ZodFirstPartyTypeKind.ZodReadonly: {
|
|
65
|
-
const {
|
|
66
|
-
_def: { innerType },
|
|
67
|
-
} = schema as z.ZodReadonly<z.ZodTypeAny>
|
|
68
|
-
return acceptsArray(innerType)
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
return false
|
|
72
|
-
}
|
package/util/acceptsArray.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"acceptsArray.d.ts","sourceRoot":"","sources":["../../src/util/acceptsArray.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAA;AAEnB,wBAAgB,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,GAAG,OAAO,CAqE1D"}
|
package/util/acceptsArray.js
DELETED
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.acceptsArray = acceptsArray;
|
|
8
|
-
var _zod = _interopRequireDefault(require("zod"));
|
|
9
|
-
function acceptsArray(schema) {
|
|
10
|
-
switch (schema._def.typeName) {
|
|
11
|
-
case _zod["default"].ZodFirstPartyTypeKind.ZodArray:
|
|
12
|
-
case _zod["default"].ZodFirstPartyTypeKind.ZodTuple:
|
|
13
|
-
return true;
|
|
14
|
-
case _zod["default"].ZodFirstPartyTypeKind.ZodUnion:
|
|
15
|
-
{
|
|
16
|
-
var _ref = schema,
|
|
17
|
-
options = _ref.options;
|
|
18
|
-
return options.some(acceptsArray);
|
|
19
|
-
}
|
|
20
|
-
case _zod["default"].ZodFirstPartyTypeKind.ZodIntersection:
|
|
21
|
-
{
|
|
22
|
-
var _ref2 = schema,
|
|
23
|
-
_ref2$_def = _ref2._def,
|
|
24
|
-
left = _ref2$_def.left,
|
|
25
|
-
right = _ref2$_def.right;
|
|
26
|
-
return acceptsArray(left) && acceptsArray(right);
|
|
27
|
-
}
|
|
28
|
-
case _zod["default"].ZodFirstPartyTypeKind.ZodLazy:
|
|
29
|
-
{
|
|
30
|
-
var _ref3 = schema,
|
|
31
|
-
innerSchema = _ref3.schema;
|
|
32
|
-
return acceptsArray(innerSchema);
|
|
33
|
-
}
|
|
34
|
-
case _zod["default"].ZodFirstPartyTypeKind.ZodLiteral:
|
|
35
|
-
{
|
|
36
|
-
var _ref4 = schema,
|
|
37
|
-
value = _ref4.value;
|
|
38
|
-
return typeof value === 'number';
|
|
39
|
-
}
|
|
40
|
-
case _zod["default"].ZodFirstPartyTypeKind.ZodEffects:
|
|
41
|
-
{
|
|
42
|
-
var _ref5 = schema,
|
|
43
|
-
_innerSchema = _ref5._def.schema;
|
|
44
|
-
return acceptsArray(_innerSchema);
|
|
45
|
-
}
|
|
46
|
-
case _zod["default"].ZodFirstPartyTypeKind.ZodOptional:
|
|
47
|
-
{
|
|
48
|
-
var _innerSchema2 = schema.unwrap();
|
|
49
|
-
return acceptsArray(_innerSchema2);
|
|
50
|
-
}
|
|
51
|
-
case _zod["default"].ZodFirstPartyTypeKind.ZodNullable:
|
|
52
|
-
{
|
|
53
|
-
var _innerSchema3 = schema.unwrap();
|
|
54
|
-
return acceptsArray(_innerSchema3);
|
|
55
|
-
}
|
|
56
|
-
case _zod["default"].ZodFirstPartyTypeKind.ZodDefault:
|
|
57
|
-
{
|
|
58
|
-
var _ref6 = schema,
|
|
59
|
-
innerType = _ref6._def.innerType;
|
|
60
|
-
return acceptsArray(innerType);
|
|
61
|
-
}
|
|
62
|
-
case _zod["default"].ZodFirstPartyTypeKind.ZodCatch:
|
|
63
|
-
{
|
|
64
|
-
var _ref7 = schema,
|
|
65
|
-
_innerType = _ref7._def.innerType;
|
|
66
|
-
return acceptsArray(_innerType);
|
|
67
|
-
}
|
|
68
|
-
case _zod["default"].ZodFirstPartyTypeKind.ZodBranded:
|
|
69
|
-
{
|
|
70
|
-
var _ref8 = schema,
|
|
71
|
-
_innerType2 = _ref8._def.type;
|
|
72
|
-
return acceptsArray(_innerType2);
|
|
73
|
-
}
|
|
74
|
-
case _zod["default"].ZodFirstPartyTypeKind.ZodPipeline:
|
|
75
|
-
{
|
|
76
|
-
var _ref9 = schema,
|
|
77
|
-
input = _ref9._def["in"];
|
|
78
|
-
return acceptsArray(input);
|
|
79
|
-
}
|
|
80
|
-
case _zod["default"].ZodFirstPartyTypeKind.ZodReadonly:
|
|
81
|
-
{
|
|
82
|
-
var _ref10 = schema,
|
|
83
|
-
_innerType3 = _ref10._def.innerType;
|
|
84
|
-
return acceptsArray(_innerType3);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
return false;
|
|
88
|
-
}
|
|
89
|
-
//# sourceMappingURL=acceptsArray.js.map
|
package/util/acceptsArray.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"acceptsArray.js","names":["_zod","_interopRequireDefault","require","acceptsArray","schema","_def","typeName","z","ZodFirstPartyTypeKind","ZodArray","ZodTuple","ZodUnion","_ref","options","some","ZodIntersection","_ref2","_ref2$_def","left","right","ZodLazy","_ref3","innerSchema","ZodLiteral","_ref4","value","ZodEffects","_ref5","ZodOptional","unwrap","ZodNullable","ZodDefault","_ref6","innerType","ZodCatch","_ref7","ZodBranded","_ref8","type","ZodPipeline","_ref9","input","ZodReadonly","_ref10"],"sources":["../../src/util/acceptsArray.ts"],"sourcesContent":["import z from 'zod'\n\nexport function acceptsArray(schema: z.ZodTypeAny): boolean {\n switch (schema._def.typeName) {\n case z.ZodFirstPartyTypeKind.ZodArray:\n case z.ZodFirstPartyTypeKind.ZodTuple:\n return true\n case z.ZodFirstPartyTypeKind.ZodUnion: {\n const { options } = schema as z.ZodUnion<z.ZodUnionOptions>\n return options.some(acceptsArray)\n }\n case z.ZodFirstPartyTypeKind.ZodIntersection: {\n const {\n _def: { left, right },\n } = schema as z.ZodIntersection<z.ZodTypeAny, z.ZodTypeAny>\n return acceptsArray(left) && acceptsArray(right)\n }\n case z.ZodFirstPartyTypeKind.ZodLazy: {\n const { schema: innerSchema } = schema as z.ZodLazy<z.ZodTypeAny>\n return acceptsArray(innerSchema)\n }\n case z.ZodFirstPartyTypeKind.ZodLiteral: {\n const { value } = schema as z.ZodLiteral<any>\n return typeof value === 'number'\n }\n case z.ZodFirstPartyTypeKind.ZodEffects: {\n const {\n _def: { schema: innerSchema },\n } = schema as z.ZodEffects<z.ZodTypeAny>\n return acceptsArray(innerSchema)\n }\n case z.ZodFirstPartyTypeKind.ZodOptional: {\n const innerSchema = (schema as z.ZodOptional<z.ZodTypeAny>).unwrap()\n return acceptsArray(innerSchema)\n }\n case z.ZodFirstPartyTypeKind.ZodNullable: {\n const innerSchema = (schema as z.ZodNullable<z.ZodTypeAny>).unwrap()\n return acceptsArray(innerSchema)\n }\n case z.ZodFirstPartyTypeKind.ZodDefault: {\n const {\n _def: { innerType },\n } = schema as z.ZodDefault<z.ZodTypeAny>\n return acceptsArray(innerType)\n }\n case z.ZodFirstPartyTypeKind.ZodCatch: {\n const {\n _def: { innerType },\n } = schema as z.ZodCatch<z.ZodTypeAny>\n return acceptsArray(innerType)\n }\n case z.ZodFirstPartyTypeKind.ZodBranded: {\n const {\n _def: { type: innerType },\n } = schema as z.ZodBranded<z.ZodTypeAny, string | number | symbol>\n return acceptsArray(innerType)\n }\n case z.ZodFirstPartyTypeKind.ZodPipeline: {\n const {\n _def: { in: input },\n } = schema as z.ZodPipeline<z.ZodTypeAny, z.ZodTypeAny>\n return acceptsArray(input)\n }\n case z.ZodFirstPartyTypeKind.ZodReadonly: {\n const {\n _def: { innerType },\n } = schema as z.ZodReadonly<z.ZodTypeAny>\n return acceptsArray(innerType)\n }\n }\n return false\n}\n"],"mappings":"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","ignoreList":[]}
|
package/util/acceptsArray.mjs
DELETED
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import z from 'zod';
|
|
2
|
-
export function acceptsArray(schema) {
|
|
3
|
-
switch (schema._def.typeName) {
|
|
4
|
-
case z.ZodFirstPartyTypeKind.ZodArray:
|
|
5
|
-
case z.ZodFirstPartyTypeKind.ZodTuple:
|
|
6
|
-
return true;
|
|
7
|
-
case z.ZodFirstPartyTypeKind.ZodUnion:
|
|
8
|
-
{
|
|
9
|
-
const {
|
|
10
|
-
options
|
|
11
|
-
} = schema;
|
|
12
|
-
return options.some(acceptsArray);
|
|
13
|
-
}
|
|
14
|
-
case z.ZodFirstPartyTypeKind.ZodIntersection:
|
|
15
|
-
{
|
|
16
|
-
const {
|
|
17
|
-
_def: {
|
|
18
|
-
left,
|
|
19
|
-
right
|
|
20
|
-
}
|
|
21
|
-
} = schema;
|
|
22
|
-
return acceptsArray(left) && acceptsArray(right);
|
|
23
|
-
}
|
|
24
|
-
case z.ZodFirstPartyTypeKind.ZodLazy:
|
|
25
|
-
{
|
|
26
|
-
const {
|
|
27
|
-
schema: innerSchema
|
|
28
|
-
} = schema;
|
|
29
|
-
return acceptsArray(innerSchema);
|
|
30
|
-
}
|
|
31
|
-
case z.ZodFirstPartyTypeKind.ZodLiteral:
|
|
32
|
-
{
|
|
33
|
-
const {
|
|
34
|
-
value
|
|
35
|
-
} = schema;
|
|
36
|
-
return typeof value === 'number';
|
|
37
|
-
}
|
|
38
|
-
case z.ZodFirstPartyTypeKind.ZodEffects:
|
|
39
|
-
{
|
|
40
|
-
const {
|
|
41
|
-
_def: {
|
|
42
|
-
schema: innerSchema
|
|
43
|
-
}
|
|
44
|
-
} = schema;
|
|
45
|
-
return acceptsArray(innerSchema);
|
|
46
|
-
}
|
|
47
|
-
case z.ZodFirstPartyTypeKind.ZodOptional:
|
|
48
|
-
{
|
|
49
|
-
const innerSchema = schema.unwrap();
|
|
50
|
-
return acceptsArray(innerSchema);
|
|
51
|
-
}
|
|
52
|
-
case z.ZodFirstPartyTypeKind.ZodNullable:
|
|
53
|
-
{
|
|
54
|
-
const innerSchema = schema.unwrap();
|
|
55
|
-
return acceptsArray(innerSchema);
|
|
56
|
-
}
|
|
57
|
-
case z.ZodFirstPartyTypeKind.ZodDefault:
|
|
58
|
-
{
|
|
59
|
-
const {
|
|
60
|
-
_def: {
|
|
61
|
-
innerType
|
|
62
|
-
}
|
|
63
|
-
} = schema;
|
|
64
|
-
return acceptsArray(innerType);
|
|
65
|
-
}
|
|
66
|
-
case z.ZodFirstPartyTypeKind.ZodCatch:
|
|
67
|
-
{
|
|
68
|
-
const {
|
|
69
|
-
_def: {
|
|
70
|
-
innerType
|
|
71
|
-
}
|
|
72
|
-
} = schema;
|
|
73
|
-
return acceptsArray(innerType);
|
|
74
|
-
}
|
|
75
|
-
case z.ZodFirstPartyTypeKind.ZodBranded:
|
|
76
|
-
{
|
|
77
|
-
const {
|
|
78
|
-
_def: {
|
|
79
|
-
type: innerType
|
|
80
|
-
}
|
|
81
|
-
} = schema;
|
|
82
|
-
return acceptsArray(innerType);
|
|
83
|
-
}
|
|
84
|
-
case z.ZodFirstPartyTypeKind.ZodPipeline:
|
|
85
|
-
{
|
|
86
|
-
const {
|
|
87
|
-
_def: {
|
|
88
|
-
in: input
|
|
89
|
-
}
|
|
90
|
-
} = schema;
|
|
91
|
-
return acceptsArray(input);
|
|
92
|
-
}
|
|
93
|
-
case z.ZodFirstPartyTypeKind.ZodReadonly:
|
|
94
|
-
{
|
|
95
|
-
const {
|
|
96
|
-
_def: {
|
|
97
|
-
innerType
|
|
98
|
-
}
|
|
99
|
-
} = schema;
|
|
100
|
-
return acceptsArray(innerType);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
return false;
|
|
104
|
-
}
|
|
105
|
-
//# sourceMappingURL=acceptsArray.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"acceptsArray.mjs","names":["z","acceptsArray","schema","_def","typeName","ZodFirstPartyTypeKind","ZodArray","ZodTuple","ZodUnion","options","some","ZodIntersection","left","right","ZodLazy","innerSchema","ZodLiteral","value","ZodEffects","ZodOptional","unwrap","ZodNullable","ZodDefault","innerType","ZodCatch","ZodBranded","type","ZodPipeline","in","input","ZodReadonly"],"sources":["../../src/util/acceptsArray.ts"],"sourcesContent":["import z from 'zod'\n\nexport function acceptsArray(schema: z.ZodTypeAny): boolean {\n switch (schema._def.typeName) {\n case z.ZodFirstPartyTypeKind.ZodArray:\n case z.ZodFirstPartyTypeKind.ZodTuple:\n return true\n case z.ZodFirstPartyTypeKind.ZodUnion: {\n const { options } = schema as z.ZodUnion<z.ZodUnionOptions>\n return options.some(acceptsArray)\n }\n case z.ZodFirstPartyTypeKind.ZodIntersection: {\n const {\n _def: { left, right },\n } = schema as z.ZodIntersection<z.ZodTypeAny, z.ZodTypeAny>\n return acceptsArray(left) && acceptsArray(right)\n }\n case z.ZodFirstPartyTypeKind.ZodLazy: {\n const { schema: innerSchema } = schema as z.ZodLazy<z.ZodTypeAny>\n return acceptsArray(innerSchema)\n }\n case z.ZodFirstPartyTypeKind.ZodLiteral: {\n const { value } = schema as z.ZodLiteral<any>\n return typeof value === 'number'\n }\n case z.ZodFirstPartyTypeKind.ZodEffects: {\n const {\n _def: { schema: innerSchema },\n } = schema as z.ZodEffects<z.ZodTypeAny>\n return acceptsArray(innerSchema)\n }\n case z.ZodFirstPartyTypeKind.ZodOptional: {\n const innerSchema = (schema as z.ZodOptional<z.ZodTypeAny>).unwrap()\n return acceptsArray(innerSchema)\n }\n case z.ZodFirstPartyTypeKind.ZodNullable: {\n const innerSchema = (schema as z.ZodNullable<z.ZodTypeAny>).unwrap()\n return acceptsArray(innerSchema)\n }\n case z.ZodFirstPartyTypeKind.ZodDefault: {\n const {\n _def: { innerType },\n } = schema as z.ZodDefault<z.ZodTypeAny>\n return acceptsArray(innerType)\n }\n case z.ZodFirstPartyTypeKind.ZodCatch: {\n const {\n _def: { innerType },\n } = schema as z.ZodCatch<z.ZodTypeAny>\n return acceptsArray(innerType)\n }\n case z.ZodFirstPartyTypeKind.ZodBranded: {\n const {\n _def: { type: innerType },\n } = schema as z.ZodBranded<z.ZodTypeAny, string | number | symbol>\n return acceptsArray(innerType)\n }\n case z.ZodFirstPartyTypeKind.ZodPipeline: {\n const {\n _def: { in: input },\n } = schema as z.ZodPipeline<z.ZodTypeAny, z.ZodTypeAny>\n return acceptsArray(input)\n }\n case z.ZodFirstPartyTypeKind.ZodReadonly: {\n const {\n _def: { innerType },\n } = schema as z.ZodReadonly<z.ZodTypeAny>\n return acceptsArray(innerType)\n }\n }\n return false\n}\n"],"mappings":"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","ignoreList":[]}
|