D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
home
/
etb1lp46s9ed
/
nodevenv
/
washeet.softurecs.com
/
24
/
lib
/
node_modules
/
zod
/
v4
/
core
/
Filename :
registries.js
back
Copy
export const $output = Symbol("ZodOutput"); export const $input = Symbol("ZodInput"); export class $ZodRegistry { constructor() { this._map = new Map(); this._idmap = new Map(); } add(schema, ..._meta) { const meta = _meta[0]; this._map.set(schema, meta); if (meta && typeof meta === "object" && "id" in meta) { if (this._idmap.has(meta.id)) { throw new Error(`ID ${meta.id} already exists in the registry`); } this._idmap.set(meta.id, schema); } return this; } clear() { this._map = new Map(); this._idmap = new Map(); return this; } remove(schema) { const meta = this._map.get(schema); if (meta && typeof meta === "object" && "id" in meta) { this._idmap.delete(meta.id); } this._map.delete(schema); return this; } get(schema) { // return this._map.get(schema) as any; // inherit metadata const p = schema._zod.parent; if (p) { const pm = { ...(this.get(p) ?? {}) }; delete pm.id; // do not inherit id return { ...pm, ...this._map.get(schema) }; } return this._map.get(schema); } has(schema) { return this._map.has(schema); } } // registries export function registry() { return new $ZodRegistry(); } export const globalRegistry = /*@__PURE__*/ registry();