{"ScriptPreparationCode":"const pipe1 = (...funcs) =\u003E {\r\n if (funcs.length === 0) return v =\u003E v\r\n \r\n if (funcs.length === 1) return funcs[0]\r\n \r\n return funcs.reduce((accum, f) =\u003E {\r\n if (Array.isArray(f)) return arg =\u003E {\r\n var res = accum(arg)\r\n return f.map(ff =\u003E ff(res));\r\n }\r\n \r\n if (typeof f === \u0027object\u0027) return arg =\u003E {\r\n var res = accum(arg)\r\n return Object.entries(f).reduce((accumObj, [key, ff]) =\u003E {\r\n accumObj[key] = ff(res)\r\n return accumObj\r\n }, {})\r\n }\r\n \r\n return arg =\u003E f(accum(arg))\r\n })\r\n }\r\n \r\n const pipe2 = (...funcs) =\u003E {\r\n if (funcs.length === 0) return v =\u003E v\r\n \r\n if (funcs.length === 1) return funcs[0]\r\n \r\n return funcs.reduce((accum, f) =\u003E {\r\n return arg =\u003E {\r\n if (Array.isArray(f)) {\r\n var res = accum(arg)\r\n return f.map(ff =\u003E ff(res));\r\n }\r\n \r\n if (typeof f === \u0027object\u0027) {\r\n var res = accum(arg)\r\n return Object.entries(f).reduce((accumObj, [key, ff]) =\u003E {\r\n accumObj[key] = ff(res)\r\n return accumObj\r\n }, {})\r\n }\r\n \r\n return f(accum(arg))\r\n }\r\n })\r\n }\r\n \r\n \r\n const pipe3 = (...funcs) =\u003E {\r\n if (funcs.length === 0) return v =\u003E v\r\n \r\n if (funcs.length === 1) return funcs[0]\r\n \r\n return input =\u003E funcs.reduce((prev, f) =\u003E {\r\n if (Array.isArray(f)) return f.map(ff =\u003E ff(prev));\r\n \r\n if (typeof f === \u0027object\u0027) return Object.entries(f).reduce((accumObj, [key, ff]) =\u003E {\r\n accumObj[key] = ff(prev)\r\n return accumObj\r\n }, {})\r\n \r\n return f(prev)\r\n }, input)\r\n }\r\n \r\n const fMake = lable =\u003E arg =\u003E {\r\n return arg \u002B lable\r\n }\r\n \r\n var piped1 = pipe1(fMake(\u0027O\u0027), [fMake(\u00271\u0027), fMake(2), fMake(3)], a =\u003E a.join(), {A: fMake(\u0027A\u0027), B: fMake(\u0027B\u0027), C: fMake(\u0027C\u0027)})\r\n \r\n var piped2 = pipe2(fMake(\u0027O\u0027), [fMake(\u00271\u0027), fMake(2), fMake(3)], a =\u003E a.join(), {A: fMake(\u0027A\u0027), B: fMake(\u0027B\u0027), C: fMake(\u0027C\u0027)})\r\n \r\n var piped3 = pipe1(fMake(\u0027O\u0027), [fMake(\u00271\u0027), fMake(2), fMake(3)], a =\u003E a.join(), {A: fMake(\u0027A\u0027), B: fMake(\u0027B\u0027), C: fMake(\u0027C\u0027)})","TestCases":[{"Name":"pipe 1","Code":"piped1(\u0027a\u0027)","IsDeferred":false},{"Name":"pipe 2","Code":"piped2(\u0027a\u0027)","IsDeferred":false},{"Name":"pipe 3","Code":"piped3(\u0027a\u0027)","IsDeferred":false}]}