UNPKG

@novu/framework

Version:

The Code-First Notifications Workflow SDK.

2 lines (1 loc) 2.19 kB
import{u as h}from"./chunk-LPE4ME2M.js";import f from"ajv";import y from"ajv-formats";var S=t=>typeof structuredClone=="function"?structuredClone(t):JSON.parse(JSON.stringify(t));var n=class extends h{constructor(a,o){let r=o.length===1?"it":"them";super(`Tried to use a ${a} in @novu/framework without ${o.join(", ")} installed. Please install ${r} by running \`npm install ${o.join(" ")}\`.`);this.statusCode=500;this.code="MissingDependencyError"}};var m=async(t,e)=>{let a=new Set;if((await Promise.allSettled(t.map(r=>r.import))).forEach((r,p)=>{let s=t[p];r.status==="fulfilled"&&s.exports.every(u=>r.value[u]!==void 0)||a.add(s.name)}),a.size>0)throw new n(e,Array.from(a))};var i=class{constructor(){this.requiredImports=[];this.ajv=new f({useDefaults:!0,removeAdditional:"failing",strict:!1}),y(this.ajv),this.compiledSchemas=new Map}async canHandle(e){let a=e.type==="object"||!!e.anyOf||!!e.allOf||!!e.oneOf;return a&&await m(this.requiredImports,"JSON schema"),a}async validate(e,a){let o=this.compiledSchemas.get(a);o||(o=this.ajv.compile(a),this.compiledSchemas.set(a,o));let r=S(e);return o(r)?{success:!0,data:r}:{success:!1,errors:o.errors.map(s=>({path:s.instancePath,message:s.message}))}}async transformToJsonSchema(e){return e}};var c=class{constructor(){this.requiredImports=[{name:"zod",import:import("zod"),exports:["ZodType"]},{name:"zod-to-json-schema",import:import("zod-to-json-schema"),exports:["zodToJsonSchema"]}]}async canHandle(e){let a=e.safeParseAsync!==void 0;return a&&await m(this.requiredImports,"Zod schema"),a}async validate(e,a){let o=await a.safeParseAsync(e);return o.success?{success:!0,data:o.data}:{success:!1,errors:o.error.errors.map(r=>({path:`/${r.path.join("/")}`,message:r.message}))}}async transformToJsonSchema(e){let{zodToJsonSchema:a}=await import("zod-to-json-schema");return a(e)}};var d=new c,l=new i,v=async(t,e)=>{if(await d.canHandle(t))return d.validate(e,t);if(await l.canHandle(t))return l.validate(e,t);throw new Error("Invalid schema")},T=async t=>{if(await d.canHandle(t))return d.transformToJsonSchema(t);if(await l.canHandle(t))return l.transformToJsonSchema(t);throw new Error("Invalid schema")};export{v as a,T as b};