{"version":3,"sources":["../../../src/api/optionals.ts"],"sourcesContent":["import type { Pipe, PipeInput, PipeOutput } from './base'\nimport { standard, compileNested, context, schema } from './base/pipes'\nimport type { DeepPartial } from '../utils/types'\n\nconst partial = <T extends Pipe<any, any>, P>(\n\tbranch: T,\n\tpartialCondition: (i: unknown) => boolean,\n\tconfig: Parameters<typeof standard<PipeInput<T> | P, PipeOutput<T> | P>>[1],\n) =>\n\tstandard<PipeInput<T> | P, PipeOutput<T> | P>(\n\t\t({ input, context }, opts) => [\n\t\t\t`if (!${context}.partialCondition(${input})) {`,\n\t\t\t...compileNested({ opts, pipe: branch, input }).map((l) => `  ${l}`),\n\t\t\t`}`,\n\t\t],\n\t\t{\n\t\t\t...config,\n\t\t\tcontext: { ...config?.context, partialCondition },\n\t\t},\n\t)\n\nexport const nullable = <T extends Pipe<any, any>>(branch: T) =>\n\tpartial<T, null>(branch, (i) => i === null, {\n\t\tschema: () => ({ oneOf: [schema(branch), { type: 'null' }] }),\n\t})\n\nexport const optional = <T extends Pipe<any, any>>(branch: T) =>\n\tpartial<T, undefined>(branch, (i) => i === undefined, {\n\t\tcontext: { optional: true },\n\t})\n\nexport const nullish = <T extends Pipe<any, any>>(branch: T) =>\n\tpartial<T, null | undefined>(branch, (i) => i === null || i === undefined, {\n\t\tschema: () => ({ oneOf: [schema(branch), { type: 'null' }] }),\n\t\tcontext: { ...context(branch), optional: true },\n\t})\n\nexport const conditional = <T extends Pipe<any, any>>(branch: T, condition: () => boolean) =>\n\tpartial<T, never>(branch, () => !condition(), {\n\t\tschema: () => schema(branch),\n\t\tcontext: { ...context(branch), optional: true },\n\t})\n\ntype DefaultValue<T> = T extends object ? DeepPartial<T> : T\n\nexport const defaults = <T extends Pipe<any, any>>(branch: T, def: DefaultValue<PipeInput<T>>) =>\n\tstandard<PipeInput<T> | undefined, Exclude<PipeOutput<T>, undefined>>(\n\t\t({ input, context }, opts) => [\n\t\t\t`if (${input} === undefined) ${input} = ${context}.defaults`,\n\t\t\t...compileNested({ opts, pipe: branch, input }),\n\t\t],\n\t\t{\n\t\t\tschema: (c) => ({ ...schema(branch), default: c.defaults ?? def }),\n\t\t\tcontext: { ...context(branch), defaults: def, optional: true },\n\t\t},\n\t)\n\nconst onCatch = <T extends Pipe<any, any>>(branch: T, def: DefaultValue<PipeInput<T>>) =>\n\tstandard<PipeInput<T>, PipeOutput<T>>(\n\t\t({ input, context }, opts) => [\n\t\t\t...compileNested({ opts, pipe: branch, input, errorType: 'assign' }),\n\t\t\t`if (${input} instanceof PipeError) ${input} = ${context}.catch`,\n\t\t],\n\t\t{\n\t\t\tschema: (c) => ({ ...schema(branch), default: c.catch ?? def }),\n\t\t\tcontext: { ...context(branch), catch: def },\n\t\t},\n\t)\n\nexport { onCatch as catch }\n"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,gBAAAC,EAAA,aAAAC,EAAA,aAAAC,EAAA,YAAAC,EAAA,aAAAC,IAAA,eAAAC,EAAAR,GACA,IAAAS,EAAyD,wBAGzD,MAAMC,EAAU,CACfC,EACAC,EACAC,OAEA,YACC,CAAC,CAAE,MAAAC,EAAO,QAAAC,CAAQ,EAAGC,IAAS,CAC7B,QAAQD,CAAO,qBAAqBD,CAAK,OACzC,MAAG,iBAAc,CAAE,KAAAE,EAAM,KAAML,EAAQ,MAAAG,CAAM,CAAC,EAAE,IAAKG,GAAM,KAAKA,CAAC,EAAE,EACnE,GACD,EACA,CACC,GAAGJ,EACH,QAAS,CAAE,GAAGA,GAAQ,QAAS,iBAAAD,CAAiB,CACjD,CACD,EAEYP,EAAsCM,GAClDD,EAAiBC,EAASO,GAAMA,IAAM,KAAM,CAC3C,OAAQ,KAAO,CAAE,MAAO,IAAC,UAAOP,CAAM,EAAG,CAAE,KAAM,MAAO,CAAC,CAAE,EAC5D,CAAC,EAEWJ,EAAsCI,GAClDD,EAAsBC,EAASO,GAAMA,IAAM,OAAW,CACrD,QAAS,CAAE,SAAU,EAAK,CAC3B,CAAC,EAEWZ,EAAqCK,GACjDD,EAA6BC,EAASO,GAAMA,GAAM,KAAyB,CAC1E,OAAQ,KAAO,CAAE,MAAO,IAAC,UAAOP,CAAM,EAAG,CAAE,KAAM,MAAO,CAAC,CAAE,GAC3D,QAAS,CAAE,MAAG,WAAQA,CAAM,EAAG,SAAU,EAAK,CAC/C,CAAC,EAEWR,EAAc,CAA2BQ,EAAWQ,IAChET,EAAkBC,EAAQ,IAAM,CAACQ,EAAU,EAAG,CAC7C,OAAQ,OAAM,UAAOR,CAAM,EAC3B,QAAS,CAAE,MAAG,WAAQA,CAAM,EAAG,SAAU,EAAK,CAC/C,CAAC,EAIWP,EAAW,CAA2BO,EAAWS,OAC7D,YACC,CAAC,CAAE,MAAAN,EAAO,QAAAC,CAAQ,EAAGC,IAAS,CAC7B,OAAOF,CAAK,mBAAmBA,CAAK,MAAMC,CAAO,YACjD,MAAG,iBAAc,CAAE,KAAAC,EAAM,KAAML,EAAQ,MAAAG,CAAM,CAAC,CAC/C,EACA,CACC,OAASO,IAAO,CAAE,MAAG,UAAOV,CAAM,EAAG,QAASU,EAAE,UAAYD,CAAI,GAChE,QAAS,CAAE,MAAG,WAAQT,CAAM,EAAG,SAAUS,EAAK,SAAU,EAAK,CAC9D,CACD,EAEKlB,EAAU,CAA2BS,EAAWS,OACrD,YACC,CAAC,CAAE,MAAAN,EAAO,QAAAC,CAAQ,EAAGC,IAAS,CAC7B,MAAG,iBAAc,CAAE,KAAAA,EAAM,KAAML,EAAQ,MAAAG,EAAO,UAAW,QAAS,CAAC,EACnE,OAAOA,CAAK,0BAA0BA,CAAK,MAAMC,CAAO,QACzD,EACA,CACC,OAASM,IAAO,CAAE,MAAG,UAAOV,CAAM,EAAG,QAASU,EAAE,OAASD,CAAI,GAC7D,QAAS,CAAE,MAAG,WAAQT,CAAM,EAAG,MAAOS,CAAI,CAC3C,CACD","names":["optionals_exports","__export","onCatch","conditional","defaults","nullable","nullish","optional","__toCommonJS","import_pipes","partial","branch","partialCondition","config","input","context","opts","l","i","condition","def","c"]}