@zod/mini
Version:
TypeScript-first schema declaration and validation library with static type inference
761 lines (760 loc) • 24.7 kB
JavaScript
import * as core from "@zod/core";
import * as util from "@zod/core/util";
import * as parse from "./parse.js";
export * as coerce from "./coerce.js";
export * as iso from "./iso.js";
export const ZodMiniType = /*@__PURE__*/ core.$constructor("ZodMiniType", (inst, def) => {
if (!inst._zod)
throw new Error("Uninitialized schema in mixin ZodMiniType.");
core.$ZodType.init(inst, def);
inst.def = def;
inst.parse = (data, params) => parse.parse(inst, data, params);
inst.safeParse = (data, params) => parse.safeParse(inst, data, params);
inst.parseAsync = async (data, params) => parse.parseAsync(inst, data, params);
inst.safeParseAsync = async (data, params) => parse.safeParseAsync(inst, data, params);
inst.check = (...checks) => {
return inst.clone({
...def,
checks: [
...(def.checks ?? []),
...checks.map((ch) => (typeof ch === "function" ? { _zod: { check: ch, def: { check: "custom" } } } : ch)),
],
});
};
inst.clone = (_def) => core.clone(inst, _def ?? def);
inst.brand = () => inst;
inst.register = ((reg, meta) => {
reg.add(inst, meta);
return inst;
});
});
export const ZodMiniString = /*@__PURE__*/ core.$constructor("ZodMiniString", (inst, def) => {
core.$ZodString.init(inst, def);
ZodMiniType.init(inst, def);
});
export function string(params) {
return core._string(ZodMiniString, params);
}
export const ZodMiniStringFormat = /*@__PURE__*/ core.$constructor("ZodMiniStringFormat", (inst, def) => {
core.$ZodStringFormat.init(inst, def);
ZodMiniString.init(inst, def);
});
export const ZodMiniEmail = /*@__PURE__*/ core.$constructor("ZodMiniEmail", (inst, def) => {
core.$ZodEmail.init(inst, def);
ZodMiniStringFormat.init(inst, def);
});
export function email(params) {
return core._email(ZodMiniEmail, params);
}
export const ZodMiniGUID = /*@__PURE__*/ core.$constructor("ZodMiniGUID", (inst, def) => {
core.$ZodGUID.init(inst, def);
ZodMiniStringFormat.init(inst, def);
});
export function guid(params) {
return core._guid(ZodMiniGUID, params);
}
export const ZodMiniUUID = /*@__PURE__*/ core.$constructor("ZodMiniUUID", (inst, def) => {
core.$ZodUUID.init(inst, def);
ZodMiniStringFormat.init(inst, def);
});
export function uuid(params) {
return core._uuid(ZodMiniUUID, params);
}
export function uuidv4(params) {
return core._uuidv4(ZodMiniUUID, params);
}
export function uuidv6(params) {
return core._uuidv6(ZodMiniUUID, params);
}
export function uuidv7(params) {
return core._uuidv7(ZodMiniUUID, params);
}
export const ZodMiniURL = /*@__PURE__*/ core.$constructor("ZodMiniURL", (inst, def) => {
core.$ZodURL.init(inst, def);
ZodMiniStringFormat.init(inst, def);
});
export function url(params) {
return core._url(ZodMiniURL, params);
}
export const ZodMiniEmoji = /*@__PURE__*/ core.$constructor("ZodMiniEmoji", (inst, def) => {
core.$ZodEmoji.init(inst, def);
ZodMiniStringFormat.init(inst, def);
});
export function emoji(params) {
return core._emoji(ZodMiniEmoji, params);
}
export const ZodMiniNanoID = /*@__PURE__*/ core.$constructor("ZodMiniNanoID", (inst, def) => {
core.$ZodNanoID.init(inst, def);
ZodMiniStringFormat.init(inst, def);
});
export function nanoid(params) {
return core._nanoid(ZodMiniNanoID, params);
}
export const ZodMiniCUID = /*@__PURE__*/ core.$constructor("ZodMiniCUID", (inst, def) => {
core.$ZodCUID.init(inst, def);
ZodMiniStringFormat.init(inst, def);
});
export function cuid(params) {
return core._cuid(ZodMiniCUID, params);
}
export const ZodMiniCUID2 = /*@__PURE__*/ core.$constructor("ZodMiniCUID2", (inst, def) => {
core.$ZodCUID2.init(inst, def);
ZodMiniStringFormat.init(inst, def);
});
export function cuid2(params) {
return core._cuid2(ZodMiniCUID2, params);
}
export const ZodMiniULID = /*@__PURE__*/ core.$constructor("ZodMiniULID", (inst, def) => {
core.$ZodULID.init(inst, def);
ZodMiniStringFormat.init(inst, def);
});
export function ulid(params) {
return core._ulid(ZodMiniULID, params);
}
export const ZodMiniXID = /*@__PURE__*/ core.$constructor("ZodMiniXID", (inst, def) => {
core.$ZodXID.init(inst, def);
ZodMiniStringFormat.init(inst, def);
});
export function xid(params) {
return core._xid(ZodMiniXID, params);
}
export const ZodMiniKSUID = /*@__PURE__*/ core.$constructor("ZodMiniKSUID", (inst, def) => {
core.$ZodKSUID.init(inst, def);
ZodMiniStringFormat.init(inst, def);
});
export function ksuid(params) {
return core._ksuid(ZodMiniKSUID, params);
}
export const ZodMiniIPv4 = /*@__PURE__*/ core.$constructor("ZodMiniIPv4", (inst, def) => {
core.$ZodIPv4.init(inst, def);
ZodMiniStringFormat.init(inst, def);
});
export function ipv4(params) {
return core._ipv4(ZodMiniIPv4, params);
}
export const ZodMiniIPv6 = /*@__PURE__*/ core.$constructor("ZodMiniIPv6", (inst, def) => {
core.$ZodIPv6.init(inst, def);
ZodMiniStringFormat.init(inst, def);
});
export function ipv6(params) {
return core._ipv6(ZodMiniIPv6, params);
}
export const ZodMiniBase64 = /*@__PURE__*/ core.$constructor("ZodMiniBase64", (inst, def) => {
core.$ZodBase64.init(inst, def);
ZodMiniStringFormat.init(inst, def);
});
export function base64(params) {
return core._base64(ZodMiniBase64, params);
}
export const ZodMiniE164 = /*@__PURE__*/ core.$constructor("ZodMiniE164", (inst, def) => {
core.$ZodE164.init(inst, def);
ZodMiniStringFormat.init(inst, def);
});
export function e164(params) {
return core._e164(ZodMiniE164, params);
}
export const ZodMiniJWT = /*@__PURE__*/ core.$constructor("ZodMiniJWT", (inst, def) => {
core.$ZodJWT.init(inst, def);
ZodMiniStringFormat.init(inst, def);
});
export function jwt(params) {
return core._jwt(ZodMiniJWT, params);
}
export const ZodMiniNumber = /*@__PURE__*/ core.$constructor("ZodMiniNumber", (inst, def) => {
core.$ZodNumber.init(inst, def);
ZodMiniType.init(inst, def);
});
export function number(params) {
return core._number(ZodMiniNumber, params);
}
export const ZodMiniNumberFormat = /*@__PURE__*/ core.$constructor("ZodMiniNumberFormat", (inst, def) => {
core.$ZodNumberFormat.init(inst, def);
ZodMiniType.init(inst, def);
});
// int
export function int(params) {
return core._int(ZodMiniNumberFormat, params);
}
// float32
export function float32(params) {
return core._float32(ZodMiniNumberFormat, params);
}
// float64
export function float64(params) {
return core._float64(ZodMiniNumberFormat, params);
}
// int32
export function int32(params) {
return core._int32(ZodMiniNumberFormat, params);
}
// uint32
export function uint32(params) {
return core._uint32(ZodMiniNumberFormat, params);
}
export const ZodMiniBoolean = /*@__PURE__*/ core.$constructor("ZodMiniBoolean", (inst, def) => {
core.$ZodBoolean.init(inst, def);
ZodMiniType.init(inst, def);
});
export function boolean(params) {
return core._boolean(ZodMiniBoolean, params);
}
export const ZodMiniBigInt = /*@__PURE__*/ core.$constructor("ZodMiniBigInt", (inst, def) => {
core.$ZodBigInt.init(inst, def);
ZodMiniType.init(inst, def);
});
export function bigint(params) {
return core._bigint(ZodMiniBigInt, params);
}
export const ZodMiniBigIntFormat = /*@__PURE__*/ core.$constructor("ZodMiniBigIntFormat", (inst, def) => {
core.$ZodBigIntFormat.init(inst, def);
ZodMiniBigInt.init(inst, def);
});
// int64
export function int64(params) {
return core._int64(ZodMiniBigIntFormat, params);
}
// uint64
export function uint64(params) {
return core._uint64(ZodMiniBigIntFormat, params);
}
export const ZodMiniSymbol = /*@__PURE__*/ core.$constructor("ZodMiniSymbol", (inst, def) => {
core.$ZodSymbol.init(inst, def);
ZodMiniType.init(inst, def);
});
export function symbol(params) {
return core._symbol(ZodMiniSymbol, params);
}
export const ZodMiniUndefined = /*@__PURE__*/ core.$constructor("ZodMiniUndefined", (inst, def) => {
core.$ZodUndefined.init(inst, def);
ZodMiniType.init(inst, def);
});
function _undefined(params) {
return core._undefined(ZodMiniUndefined, params);
}
export { _undefined as undefined };
export const ZodMiniNull = /*@__PURE__*/ core.$constructor("ZodMiniNull", (inst, def) => {
core.$ZodNull.init(inst, def);
ZodMiniType.init(inst, def);
});
function _null(params) {
return core._null(ZodMiniNull, params);
}
export { _null as null };
export const ZodMiniAny = /*@__PURE__*/ core.$constructor("ZodMiniAny", (inst, def) => {
core.$ZodAny.init(inst, def);
ZodMiniType.init(inst, def);
});
export function any(params) {
return core._any(ZodMiniAny, params);
}
export const ZodMiniUnknown = /*@__PURE__*/ core.$constructor("ZodMiniUnknown", (inst, def) => {
core.$ZodUnknown.init(inst, def);
ZodMiniType.init(inst, def);
});
export function unknown(params) {
return core._unknown(ZodMiniUnknown, params);
}
export const ZodMiniNever = /*@__PURE__*/ core.$constructor("ZodMiniNever", (inst, def) => {
core.$ZodNever.init(inst, def);
ZodMiniType.init(inst, def);
});
export function never(params) {
return core._never(ZodMiniNever, params);
}
export const ZodMiniVoid = /*@__PURE__*/ core.$constructor("ZodMiniVoid", (inst, def) => {
core.$ZodVoid.init(inst, def);
ZodMiniType.init(inst, def);
});
function _void(params) {
return core._void(ZodMiniVoid, params);
}
export { _void as void };
export const ZodMiniDate = /*@__PURE__*/ core.$constructor("ZodMiniDate", (inst, def) => {
core.$ZodDate.init(inst, def);
ZodMiniType.init(inst, def);
});
export function date(params) {
return core._date(ZodMiniDate, params);
}
export const ZodMiniArray = /*@__PURE__*/ core.$constructor("ZodMiniArray", (inst, def) => {
core.$ZodArray.init(inst, def);
ZodMiniType.init(inst, def);
});
export function array(element, params) {
return new ZodMiniArray({
type: "array",
element,
// get element() {
// return element;
// },
...util.normalizeParams(params),
});
}
export const ZodMiniObjectLike = /*@__PURE__*/ core.$constructor("ZodMiniObjectLike", (inst, def) => {
core.$ZodObjectLike.init(inst, def);
ZodMiniType.init(inst, def);
});
export function keyof(schema) {
const shape = schema._zod.def.type === "interface"
? util.cleanInterfaceShape(schema._zod.def.shape).shape
: schema._zod.def.shape;
return literal(Object.keys(shape));
}
export const ZodMiniInterface = /*@__PURE__*/ core.$constructor("ZodMiniInterface", (inst, def) => {
core.$ZodInterface.init(inst, def);
ZodMiniType.init(inst, def);
});
function _interface(shape, params, Class = ZodMiniInterface) {
const cleaned = util.cached(() => util.cleanInterfaceShape(shape));
const def = {
type: "interface",
get shape() {
const _shape = cleaned.value.shape;
util.assignProp(this, "shape", _shape);
return _shape;
// return cleaned.value.shape;
},
get optional() {
return cleaned.value.optional;
},
...util.normalizeParams(params),
};
return new Class(def);
}
export { _interface as interface };
// strictInterface
export function strictInterface(shape, params) {
const cleaned = util.cached(() => util.cleanInterfaceShape(shape));
const def = {
type: "interface",
get shape() {
const _shape = cleaned.value.shape;
util.assignProp(this, "shape", _shape);
return _shape;
// return cleaned.value.shape;
},
get optional() {
return cleaned.value.optional;
},
catchall: never(),
...util.normalizeParams(params),
};
return new ZodMiniInterface(def);
}
// looseInterface
export function looseInterface(shape, params) {
const cleaned = util.cached(() => util.cleanInterfaceShape(shape));
const def = {
type: "interface",
get optional() {
return cleaned.value.optional;
},
get shape() {
// return cleaned.value.shape;
const _shape = cleaned.value.shape;
util.assignProp(this, "shape", _shape);
return _shape;
},
catchall: unknown(),
...util.normalizeParams(params),
};
return new ZodMiniInterface(def);
}
export const ZodMiniObject = /*@__PURE__*/ core.$constructor("ZodMiniObject", (inst, def) => {
core.$ZodObject.init(inst, def);
ZodMiniType.init(inst, def);
});
export function object(shape, params) {
const def = {
type: "object",
shape: shape ?? {},
get optional() {
return util.optionalObjectKeys(shape ?? {});
},
...util.normalizeParams(params),
};
return new ZodMiniObject(def);
}
// strictObject
export function strictObject(shape, params) {
return new ZodMiniObject({
type: "object",
shape: shape,
get optional() {
return util.optionalObjectKeys(shape);
},
catchall: never(),
...util.normalizeParams(params),
});
}
// looseObject
export function looseObject(shape, params) {
return new ZodMiniObject({
type: "object",
shape: shape,
get optional() {
return util.optionalObjectKeys(shape);
},
catchall: unknown(),
...util.normalizeParams(params),
});
}
export function extend(schema, shape) {
// console.log({ schema, shape });
if (shape instanceof core.$ZodType)
return util.mergeObjectLike(schema, shape);
if (schema instanceof ZodMiniInterface) {
return util.mergeObjectLike(schema, _interface(shape));
}
if (schema instanceof ZodMiniObject)
return util.mergeObjectLike(schema, object(shape));
return util.extend(schema, shape);
}
export function merge(a, b) {
return util.mergeObjectLike(a, b);
}
export function pick(schema, mask) {
return util.pick(schema, mask);
}
export function omit(schema, mask) {
return util.omit(schema, mask);
}
export function partial(schema, mask) {
return util.partialObjectLike(ZodMiniOptional, schema, mask);
}
export function required(schema, mask) {
return util.requiredObjectLike(ZodMiniNonOptional, schema, mask);
}
export const ZodMiniUnion = /*@__PURE__*/ core.$constructor("ZodMiniUnion", (inst, def) => {
core.$ZodUnion.init(inst, def);
ZodMiniType.init(inst, def);
});
export function union(options, params) {
return new ZodMiniUnion({
type: "union",
options,
...util.normalizeParams(params),
});
}
export const ZodMiniDiscriminatedUnion = /*@__PURE__*/ core.$constructor("ZodMiniDiscriminatedUnion", (inst, def) => {
core.$ZodDiscriminatedUnion.init(inst, def);
ZodMiniType.init(inst, def);
});
export function discriminatedUnion(options, params) {
return new ZodMiniDiscriminatedUnion({
type: "union",
options,
...util.normalizeParams(params),
});
}
export const ZodMiniIntersection = /*@__PURE__*/ core.$constructor("ZodMiniIntersection", (inst, def) => {
core.$ZodIntersection.init(inst, def);
ZodMiniType.init(inst, def);
});
export function intersection(left, right, params) {
return new ZodMiniIntersection({
type: "intersection",
left,
right,
...util.normalizeParams(params),
});
}
export const ZodMiniTuple = /*@__PURE__*/ core.$constructor("ZodMiniTuple", (inst, def) => {
core.$ZodTuple.init(inst, def);
ZodMiniType.init(inst, def);
});
export function tuple(items, _paramsOrRest, _params) {
const hasRest = _paramsOrRest instanceof core.$ZodType;
const params = hasRest ? _params : _paramsOrRest;
const rest = hasRest ? _paramsOrRest : null;
return new ZodMiniTuple({
type: "tuple",
items,
rest,
...util.normalizeParams(params),
});
}
export const ZodMiniRecord = /*@__PURE__*/ core.$constructor("ZodMiniRecord", (inst, def) => {
core.$ZodRecord.init(inst, def);
ZodMiniType.init(inst, def);
});
export function record(keyType, valueType, params) {
return new ZodMiniRecord({
type: "record",
keyType,
valueType,
...util.normalizeParams(params),
});
}
export const ZodMiniMap = /*@__PURE__*/ core.$constructor("ZodMiniMap", (inst, def) => {
core.$ZodMap.init(inst, def);
ZodMiniType.init(inst, def);
});
export function map(keyType, valueType, params) {
return new ZodMiniMap({
type: "map",
keyType,
valueType,
...util.normalizeParams(params),
});
}
export const ZodMiniSet = /*@__PURE__*/ core.$constructor("ZodMiniSet", (inst, def) => {
core.$ZodSet.init(inst, def);
ZodMiniType.init(inst, def);
});
export function set(valueType, params) {
return new ZodMiniSet({
type: "set",
valueType,
...util.normalizeParams(params),
});
}
export const ZodMiniEnum = /*@__PURE__*/ core.$constructor("ZodMiniEnum", (inst, def) => {
core.$ZodEnum.init(inst, def);
ZodMiniType.init(inst, def);
});
function _enum(values, params) {
const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;
return new ZodMiniEnum({
type: "enum",
entries,
...util.normalizeParams(params),
});
}
export { _enum as enum };
/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.
*
* ```ts
* enum Colors { red, green, blue }
* z.enum(Colors);
* ```
*/
export function nativeEnum(entries, params) {
return new ZodMiniEnum({
type: "enum",
entries,
...util.normalizeParams(params),
});
}
export const ZodMiniLiteral = /*@__PURE__*/ core.$constructor("ZodMiniLiteral", (inst, def) => {
core.$ZodLiteral.init(inst, def);
ZodMiniType.init(inst, def);
});
export function literal(value, params) {
return new ZodMiniLiteral({
type: "literal",
values: Array.isArray(value) ? value : [value],
...util.normalizeParams(params),
});
}
export const ZodMiniFile = /*@__PURE__*/ core.$constructor("ZodMiniFile", (inst, def) => {
core.$ZodFile.init(inst, def);
ZodMiniType.init(inst, def);
});
export function file(params) {
return core._file(ZodMiniFile, params);
}
export const ZodMiniTransform = /*@__PURE__*/ core.$constructor("ZodMiniTransform", (inst, def) => {
core.$ZodTransform.init(inst, def);
ZodMiniType.init(inst, def);
});
export function transform(fn, params) {
return new ZodMiniTransform({
type: "transform",
transform: fn,
...util.normalizeParams(params),
});
}
export const ZodMiniOptional = /*@__PURE__*/ core.$constructor("ZodMiniOptional", (inst, def) => {
core.$ZodOptional.init(inst, def);
ZodMiniType.init(inst, def);
});
export function optional(innerType, params) {
return new ZodMiniOptional({
type: "optional",
innerType,
...util.normalizeParams(params),
});
}
export const ZodMiniNullable = /*@__PURE__*/ core.$constructor("ZodMiniNullable", (inst, def) => {
core.$ZodNullable.init(inst, def);
ZodMiniType.init(inst, def);
});
export function nullable(innerType, params) {
return new ZodMiniNullable({
type: "nullable",
innerType,
...util.normalizeParams(params),
});
}
// nullish
export function nullish(innerType) {
return optional(nullable(innerType));
}
export const ZodMiniDefault = /*@__PURE__*/ core.$constructor("ZodMiniDefault", (inst, def) => {
core.$ZodDefault.init(inst, def);
ZodMiniType.init(inst, def);
});
export function _default(innerType, defaultValue, params) {
return new ZodMiniDefault({
type: "default",
defaultValue: (typeof defaultValue === "function" ? defaultValue : () => defaultValue),
innerType,
...util.normalizeParams(params),
});
}
export const ZodMiniNonOptional = /*@__PURE__*/ core.$constructor("ZodMiniNonOptional", (inst, def) => {
core.$ZodNonOptional.init(inst, def);
ZodMiniType.init(inst, def);
});
export function nonoptional(innerType, params) {
return new ZodMiniNonOptional({
type: "nonoptional",
innerType,
...util.normalizeParams(params),
});
}
export const ZodMiniSuccess = /*@__PURE__*/ core.$constructor("ZodMiniSuccess", (inst, def) => {
core.$ZodSuccess.init(inst, def);
ZodMiniType.init(inst, def);
});
export function success(innerType, params) {
return new ZodMiniSuccess({
type: "success",
innerType,
...util.normalizeParams(params),
});
}
export const ZodMiniCatch = /*@__PURE__*/ core.$constructor("ZodMiniCatch", (inst, def) => {
core.$ZodCatch.init(inst, def);
ZodMiniType.init(inst, def);
});
function _catch(innerType, catchValue, params) {
return new ZodMiniCatch({
type: "catch",
innerType,
catchValue: (typeof catchValue === "function" ? catchValue : () => catchValue),
...util.normalizeParams(params),
});
}
export { _catch as catch };
export const ZodMiniNaN = /*@__PURE__*/ core.$constructor("ZodMiniNaN", (inst, def) => {
core.$ZodNaN.init(inst, def);
ZodMiniType.init(inst, def);
});
export function nan(params) {
return core._nan(ZodMiniNaN, params);
}
export const ZodMiniPipe = /*@__PURE__*/ core.$constructor("ZodMiniPipe", (inst, def) => {
core.$ZodPipe.init(inst, def);
ZodMiniType.init(inst, def);
});
export function pipe(in_, out, params) {
return new ZodMiniPipe({
type: "pipe",
in: in_,
out,
...util.normalizeParams(params),
});
}
export const ZodMiniReadonly = /*@__PURE__*/ core.$constructor("ZodMiniReadonly", (inst, def) => {
core.$ZodReadonly.init(inst, def);
ZodMiniType.init(inst, def);
});
export function readonly(innerType, params) {
return new ZodMiniReadonly({
type: "readonly",
innerType,
...util.normalizeParams(params),
});
}
export const ZodMiniTemplateLiteral = /*@__PURE__*/ core.$constructor("ZodMiniTemplateLiteral", (inst, def) => {
core.$ZodTemplateLiteral.init(inst, def);
ZodMiniType.init(inst, def);
});
export function templateLiteral(parts, params) {
return new ZodMiniTemplateLiteral({
type: "template_literal",
parts,
...util.normalizeParams(params),
});
}
export const ZodMiniLazy = /*@__PURE__*/ core.$constructor("ZodMiniLazy", (inst, def) => {
core.$ZodLazy.init(inst, def);
ZodMiniType.init(inst, def);
});
export function _lazy(getter) {
return new ZodMiniLazy({
type: "lazy",
getter,
});
}
export const ZodMiniPromise = /*@__PURE__*/ core.$constructor("ZodMiniPromise", (inst, def) => {
core.$ZodPromise.init(inst, def);
ZodMiniType.init(inst, def);
});
export function promise(innerType, params) {
return new ZodMiniPromise({
type: "promise",
innerType,
...util.normalizeParams(params),
});
}
export const ZodMiniCustom = /*@__PURE__*/ core.$constructor("ZodMiniCustom", (inst, def) => {
core.$ZodCustom.init(inst, def);
ZodMiniType.init(inst, def);
});
// custom checks
export function check(fn, params) {
const ch = new core.$ZodCheck({
check: "custom",
...util.normalizeParams(params),
});
ch._zod.check = fn;
return ch;
}
// ZodCustom
export function _custom(fn, _params, Class) {
const params = util.normalizeParams(_params);
const schema = new Class({
type: "custom",
check: "custom",
fn: fn,
...params,
});
return schema;
}
// refine
export function refine(fn, _params = {}) {
return _custom(fn, _params, ZodMiniCustom);
}
// custom schema
export function custom(fn, _params) {
return _custom(fn ?? (() => true), _params, ZodMiniCustom);
}
// instanceof
class Class {
constructor(..._args) { }
}
function _instanceof(cls, params = {
error: `Input not instance of ${cls.name}`,
}) {
return custom((data) => data instanceof cls, params);
}
export { _instanceof as instanceof };
export function lazy(getter) {
return util.createTransparentProxy(getter);
}
// stringbool
export const stringbool =
/* @__PURE__ */ core._stringbool.bind(null, {
Pipe: ZodMiniPipe,
Boolean: ZodMiniBoolean,
Unknown: ZodMiniUnknown,
});
export function json() {
const jsonSchema = lazy(() => {
return union([string(), number(), boolean(), _null(), array(jsonSchema), record(string(), jsonSchema)]);
});
return jsonSchema;
}