{"version":3,"sources":["../../../../src/api/base/errors.ts"],"sourcesContent":["import type { PipeErrorHandler } from './types'\n\ntype PipeErrorMessage = { message: string; path?: string; value: unknown }\n\nfunction formatError(message: PipeErrorMessage) {\n\treturn `${message.path ? `${message.path}: ` : ''}${message.message}`\n}\n\nexport class PipeError {\n\tconstructor(public messages: PipeErrorMessage[]) {}\n\n\ttoString() {\n\t\treturn this.messages.map(formatError).join('\\n')\n\t}\n\n\tstatic root(message: string, value: unknown, path?: string) {\n\t\treturn new PipeError([{ message, path, value }])\n\t}\n\n\tstatic rootFrom(errors: PipeError[]) {\n\t\treturn new PipeError(errors.flatMap((error) => error.messages))\n\t}\n\n\tstatic path(path: PropertyKey, key: string, error: PipeError) {\n\t\tif (path === undefined || path === null) return error\n\t\treturn new PipeError(\n\t\t\terror.messages.map((message) => ({\n\t\t\t\t...message,\n\t\t\t\tpath: message.path\n\t\t\t\t\t?.split('.')\n\t\t\t\t\t.map((p) => (p == key ? path.toString() : p))\n\t\t\t\t\t.join('.'),\n\t\t\t})),\n\t\t)\n\t}\n\n\tstatic wrap(path: PropertyKey, error: PipeError) {\n\t\tif (path === undefined || path === null) return error\n\t\treturn new PipeError(\n\t\t\terror.messages.map((message) => ({\n\t\t\t\t...message,\n\t\t\t\tpath: [path.toString(), message.path].filter(Boolean).join('.'),\n\t\t\t})),\n\t\t)\n\t}\n}\n\nexport function createErrorHandler(input: string, type: 'return' | 'throw' | 'assign'): PipeErrorHandler {\n\tconst handler: PipeErrorHandler = Object.assign(\n\t\t(...args: Parameters<PipeErrorHandler>) =>\n\t\t\t(lines: string[]) => {\n\t\t\t\tswitch (type) {\n\t\t\t\t\tcase 'return':\n\t\t\t\t\tcase 'throw':\n\t\t\t\t\t\treturn [`if (${args[0]}) ${handler.format(args[1])}`, ...lines]\n\t\t\t\t\tcase 'assign':\n\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t`if (${args[0]}) ${handler.format(args[1])}`,\n\t\t\t\t\t\t\t...(lines.length ? [`else {`, ...lines.map((l) => `\t${l}`), `}`] : []),\n\t\t\t\t\t\t]\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthrow new Error(`Unknown error handling type: ${type satisfies never}`)\n\t\t\t\t}\n\t\t\t},\n\t\t{\n\t\t\ttype,\n\t\t\tformat: (error: string) => {\n\t\t\t\tswitch (type) {\n\t\t\t\t\tcase 'return':\n\t\t\t\t\t\treturn `return ${error}`\n\t\t\t\t\tcase 'throw':\n\t\t\t\t\t\treturn `throw ${error}`\n\t\t\t\t\tcase 'assign':\n\t\t\t\t\t\treturn `${input} = ${error}`\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthrow new Error(`Unknown error handling type: ${type satisfies never}`)\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t)\n\n\treturn handler\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,SAAS,YAAY,SAA2B;AAC/C,SAAO,GAAG,QAAQ,OAAO,GAAG,QAAQ,IAAI,OAAO,EAAE,GAAG,QAAQ,OAAO;AACpE;AAEO,MAAM,UAAU;AAAA,EACtB,YAAmB,UAA8B;AAA9B;AAAA,EAA+B;AAAA,EAElD,WAAW;AACV,WAAO,KAAK,SAAS,IAAI,WAAW,EAAE,KAAK,IAAI;AAAA,EAChD;AAAA,EAEA,OAAO,KAAK,SAAiB,OAAgB,MAAe;AAC3D,WAAO,IAAI,UAAU,CAAC,EAAE,SAAS,MAAM,MAAM,CAAC,CAAC;AAAA,EAChD;AAAA,EAEA,OAAO,SAAS,QAAqB;AACpC,WAAO,IAAI,UAAU,OAAO,QAAQ,CAAC,UAAU,MAAM,QAAQ,CAAC;AAAA,EAC/D;AAAA,EAEA,OAAO,KAAK,MAAmB,KAAa,OAAkB;AAC7D,QAAI,SAAS,UAAa,SAAS,KAAM,QAAO;AAChD,WAAO,IAAI;AAAA,MACV,MAAM,SAAS,IAAI,CAAC,aAAa;AAAA,QAChC,GAAG;AAAA,QACH,MAAM,QAAQ,MACX,MAAM,GAAG,EACV,IAAI,CAAC,MAAO,KAAK,MAAM,KAAK,SAAS,IAAI,CAAE,EAC3C,KAAK,GAAG;AAAA,MACX,EAAE;AAAA,IACH;AAAA,EACD;AAAA,EAEA,OAAO,KAAK,MAAmB,OAAkB;AAChD,QAAI,SAAS,UAAa,SAAS,KAAM,QAAO;AAChD,WAAO,IAAI;AAAA,MACV,MAAM,SAAS,IAAI,CAAC,aAAa;AAAA,QAChC,GAAG;AAAA,QACH,MAAM,CAAC,KAAK,SAAS,GAAG,QAAQ,IAAI,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,MAC/D,EAAE;AAAA,IACH;AAAA,EACD;AACD;AAEO,SAAS,mBAAmB,OAAe,MAAuD;AACxG,QAAM,UAA4B,OAAO;AAAA,IACxC,IAAI,SACH,CAAC,UAAoB;AACpB,cAAQ,MAAM;AAAA,QACb,KAAK;AAAA,QACL,KAAK;AACJ,iBAAO,CAAC,OAAO,KAAK,CAAC,CAAC,KAAK,QAAQ,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK;AAAA,QAC/D,KAAK;AACJ,iBAAO;AAAA,YACN,OAAO,KAAK,CAAC,CAAC,KAAK,QAAQ,OAAO,KAAK,CAAC,CAAC,CAAC;AAAA,YAC1C,GAAI,MAAM,SAAS,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;AAAA,UACrE;AAAA,QACD;AACC,gBAAM,IAAI,MAAM,gCAAgC,IAAoB,EAAE;AAAA,MACxE;AAAA,IACD;AAAA,IACD;AAAA,MACC;AAAA,MACA,QAAQ,CAAC,UAAkB;AAC1B,gBAAQ,MAAM;AAAA,UACb,KAAK;AACJ,mBAAO,UAAU,KAAK;AAAA,UACvB,KAAK;AACJ,mBAAO,SAAS,KAAK;AAAA,UACtB,KAAK;AACJ,mBAAO,GAAG,KAAK,MAAM,KAAK;AAAA,UAC3B;AACC,kBAAM,IAAI,MAAM,gCAAgC,IAAoB,EAAE;AAAA,QACxE;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AACR;","names":[]}