{"version":3,"sources":["../../../src/api/arrays.ts"],"sourcesContent":["import type { PipeInput, Pipe, PipeOutput } from './base'\nimport { standard, schema, compileNested } from './base/pipes'\nimport { getRandomValue } from '../utils/functions'\n\nexport const array = <T extends Pipe<any, any>>(branch: T, err = 'is not an array') => {\n\tconst errorsVarname = `errors_${getRandomValue()}`\n\tconst resVarname = `res_${getRandomValue()}`\n\tconst validatedVarname = `validated_${getRandomValue()}`\n\treturn standard<PipeInput<T>[], PipeOutput<T>[]>(\n\t\t({ input, path }, opts) => [\n\t\t\topts.wrapError(`!Array.isArray(${input})`, `PipeError.root('${err}', ${input}, ${path})`),\n\t\t\topts.failEarly ? '' : `const ${errorsVarname} = []`,\n\t\t\t`const ${resVarname} = []`,\n\t\t\t`let ${validatedVarname}`,\n\t\t\t`for (let idx = 0; idx < ${input}.length; idx++) {`,\n\t\t\t`\t${validatedVarname} = ${input}[idx]`,\n\t\t\t...compileNested({ opts, pipe: branch, input: validatedVarname, errorType: 'assign', key: validatedVarname }),\n\t\t\topts.failEarly\n\t\t\t\t? `if (${validatedVarname} instanceof PipeError) ${opts.wrapError.format(`PipeError.path(idx, '${validatedVarname}', ${validatedVarname})`)}`\n\t\t\t\t: `\tif (${validatedVarname} instanceof PipeError) ${errorsVarname}.push(PipeError.path(idx, '${validatedVarname}', ${validatedVarname}))`,\n\t\t\t`\telse ${resVarname}[idx] = ${validatedVarname}`,\n\t\t\t`}`,\n\t\t\topts.failEarly ? '' : opts.wrapError(`${errorsVarname}.length`, `PipeError.rootFrom(${errorsVarname})`),\n\t\t\topts.wrapError(`${input} instanceof PipeError`, `${input}`),\n\t\t\t`${input} = ${resVarname}`,\n\t\t],\n\t\t{\n\t\t\tschema: () => ({ type: 'array', items: schema(branch) }),\n\t\t},\n\t)\n}\n\nexport const tuple = <T extends ReadonlyArray<Pipe<any, any>>>(branches: readonly [...T], err = 'is not an array') => {\n\tconst errorsVarname = `errors_${getRandomValue()}`\n\tconst resVarname = `res_${getRandomValue()}`\n\tconst validatedVarname = `validated_${getRandomValue()}`\n\treturn standard<{ [K in keyof T]: PipeInput<T[K]> }, { [K in keyof T]: PipeOutput<T[K]> }>(\n\t\t({ input, path }, opts) => [\n\t\t\topts.wrapError(`!Array.isArray(${input})`, `PipeError.root('${err}', ${input}, ${path})`),\n\t\t\t...(branches.length === 0\n\t\t\t\t? []\n\t\t\t\t: [\n\t\t\t\t\t\t`const ${resVarname} = []`,\n\t\t\t\t\t\topts.failEarly ? '' : `const ${errorsVarname} = []`,\n\t\t\t\t\t\t...branches.flatMap((branch, idx) => [\n\t\t\t\t\t\t\t`let ${validatedVarname}${idx} = ${input}[${idx}]`,\n\t\t\t\t\t\t\t...compileNested({\n\t\t\t\t\t\t\t\topts,\n\t\t\t\t\t\t\t\tpipe: branch,\n\t\t\t\t\t\t\t\tinput: `${validatedVarname}${idx}`,\n\t\t\t\t\t\t\t\tkey: `${idx}`,\n\t\t\t\t\t\t\t\terrorType: 'assign',\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\topts.failEarly\n\t\t\t\t\t\t\t\t? opts.wrapError(`${validatedVarname}${idx} instanceof PipeError`, `${validatedVarname}${idx}`)\n\t\t\t\t\t\t\t\t: `\tif (${validatedVarname}${idx} instanceof PipeError) ${errorsVarname}.push(${validatedVarname}${idx})`,\n\t\t\t\t\t\t\t`if (!(${validatedVarname}${idx} instanceof PipeError)) ${resVarname}[${idx}] = ${validatedVarname}${idx}`,\n\t\t\t\t\t\t]),\n\t\t\t\t\t\topts.failEarly ? '' : opts.wrapError(`${errorsVarname}.length`, `PipeError.rootFrom(${errorsVarname})`),\n\t\t\t\t\t\t`${input} = ${resVarname}`,\n\t\t\t\t\t]),\n\t\t],\n\t\t{\n\t\t\tschema: () => ({\n\t\t\t\ttype: 'array',\n\t\t\t\titems: branches.map((pipe) => schema(pipe)),\n\t\t\t\tminItems: branches.length,\n\t\t\t\tmaxItems: branches.length,\n\t\t\t}),\n\t\t},\n\t)\n}\n\nexport const asSet = <T>(keyFn: (i: T) => PropertyKey = (v) => v as string) => {\n\tconst varname = `obj_${getRandomValue()}`\n\treturn standard<T[], T[]>(\n\t\t({ input, context }) => [\n\t\t\t`const ${varname} = {}`,\n\t\t\t`${input} = ${input}.reduce((acc, cur) => {`,\n\t\t\t`\tconst key = ${context}.keyFn(cur)`,\n\t\t\t`\tif (!${varname}[key]) {`,\n\t\t\t`\t\t${varname}[key] = true`,\n\t\t\t`\t\tacc.push(cur)`,\n\t\t\t`\t}`,\n\t\t\t`\treturn acc`,\n\t\t\t`}, [])`,\n\t\t],\n\t\t{\n\t\t\tcontext: { keyFn },\n\t\t},\n\t)\n}\n"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,UAAAC,EAAA,UAAAC,IAAA,eAAAC,EAAAL,GACA,IAAAM,EAAgD,wBAChDC,EAA+B,8BAExB,MAAML,EAAQ,CAA2BM,EAAWC,EAAM,oBAAsB,CACtF,MAAMC,EAAgB,aAAU,kBAAe,CAAC,GAC1CC,EAAa,UAAO,kBAAe,CAAC,GACpCC,EAAmB,gBAAa,kBAAe,CAAC,GACtD,SAAO,YACN,CAAC,CAAE,MAAAC,EAAO,KAAAC,CAAK,EAAGC,IAAS,CAC1BA,EAAK,UAAU,kBAAkBF,CAAK,IAAK,mBAAmBJ,CAAG,MAAMI,CAAK,KAAKC,CAAI,GAAG,EACxFC,EAAK,UAAY,GAAK,SAASL,CAAa,QAC5C,SAASC,CAAU,QACnB,OAAOC,CAAgB,GACvB,2BAA2BC,CAAK,oBAChC,IAAID,CAAgB,MAAMC,CAAK,QAC/B,MAAG,iBAAc,CAAE,KAAAE,EAAM,KAAMP,EAAQ,MAAOI,EAAkB,UAAW,SAAU,IAAKA,CAAiB,CAAC,EAC5GG,EAAK,UACF,OAAOH,CAAgB,0BAA0BG,EAAK,UAAU,OAAO,wBAAwBH,CAAgB,MAAMA,CAAgB,GAAG,CAAC,GACzI,QAAQA,CAAgB,0BAA0BF,CAAa,8BAA8BE,CAAgB,MAAMA,CAAgB,KACtI,SAASD,CAAU,WAAWC,CAAgB,GAC9C,IACAG,EAAK,UAAY,GAAKA,EAAK,UAAU,GAAGL,CAAa,UAAW,sBAAsBA,CAAa,GAAG,EACtGK,EAAK,UAAU,GAAGF,CAAK,wBAAyB,GAAGA,CAAK,EAAE,EAC1D,GAAGA,CAAK,MAAMF,CAAU,EACzB,EACA,CACC,OAAQ,KAAO,CAAE,KAAM,QAAS,SAAO,UAAOH,CAAM,CAAE,EACvD,CACD,CACD,EAEaJ,EAAQ,CAA0CY,EAA2BP,EAAM,oBAAsB,CACrH,MAAMC,EAAgB,aAAU,kBAAe,CAAC,GAC1CC,EAAa,UAAO,kBAAe,CAAC,GACpCC,EAAmB,gBAAa,kBAAe,CAAC,GACtD,SAAO,YACN,CAAC,CAAE,MAAAC,EAAO,KAAAC,CAAK,EAAGC,IAAS,CAC1BA,EAAK,UAAU,kBAAkBF,CAAK,IAAK,mBAAmBJ,CAAG,MAAMI,CAAK,KAAKC,CAAI,GAAG,EACxF,GAAIE,EAAS,SAAW,EACrB,CAAC,EACD,CACA,SAASL,CAAU,QACnBI,EAAK,UAAY,GAAK,SAASL,CAAa,QAC5C,GAAGM,EAAS,QAAQ,CAACR,EAAQS,IAAQ,CACpC,OAAOL,CAAgB,GAAGK,CAAG,MAAMJ,CAAK,IAAII,CAAG,IAC/C,MAAG,iBAAc,CAChB,KAAAF,EACA,KAAMP,EACN,MAAO,GAAGI,CAAgB,GAAGK,CAAG,GAChC,IAAK,GAAGA,CAAG,GACX,UAAW,QACZ,CAAC,EACDF,EAAK,UACFA,EAAK,UAAU,GAAGH,CAAgB,GAAGK,CAAG,wBAAyB,GAAGL,CAAgB,GAAGK,CAAG,EAAE,EAC5F,QAAQL,CAAgB,GAAGK,CAAG,0BAA0BP,CAAa,SAASE,CAAgB,GAAGK,CAAG,IACvG,SAASL,CAAgB,GAAGK,CAAG,2BAA2BN,CAAU,IAAIM,CAAG,OAAOL,CAAgB,GAAGK,CAAG,EACzG,CAAC,EACDF,EAAK,UAAY,GAAKA,EAAK,UAAU,GAAGL,CAAa,UAAW,sBAAsBA,CAAa,GAAG,EACtG,GAAGG,CAAK,MAAMF,CAAU,EACzB,CACH,EACA,CACC,OAAQ,KAAO,CACd,KAAM,QACN,MAAOK,EAAS,IAAKE,MAAS,UAAOA,CAAI,CAAC,EAC1C,SAAUF,EAAS,OACnB,SAAUA,EAAS,MACpB,EACD,CACD,CACD,EAEab,EAAQ,CAAIgB,EAAgCC,GAAMA,IAAgB,CAC9E,MAAMC,EAAU,UAAO,kBAAe,CAAC,GACvC,SAAO,YACN,CAAC,CAAE,MAAAR,EAAO,QAAAS,CAAQ,IAAM,CACvB,SAASD,CAAO,QAChB,GAAGR,CAAK,MAAMA,CAAK,0BACnB,gBAAgBS,CAAO,cACvB,SAASD,CAAO,WAChB,KAAKA,CAAO,eACZ,kBACA,KACA,cACA,QACD,EACA,CACC,QAAS,CAAE,MAAAF,CAAM,CAClB,CACD,CACD","names":["arrays_exports","__export","array","asSet","tuple","__toCommonJS","import_pipes","import_functions","branch","err","errorsVarname","resVarname","validatedVarname","input","path","opts","branches","idx","pipe","keyFn","v","varname","context"]}