UNPKG

@dfinity/zod-schemas

Version:

A collection of reusable Zod schemas and validators for common data patterns in ICP applications

3 lines (2 loc) 1.39 kB
import*as a from"zod";var o=(t=>(t.PrincipalText="PrincipalText",t.Principal="Principal",t.Uint8Array="Uint8Array",t.Url="Url",t))(o||{});var x=a.instanceof(Uint8Array).meta({id:"Uint8Array"});var z=r=>r.optional(),d=r=>r.nullish(),h=r=>r.nullable();import{Principal as p}from"@icp-sdk/core/principal";import*as n from"zod";var R=n.string().refine(r=>{try{return p.fromText(r),!0}catch{return!1}},{error:"Invalid textual representation of a Principal."}).meta({id:"PrincipalText"}),b=n.custom().refine(r=>p.isPrincipal(r),{error:"Invalid Principal.",abort:!0}).transform(r=>p.from(r)).meta({id:"Principal"});import*as e from"zod";var w=r=>e.discriminatedUnion("status",[e.strictObject({status:e.literal("success"),result:r}),e.strictObject({status:e.literal("error"),err:e.unknown().optional()})]);import*as c from"zod";var f=({additionalProtocols:r=[],allowHttpLocally:l=!0})=>c.url().refine(s=>{try{let i=[...new Set(["https:",...r])],{protocol:t,hostname:m}=new URL(s);return l&&["localhost","127.0.0.1"].includes(m)?["http:",...i].includes(t):i.includes(t)}catch{return!1}},{error:"Invalid URL."}),L=f({}).meta({id:"Url"});export{b as PrincipalSchema,R as PrincipalTextSchema,x as Uint8ArraySchema,L as UrlSchema,o as ZodSchemaId,f as createUrlSchema,h as inferNullableSchema,d as inferNullishSchema,z as inferOptionSchema,w as inferResultSchema}; //# sourceMappingURL=index.js.map