fp-pack 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -7
- package/dist/fp-pack.umd.js +1 -1
- package/dist/fp-pack.umd.js.map +1 -1
- package/dist/implement/async/index.d.ts +1 -0
- package/dist/implement/async/index.d.ts.map +1 -1
- package/dist/implement/async/pipeAsync.d.ts +1 -0
- package/dist/implement/async/pipeAsync.d.ts.map +1 -1
- package/dist/implement/async/pipeAsync.mjs.map +1 -1
- package/dist/implement/async/pipeAsyncSideEffect.d.ts +1 -0
- package/dist/implement/async/pipeAsyncSideEffect.d.ts.map +1 -1
- package/dist/implement/async/pipeAsyncSideEffect.mjs.map +1 -1
- package/dist/implement/async/pipeAsyncSideEffectStrict.d.ts +73 -0
- package/dist/implement/async/pipeAsyncSideEffectStrict.d.ts.map +1 -0
- package/dist/implement/async/pipeAsyncSideEffectStrict.mjs +16 -0
- package/dist/implement/async/pipeAsyncSideEffectStrict.mjs.map +1 -0
- package/dist/implement/composition/from.d.ts +6 -0
- package/dist/implement/composition/from.d.ts.map +1 -0
- package/dist/implement/composition/from.mjs +7 -0
- package/dist/implement/composition/from.mjs.map +1 -0
- package/dist/implement/composition/index.d.ts +2 -0
- package/dist/implement/composition/index.d.ts.map +1 -1
- package/dist/implement/composition/pipe.d.ts +8 -0
- package/dist/implement/composition/pipe.d.ts.map +1 -1
- package/dist/implement/composition/pipe.mjs.map +1 -1
- package/dist/implement/composition/pipe.type-test.d.ts +64 -0
- package/dist/implement/composition/pipe.type-test.d.ts.map +1 -1
- package/dist/implement/composition/pipeSideEffect.d.ts +8 -0
- package/dist/implement/composition/pipeSideEffect.d.ts.map +1 -1
- package/dist/implement/composition/pipeSideEffect.mjs.map +1 -1
- package/dist/implement/composition/pipeSideEffectStrict.d.ts +69 -0
- package/dist/implement/composition/pipeSideEffectStrict.d.ts.map +1 -0
- package/dist/implement/composition/pipeSideEffectStrict.mjs +16 -0
- package/dist/implement/composition/pipeSideEffectStrict.mjs.map +1 -0
- package/dist/implement/control/ifElse.d.ts +4 -3
- package/dist/implement/control/ifElse.d.ts.map +1 -1
- package/dist/implement/control/ifElse.mjs.map +1 -1
- package/dist/implement/control/unless.d.ts +14 -2
- package/dist/implement/control/unless.d.ts.map +1 -1
- package/dist/implement/control/unless.mjs.map +1 -1
- package/dist/implement/control/when.d.ts +14 -2
- package/dist/implement/control/when.d.ts.map +1 -1
- package/dist/implement/control/when.mjs.map +1 -1
- package/dist/implement/object/index.d.ts +1 -0
- package/dist/implement/object/index.d.ts.map +1 -1
- package/dist/implement/object/propStrict.d.ts +7 -0
- package/dist/implement/object/propStrict.d.ts.map +1 -0
- package/dist/implement/object/propStrict.mjs +12 -0
- package/dist/implement/object/propStrict.mjs.map +1 -0
- package/dist/index.mjs +248 -240
- package/dist/index.mjs.map +1 -1
- package/dist/skills/fp-pack/SKILL.md +1699 -0
- package/dist/skills/fp-pack.md +57 -9
- package/package.json +1 -1
- package/src/implement/async/index.ts +1 -0
- package/src/implement/async/pipeAsync.ts +8 -0
- package/src/implement/async/pipeAsyncSideEffect.ts +8 -0
- package/src/implement/async/pipeAsyncSideEffectStrict.test.ts +23 -0
- package/src/implement/async/pipeAsyncSideEffectStrict.ts +170 -0
- package/src/implement/composition/from.test.ts +16 -0
- package/src/implement/composition/from.ts +8 -0
- package/src/implement/composition/index.ts +2 -0
- package/src/implement/composition/pipe.test.ts +8 -0
- package/src/implement/composition/pipe.ts +28 -0
- package/src/implement/composition/pipe.type-test.ts +142 -0
- package/src/implement/composition/pipeSideEffect.test.ts +8 -0
- package/src/implement/composition/pipeSideEffect.ts +33 -0
- package/src/implement/composition/pipeSideEffectStrict.test.ts +23 -0
- package/src/implement/composition/pipeSideEffectStrict.ts +164 -0
- package/src/implement/control/curried.test.ts +18 -0
- package/src/implement/control/ifElse.ts +5 -3
- package/src/implement/control/unless.ts +20 -2
- package/src/implement/control/when.ts +20 -2
- package/src/implement/object/index.ts +1 -0
- package/src/implement/object/propStrict.test.ts +29 -0
- package/src/implement/object/propStrict.ts +20 -0
|
@@ -8,6 +8,7 @@ declare function pipeAsync<A, B, R>(ab: AsyncOrSync<A, B>, bc: AsyncOrSync<Await
|
|
|
8
8
|
declare function pipeAsync<A, B, C, R>(ab: AsyncOrSync<A, B>, bc: AsyncOrSync<Awaited<B>, C>, cd: AsyncOrSync<Awaited<C>, R>): (a: A) => Promise<Awaited<R>>;
|
|
9
9
|
declare function pipeAsync<A, B, C, D, R>(ab: AsyncOrSync<A, B>, bc: AsyncOrSync<Awaited<B>, C>, cd: AsyncOrSync<Awaited<C>, D>, de: AsyncOrSync<Awaited<D>, R>): (a: A) => Promise<Awaited<R>>;
|
|
10
10
|
declare function pipeAsync<A, B, C, D, E, R>(ab: AsyncOrSync<A, B>, bc: AsyncOrSync<Awaited<B>, C>, cd: AsyncOrSync<Awaited<C>, D>, de: AsyncOrSync<Awaited<D>, E>, ef: AsyncOrSync<Awaited<E>, R>): (a: A) => Promise<Awaited<R>>;
|
|
11
|
+
declare function pipeAsync<A, B, C, D, E, F, R>(ab: AsyncOrSync<A, B>, bc: AsyncOrSync<Awaited<B>, C>, cd: AsyncOrSync<Awaited<C>, D>, de: AsyncOrSync<Awaited<D>, E>, ef: AsyncOrSync<Awaited<E>, F>, fg: AsyncOrSync<Awaited<F>, R>): (a: A) => Promise<Awaited<R>>;
|
|
11
12
|
declare function pipeAsync<Fns extends [AsyncOrSync<any, any>, ...AsyncOrSync<any, any>[]]>(...funcs: Fns): PipeAsync<Fns>;
|
|
12
13
|
declare function pipeAsync(...funcs: Array<AsyncOrSync<any, any>>): (value: any) => Promise<any>;
|
|
13
14
|
export default pipeAsync;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeAsync.d.ts","sourceRoot":"","sources":["../../../src/implement/async/pipeAsync.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pipeAsync.d.ts","sourceRoot":"","sources":["../../../src/implement/async/pipeAsync.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeAsync.mjs","sources":["../../../src/implement/async/pipeAsync.ts"],"sourcesContent":["/** pipeAsync - 비동기 함수 합성 */\ntype AsyncOrSync<A, R> = (a: A) => R | Promise<R>;\ntype PipeInput<Fns extends AsyncOrSync<any, any>[]> = Fns extends [AsyncOrSync<infer A, any>, ...AsyncOrSync<any, any>[]]\n ? A\n : never;\ntype PipeOutput<Fns extends AsyncOrSync<any, any>[]> = Fns extends [AsyncOrSync<any, infer R>]\n ? Awaited<R>\n : Fns extends [AsyncOrSync<any, infer R>, ...infer Rest]\n ? Rest extends [AsyncOrSync<Awaited<R>, any>, ...AsyncOrSync<any, any>[]]\n ? PipeOutput<Rest>\n : never\n : never;\ntype PipeAsync<Fns extends AsyncOrSync<any, any>[]> = (input: PipeInput<Fns>) => Promise<PipeOutput<Fns>>;\n\nfunction pipeAsync<A, R>(ab: AsyncOrSync<A, R>): (a: A) => Promise<Awaited<R>>;\nfunction pipeAsync<A, B, R>(ab: AsyncOrSync<A, B>, bc: AsyncOrSync<Awaited<B>, R>): (a: A) => Promise<Awaited<R>>;\nfunction pipeAsync<A, B, C, R>(\n ab: AsyncOrSync<A, B>,\n bc: AsyncOrSync<Awaited<B>, C>,\n cd: AsyncOrSync<Awaited<C>, R>\n): (a: A) => Promise<Awaited<R>>;\nfunction pipeAsync<A, B, C, D, R>(\n ab: AsyncOrSync<A, B>,\n bc: AsyncOrSync<Awaited<B>, C>,\n cd: AsyncOrSync<Awaited<C>, D>,\n de: AsyncOrSync<Awaited<D>, R>\n): (a: A) => Promise<Awaited<R>>;\nfunction pipeAsync<A, B, C, D, E, R>(\n ab: AsyncOrSync<A, B>,\n bc: AsyncOrSync<Awaited<B>, C>,\n cd: AsyncOrSync<Awaited<C>, D>,\n de: AsyncOrSync<Awaited<D>, E>,\n ef: AsyncOrSync<Awaited<E>, R>\n): (a: A) => Promise<Awaited<R>>;\n\nfunction pipeAsync<Fns extends [AsyncOrSync<any, any>, ...AsyncOrSync<any, any>[]]>(...funcs: Fns): PipeAsync<Fns>;\nfunction pipeAsync(...funcs: Array<AsyncOrSync<any, any>>): (value: any) => Promise<any>;\nfunction pipeAsync(...funcs: Array<(arg: any) => any>) {\n return async (value: any) => {\n let acc = value;\n for (const fn of funcs) {\n acc = await fn(acc);\n }\n return acc;\n };\n}\n\nexport default pipeAsync;\n"],"names":["pipeAsync","funcs","value","acc","fn"],"mappings":"
|
|
1
|
+
{"version":3,"file":"pipeAsync.mjs","sources":["../../../src/implement/async/pipeAsync.ts"],"sourcesContent":["/** pipeAsync - 비동기 함수 합성 */\ntype AsyncOrSync<A, R> = (a: A) => R | Promise<R>;\ntype PipeInput<Fns extends AsyncOrSync<any, any>[]> = Fns extends [AsyncOrSync<infer A, any>, ...AsyncOrSync<any, any>[]]\n ? A\n : never;\ntype PipeOutput<Fns extends AsyncOrSync<any, any>[]> = Fns extends [AsyncOrSync<any, infer R>]\n ? Awaited<R>\n : Fns extends [AsyncOrSync<any, infer R>, ...infer Rest]\n ? Rest extends [AsyncOrSync<Awaited<R>, any>, ...AsyncOrSync<any, any>[]]\n ? PipeOutput<Rest>\n : never\n : never;\ntype PipeAsync<Fns extends AsyncOrSync<any, any>[]> = (input: PipeInput<Fns>) => Promise<PipeOutput<Fns>>;\n\nfunction pipeAsync<A, R>(ab: AsyncOrSync<A, R>): (a: A) => Promise<Awaited<R>>;\nfunction pipeAsync<A, B, R>(ab: AsyncOrSync<A, B>, bc: AsyncOrSync<Awaited<B>, R>): (a: A) => Promise<Awaited<R>>;\nfunction pipeAsync<A, B, C, R>(\n ab: AsyncOrSync<A, B>,\n bc: AsyncOrSync<Awaited<B>, C>,\n cd: AsyncOrSync<Awaited<C>, R>\n): (a: A) => Promise<Awaited<R>>;\nfunction pipeAsync<A, B, C, D, R>(\n ab: AsyncOrSync<A, B>,\n bc: AsyncOrSync<Awaited<B>, C>,\n cd: AsyncOrSync<Awaited<C>, D>,\n de: AsyncOrSync<Awaited<D>, R>\n): (a: A) => Promise<Awaited<R>>;\nfunction pipeAsync<A, B, C, D, E, R>(\n ab: AsyncOrSync<A, B>,\n bc: AsyncOrSync<Awaited<B>, C>,\n cd: AsyncOrSync<Awaited<C>, D>,\n de: AsyncOrSync<Awaited<D>, E>,\n ef: AsyncOrSync<Awaited<E>, R>\n): (a: A) => Promise<Awaited<R>>;\nfunction pipeAsync<A, B, C, D, E, F, R>(\n ab: AsyncOrSync<A, B>,\n bc: AsyncOrSync<Awaited<B>, C>,\n cd: AsyncOrSync<Awaited<C>, D>,\n de: AsyncOrSync<Awaited<D>, E>,\n ef: AsyncOrSync<Awaited<E>, F>,\n fg: AsyncOrSync<Awaited<F>, R>\n): (a: A) => Promise<Awaited<R>>;\n\nfunction pipeAsync<Fns extends [AsyncOrSync<any, any>, ...AsyncOrSync<any, any>[]]>(...funcs: Fns): PipeAsync<Fns>;\nfunction pipeAsync(...funcs: Array<AsyncOrSync<any, any>>): (value: any) => Promise<any>;\nfunction pipeAsync(...funcs: Array<(arg: any) => any>) {\n return async (value: any) => {\n let acc = value;\n for (const fn of funcs) {\n acc = await fn(acc);\n }\n return acc;\n };\n}\n\nexport default pipeAsync;\n"],"names":["pipeAsync","funcs","value","acc","fn"],"mappings":"AA6CA,SAASA,KAAaC,GAAiC;AACrD,SAAO,OAAOC,MAAe;AAC3B,QAAIC,IAAMD;AACV,eAAWE,KAAMH;AACf,MAAAE,IAAM,MAAMC,EAAGD,CAAG;AAEpB,WAAOA;AAAA,EACT;AACF;"}
|
|
@@ -15,6 +15,7 @@ declare function pipeAsyncSideEffect<A, B, R>(ab: AsyncOrSync<A, B>, bc: AsyncOr
|
|
|
15
15
|
declare function pipeAsyncSideEffect<A, B, C, R>(ab: AsyncOrSync<A, B>, bc: AsyncOrSync<Awaited<B>, C>, cd: AsyncOrSync<Awaited<C>, R>): (a: A | SideEffect<any>) => Promise<MaybeSideEffect<Awaited<R>>>;
|
|
16
16
|
declare function pipeAsyncSideEffect<A, B, C, D, R>(ab: AsyncOrSync<A, B>, bc: AsyncOrSync<Awaited<B>, C>, cd: AsyncOrSync<Awaited<C>, D>, de: AsyncOrSync<Awaited<D>, R>): (a: A | SideEffect<any>) => Promise<MaybeSideEffect<Awaited<R>>>;
|
|
17
17
|
declare function pipeAsyncSideEffect<A, B, C, D, E, R>(ab: AsyncOrSync<A, B>, bc: AsyncOrSync<Awaited<B>, C>, cd: AsyncOrSync<Awaited<C>, D>, de: AsyncOrSync<Awaited<D>, E>, ef: AsyncOrSync<Awaited<E>, R>): (a: A | SideEffect<any>) => Promise<MaybeSideEffect<Awaited<R>>>;
|
|
18
|
+
declare function pipeAsyncSideEffect<A, B, C, D, E, F, R>(ab: AsyncOrSync<A, B>, bc: AsyncOrSync<Awaited<B>, C>, cd: AsyncOrSync<Awaited<C>, D>, de: AsyncOrSync<Awaited<D>, E>, ef: AsyncOrSync<Awaited<E>, F>, fg: AsyncOrSync<Awaited<F>, R>): (a: A | SideEffect<any>) => Promise<MaybeSideEffect<Awaited<R>>>;
|
|
18
19
|
declare function pipeAsyncSideEffect<Fns extends [AsyncOrSync<any, any>, ...AsyncOrSync<any, any>[]]>(...funcs: Fns): PipeAsyncSideEffect<Fns>;
|
|
19
20
|
declare function pipeAsyncSideEffect(...funcs: Array<AsyncOrSync<any, any>>): (value: any) => Promise<any>;
|
|
20
21
|
export default pipeAsyncSideEffect;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeAsyncSideEffect.d.ts","sourceRoot":"","sources":["../../../src/implement/async/pipeAsyncSideEffect.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pipeAsyncSideEffect.d.ts","sourceRoot":"","sources":["../../../src/implement/async/pipeAsyncSideEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeAsyncSideEffect.mjs","sources":["../../../src/implement/async/pipeAsyncSideEffect.ts"],"sourcesContent":["import SideEffect, { isSideEffect } from '../composition/sideEffect';\n\n/** pipeAsyncSideEffect - SideEffect를 허용하는 비동기 함수 합성 */\ntype MaybeSideEffect<T> = T | SideEffect<any>;\ntype NonSideEffect<T> = Exclude<T, SideEffect<any>>;\ntype AsyncOrSync<A, R> = (a: A) => MaybeSideEffect<R> | Promise<MaybeSideEffect<R>>;\ntype PipeInput<Fns extends AsyncOrSync<any, any>[]> = Fns extends [\n AsyncOrSync<infer A, any>,\n ...AsyncOrSync<any, any>[]\n]\n ? A\n : never;\ntype PipeOutput<Fns extends AsyncOrSync<any, any>[]> = Fns extends [AsyncOrSync<any, infer R>]\n ? MaybeSideEffect<Awaited<R>>\n : Fns extends [AsyncOrSync<any, infer R>, ...infer Rest]\n ? Rest extends [AsyncOrSync<Awaited<NonSideEffect<R>>, any>, ...AsyncOrSync<any, any>[]]\n ? PipeOutput<Rest>\n : never\n : never;\ntype Resolve<T> = T extends infer R ? R : never;\ntype PipeAsyncSideEffect<Fns extends AsyncOrSync<any, any>[]> = (\n input: PipeInput<Fns> | SideEffect<any>\n) => Promise<Resolve<PipeOutput<Fns>>>;\n\nfunction pipeAsyncSideEffect<A, R>(\n ab: AsyncOrSync<A, R>\n): (a: A | SideEffect<any>) => Promise<MaybeSideEffect<Awaited<R>>>;\nfunction pipeAsyncSideEffect<A, B, R>(\n ab: AsyncOrSync<A, B>,\n bc: AsyncOrSync<Awaited<B>, R>\n): (a: A | SideEffect<any>) => Promise<MaybeSideEffect<Awaited<R>>>;\nfunction pipeAsyncSideEffect<A, B, C, R>(\n ab: AsyncOrSync<A, B>,\n bc: AsyncOrSync<Awaited<B>, C>,\n cd: AsyncOrSync<Awaited<C>, R>\n): (a: A | SideEffect<any>) => Promise<MaybeSideEffect<Awaited<R>>>;\nfunction pipeAsyncSideEffect<A, B, C, D, R>(\n ab: AsyncOrSync<A, B>,\n bc: AsyncOrSync<Awaited<B>, C>,\n cd: AsyncOrSync<Awaited<C>, D>,\n de: AsyncOrSync<Awaited<D>, R>\n): (a: A | SideEffect<any>) => Promise<MaybeSideEffect<Awaited<R>>>;\nfunction pipeAsyncSideEffect<A, B, C, D, E, R>(\n ab: AsyncOrSync<A, B>,\n bc: AsyncOrSync<Awaited<B>, C>,\n cd: AsyncOrSync<Awaited<C>, D>,\n de: AsyncOrSync<Awaited<D>, E>,\n ef: AsyncOrSync<Awaited<E>, R>\n): (a: A | SideEffect<any>) => Promise<MaybeSideEffect<Awaited<R>>>;\n\nfunction pipeAsyncSideEffect<Fns extends [AsyncOrSync<any, any>, ...AsyncOrSync<any, any>[]]>(\n ...funcs: Fns\n): PipeAsyncSideEffect<Fns>;\nfunction pipeAsyncSideEffect(...funcs: Array<AsyncOrSync<any, any>>): (value: any) => Promise<any>;\nfunction pipeAsyncSideEffect(...funcs: Array<(arg: any) => any>) {\n return async (value: any) => {\n let acc = value;\n for (const fn of funcs) {\n if (isSideEffect(acc)) {\n return acc;\n }\n acc = await fn(acc);\n }\n return acc;\n };\n}\n\nexport default pipeAsyncSideEffect;\n"],"names":["pipeAsyncSideEffect","funcs","value","acc","fn","isSideEffect"],"mappings":";
|
|
1
|
+
{"version":3,"file":"pipeAsyncSideEffect.mjs","sources":["../../../src/implement/async/pipeAsyncSideEffect.ts"],"sourcesContent":["import SideEffect, { isSideEffect } from '../composition/sideEffect';\n\n/** pipeAsyncSideEffect - SideEffect를 허용하는 비동기 함수 합성 */\ntype MaybeSideEffect<T> = T | SideEffect<any>;\ntype NonSideEffect<T> = Exclude<T, SideEffect<any>>;\ntype AsyncOrSync<A, R> = (a: A) => MaybeSideEffect<R> | Promise<MaybeSideEffect<R>>;\ntype PipeInput<Fns extends AsyncOrSync<any, any>[]> = Fns extends [\n AsyncOrSync<infer A, any>,\n ...AsyncOrSync<any, any>[]\n]\n ? A\n : never;\ntype PipeOutput<Fns extends AsyncOrSync<any, any>[]> = Fns extends [AsyncOrSync<any, infer R>]\n ? MaybeSideEffect<Awaited<R>>\n : Fns extends [AsyncOrSync<any, infer R>, ...infer Rest]\n ? Rest extends [AsyncOrSync<Awaited<NonSideEffect<R>>, any>, ...AsyncOrSync<any, any>[]]\n ? PipeOutput<Rest>\n : never\n : never;\ntype Resolve<T> = T extends infer R ? R : never;\ntype PipeAsyncSideEffect<Fns extends AsyncOrSync<any, any>[]> = (\n input: PipeInput<Fns> | SideEffect<any>\n) => Promise<Resolve<PipeOutput<Fns>>>;\n\nfunction pipeAsyncSideEffect<A, R>(\n ab: AsyncOrSync<A, R>\n): (a: A | SideEffect<any>) => Promise<MaybeSideEffect<Awaited<R>>>;\nfunction pipeAsyncSideEffect<A, B, R>(\n ab: AsyncOrSync<A, B>,\n bc: AsyncOrSync<Awaited<B>, R>\n): (a: A | SideEffect<any>) => Promise<MaybeSideEffect<Awaited<R>>>;\nfunction pipeAsyncSideEffect<A, B, C, R>(\n ab: AsyncOrSync<A, B>,\n bc: AsyncOrSync<Awaited<B>, C>,\n cd: AsyncOrSync<Awaited<C>, R>\n): (a: A | SideEffect<any>) => Promise<MaybeSideEffect<Awaited<R>>>;\nfunction pipeAsyncSideEffect<A, B, C, D, R>(\n ab: AsyncOrSync<A, B>,\n bc: AsyncOrSync<Awaited<B>, C>,\n cd: AsyncOrSync<Awaited<C>, D>,\n de: AsyncOrSync<Awaited<D>, R>\n): (a: A | SideEffect<any>) => Promise<MaybeSideEffect<Awaited<R>>>;\nfunction pipeAsyncSideEffect<A, B, C, D, E, R>(\n ab: AsyncOrSync<A, B>,\n bc: AsyncOrSync<Awaited<B>, C>,\n cd: AsyncOrSync<Awaited<C>, D>,\n de: AsyncOrSync<Awaited<D>, E>,\n ef: AsyncOrSync<Awaited<E>, R>\n): (a: A | SideEffect<any>) => Promise<MaybeSideEffect<Awaited<R>>>;\nfunction pipeAsyncSideEffect<A, B, C, D, E, F, R>(\n ab: AsyncOrSync<A, B>,\n bc: AsyncOrSync<Awaited<B>, C>,\n cd: AsyncOrSync<Awaited<C>, D>,\n de: AsyncOrSync<Awaited<D>, E>,\n ef: AsyncOrSync<Awaited<E>, F>,\n fg: AsyncOrSync<Awaited<F>, R>\n): (a: A | SideEffect<any>) => Promise<MaybeSideEffect<Awaited<R>>>;\n\nfunction pipeAsyncSideEffect<Fns extends [AsyncOrSync<any, any>, ...AsyncOrSync<any, any>[]]>(\n ...funcs: Fns\n): PipeAsyncSideEffect<Fns>;\nfunction pipeAsyncSideEffect(...funcs: Array<AsyncOrSync<any, any>>): (value: any) => Promise<any>;\nfunction pipeAsyncSideEffect(...funcs: Array<(arg: any) => any>) {\n return async (value: any) => {\n let acc = value;\n for (const fn of funcs) {\n if (isSideEffect(acc)) {\n return acc;\n }\n acc = await fn(acc);\n }\n return acc;\n };\n}\n\nexport default pipeAsyncSideEffect;\n"],"names":["pipeAsyncSideEffect","funcs","value","acc","fn","isSideEffect"],"mappings":";AA8DA,SAASA,KAAuBC,GAAiC;AAC/D,SAAO,OAAOC,MAAe;AAC3B,QAAIC,IAAMD;AACV,eAAWE,KAAMH,GAAO;AACtB,UAAII,EAAaF,CAAG;AAClB,eAAOA;AAET,MAAAA,IAAM,MAAMC,EAAGD,CAAG;AAAA,IACpB;AACA,WAAOA;AAAA,EACT;AACF;"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { default as SideEffect } from '../composition/sideEffect';
|
|
2
|
+
type AnyFn = (...args: any[]) => any;
|
|
3
|
+
type MaybeSideEffect<T, E> = T | SideEffect<E>;
|
|
4
|
+
type NonSideEffect<T> = Exclude<T, SideEffect<any>>;
|
|
5
|
+
type AsyncOrSync<A, R> = (a: A) => R | Promise<R>;
|
|
6
|
+
type ZeroFn<R> = () => R | Promise<R>;
|
|
7
|
+
type EffectOfReturn<R> = R extends SideEffect<infer E> ? E : never;
|
|
8
|
+
type EffectOfFn<F> = F extends (...args: any[]) => infer R ? EffectOfReturn<Awaited<R>> : never;
|
|
9
|
+
type EffectsOf<Fns extends AnyFn[]> = EffectOfFn<Fns[number]>;
|
|
10
|
+
type PipeValueOutputUnary<Fns extends AsyncOrSync<any, any>[]> = Fns extends [AsyncOrSync<any, infer R>] ? NonSideEffect<Awaited<R>> : Fns extends [AsyncOrSync<any, infer R>, ...infer Rest] ? Rest extends [AsyncOrSync<NonSideEffect<Awaited<R>>, any>, ...AsyncOrSync<any, any>[]] ? PipeValueOutputUnary<Rest> : never : never;
|
|
11
|
+
type PipeValueOutputStrict<Fns extends [AnyFn, ...AnyFn[]]> = Fns extends [ZeroFn<infer R>] ? NonSideEffect<Awaited<R>> : Fns extends [ZeroFn<infer R>, ...infer Rest] ? Rest extends [AsyncOrSync<NonSideEffect<Awaited<R>>, any>, ...AsyncOrSync<any, any>[]] ? PipeValueOutputUnary<Rest> : never : Fns extends [AsyncOrSync<any, any>, ...AsyncOrSync<any, any>[]] ? PipeValueOutputUnary<Fns> : never;
|
|
12
|
+
type PipeInputStrict<Fns extends [AnyFn, ...AnyFn[]]> = Fns extends [ZeroFn<any>, ...AnyFn[]] ? never : Fns extends [AsyncOrSync<infer A, any>, ...AnyFn[]] ? A : never;
|
|
13
|
+
type Resolve<T> = T extends infer R ? R : never;
|
|
14
|
+
type PipeAsyncSideEffectStrictUnary<Fns extends [AnyFn, ...AnyFn[]]> = {
|
|
15
|
+
(input: PipeInputStrict<Fns>): Promise<Resolve<MaybeSideEffect<PipeValueOutputStrict<Fns>, EffectsOf<Fns>>>>;
|
|
16
|
+
<EIn>(input: PipeInputStrict<Fns> | SideEffect<EIn>): Promise<Resolve<MaybeSideEffect<PipeValueOutputStrict<Fns>, EffectsOf<Fns> | EIn>>>;
|
|
17
|
+
};
|
|
18
|
+
type PipeAsyncSideEffectStrict<Fns extends [AnyFn, ...AnyFn[]]> = Fns extends [ZeroFn<any>, ...AnyFn[]] ? () => Promise<Resolve<MaybeSideEffect<PipeValueOutputStrict<Fns>, EffectsOf<Fns>>>> : PipeAsyncSideEffectStrictUnary<Fns>;
|
|
19
|
+
declare function pipeAsyncSideEffectStrict<R>(ab: ZeroFn<R>): PipeAsyncSideEffectStrict<[ZeroFn<R>]>;
|
|
20
|
+
declare function pipeAsyncSideEffectStrict<B, R>(ab: ZeroFn<B>, bc: AsyncOrSync<NonSideEffect<Awaited<B>>, R>): PipeAsyncSideEffectStrict<[ZeroFn<B>, AsyncOrSync<NonSideEffect<Awaited<B>>, R>]>;
|
|
21
|
+
declare function pipeAsyncSideEffectStrict<B, C, R>(ab: ZeroFn<B>, bc: AsyncOrSync<NonSideEffect<Awaited<B>>, C>, cd: AsyncOrSync<NonSideEffect<Awaited<C>>, R>): PipeAsyncSideEffectStrict<[ZeroFn<B>, AsyncOrSync<NonSideEffect<Awaited<B>>, C>, AsyncOrSync<NonSideEffect<Awaited<C>>, R>]>;
|
|
22
|
+
declare function pipeAsyncSideEffectStrict<B, C, D, R>(ab: ZeroFn<B>, bc: AsyncOrSync<NonSideEffect<Awaited<B>>, C>, cd: AsyncOrSync<NonSideEffect<Awaited<C>>, D>, de: AsyncOrSync<NonSideEffect<Awaited<D>>, R>): PipeAsyncSideEffectStrict<[
|
|
23
|
+
ZeroFn<B>,
|
|
24
|
+
AsyncOrSync<NonSideEffect<Awaited<B>>, C>,
|
|
25
|
+
AsyncOrSync<NonSideEffect<Awaited<C>>, D>,
|
|
26
|
+
AsyncOrSync<NonSideEffect<Awaited<D>>, R>
|
|
27
|
+
]>;
|
|
28
|
+
declare function pipeAsyncSideEffectStrict<B, C, D, E, R>(ab: ZeroFn<B>, bc: AsyncOrSync<NonSideEffect<Awaited<B>>, C>, cd: AsyncOrSync<NonSideEffect<Awaited<C>>, D>, de: AsyncOrSync<NonSideEffect<Awaited<D>>, E>, ef: AsyncOrSync<NonSideEffect<Awaited<E>>, R>): PipeAsyncSideEffectStrict<[
|
|
29
|
+
ZeroFn<B>,
|
|
30
|
+
AsyncOrSync<NonSideEffect<Awaited<B>>, C>,
|
|
31
|
+
AsyncOrSync<NonSideEffect<Awaited<C>>, D>,
|
|
32
|
+
AsyncOrSync<NonSideEffect<Awaited<D>>, E>,
|
|
33
|
+
AsyncOrSync<NonSideEffect<Awaited<E>>, R>
|
|
34
|
+
]>;
|
|
35
|
+
declare function pipeAsyncSideEffectStrict<B, C, D, E, F, R>(ab: ZeroFn<B>, bc: AsyncOrSync<NonSideEffect<Awaited<B>>, C>, cd: AsyncOrSync<NonSideEffect<Awaited<C>>, D>, de: AsyncOrSync<NonSideEffect<Awaited<D>>, E>, ef: AsyncOrSync<NonSideEffect<Awaited<E>>, F>, fg: AsyncOrSync<NonSideEffect<Awaited<F>>, R>): PipeAsyncSideEffectStrict<[
|
|
36
|
+
ZeroFn<B>,
|
|
37
|
+
AsyncOrSync<NonSideEffect<Awaited<B>>, C>,
|
|
38
|
+
AsyncOrSync<NonSideEffect<Awaited<C>>, D>,
|
|
39
|
+
AsyncOrSync<NonSideEffect<Awaited<D>>, E>,
|
|
40
|
+
AsyncOrSync<NonSideEffect<Awaited<E>>, F>,
|
|
41
|
+
AsyncOrSync<NonSideEffect<Awaited<F>>, R>
|
|
42
|
+
]>;
|
|
43
|
+
declare function pipeAsyncSideEffectStrict<A, R>(ab: AsyncOrSync<A, R>): PipeAsyncSideEffectStrict<[AsyncOrSync<A, R>]>;
|
|
44
|
+
declare function pipeAsyncSideEffectStrict<A, B, R>(ab: AsyncOrSync<A, B>, bc: AsyncOrSync<NonSideEffect<Awaited<B>>, R>): PipeAsyncSideEffectStrict<[AsyncOrSync<A, B>, AsyncOrSync<NonSideEffect<Awaited<B>>, R>]>;
|
|
45
|
+
declare function pipeAsyncSideEffectStrict<A, B, C, R>(ab: AsyncOrSync<A, B>, bc: AsyncOrSync<NonSideEffect<Awaited<B>>, C>, cd: AsyncOrSync<NonSideEffect<Awaited<C>>, R>): PipeAsyncSideEffectStrict<[
|
|
46
|
+
AsyncOrSync<A, B>,
|
|
47
|
+
AsyncOrSync<NonSideEffect<Awaited<B>>, C>,
|
|
48
|
+
AsyncOrSync<NonSideEffect<Awaited<C>>, R>
|
|
49
|
+
]>;
|
|
50
|
+
declare function pipeAsyncSideEffectStrict<A, B, C, D, R>(ab: AsyncOrSync<A, B>, bc: AsyncOrSync<NonSideEffect<Awaited<B>>, C>, cd: AsyncOrSync<NonSideEffect<Awaited<C>>, D>, de: AsyncOrSync<NonSideEffect<Awaited<D>>, R>): PipeAsyncSideEffectStrict<[
|
|
51
|
+
AsyncOrSync<A, B>,
|
|
52
|
+
AsyncOrSync<NonSideEffect<Awaited<B>>, C>,
|
|
53
|
+
AsyncOrSync<NonSideEffect<Awaited<C>>, D>,
|
|
54
|
+
AsyncOrSync<NonSideEffect<Awaited<D>>, R>
|
|
55
|
+
]>;
|
|
56
|
+
declare function pipeAsyncSideEffectStrict<A, B, C, D, E, R>(ab: AsyncOrSync<A, B>, bc: AsyncOrSync<NonSideEffect<Awaited<B>>, C>, cd: AsyncOrSync<NonSideEffect<Awaited<C>>, D>, de: AsyncOrSync<NonSideEffect<Awaited<D>>, E>, ef: AsyncOrSync<NonSideEffect<Awaited<E>>, R>): PipeAsyncSideEffectStrict<[
|
|
57
|
+
AsyncOrSync<A, B>,
|
|
58
|
+
AsyncOrSync<NonSideEffect<Awaited<B>>, C>,
|
|
59
|
+
AsyncOrSync<NonSideEffect<Awaited<C>>, D>,
|
|
60
|
+
AsyncOrSync<NonSideEffect<Awaited<D>>, E>,
|
|
61
|
+
AsyncOrSync<NonSideEffect<Awaited<E>>, R>
|
|
62
|
+
]>;
|
|
63
|
+
declare function pipeAsyncSideEffectStrict<A, B, C, D, E, F, R>(ab: AsyncOrSync<A, B>, bc: AsyncOrSync<NonSideEffect<Awaited<B>>, C>, cd: AsyncOrSync<NonSideEffect<Awaited<C>>, D>, de: AsyncOrSync<NonSideEffect<Awaited<D>>, E>, ef: AsyncOrSync<NonSideEffect<Awaited<E>>, F>, fg: AsyncOrSync<NonSideEffect<Awaited<F>>, R>): PipeAsyncSideEffectStrict<[
|
|
64
|
+
AsyncOrSync<A, B>,
|
|
65
|
+
AsyncOrSync<NonSideEffect<Awaited<B>>, C>,
|
|
66
|
+
AsyncOrSync<NonSideEffect<Awaited<C>>, D>,
|
|
67
|
+
AsyncOrSync<NonSideEffect<Awaited<D>>, E>,
|
|
68
|
+
AsyncOrSync<NonSideEffect<Awaited<E>>, F>,
|
|
69
|
+
AsyncOrSync<NonSideEffect<Awaited<F>>, R>
|
|
70
|
+
]>;
|
|
71
|
+
declare function pipeAsyncSideEffectStrict<Fns extends [AnyFn, ...AnyFn[]]>(...funcs: Fns): PipeAsyncSideEffectStrict<Fns>;
|
|
72
|
+
export default pipeAsyncSideEffectStrict;
|
|
73
|
+
//# sourceMappingURL=pipeAsyncSideEffectStrict.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeAsyncSideEffectStrict.d.ts","sourceRoot":"","sources":["../../../src/implement/async/pipeAsyncSideEffectStrict.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { isSideEffect as c } from "../composition/sideEffect.mjs";
|
|
2
|
+
function n(...e) {
|
|
3
|
+
return async (f) => {
|
|
4
|
+
let t = f;
|
|
5
|
+
for (const r of e) {
|
|
6
|
+
if (c(t))
|
|
7
|
+
return t;
|
|
8
|
+
t = await r(t);
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export {
|
|
14
|
+
n as default
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=pipeAsyncSideEffectStrict.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeAsyncSideEffectStrict.mjs","sources":["../../../src/implement/async/pipeAsyncSideEffectStrict.ts"],"sourcesContent":["import SideEffect, { isSideEffect } from '../composition/sideEffect';\n\ntype AnyFn = (...args: any[]) => any;\ntype MaybeSideEffect<T, E> = T | SideEffect<E>;\ntype NonSideEffect<T> = Exclude<T, SideEffect<any>>;\ntype AsyncOrSync<A, R> = (a: A) => R | Promise<R>;\ntype ZeroFn<R> = () => R | Promise<R>;\n\ntype EffectOfReturn<R> = R extends SideEffect<infer E> ? E : never;\ntype EffectOfFn<F> = F extends (...args: any[]) => infer R ? EffectOfReturn<Awaited<R>> : never;\ntype EffectsOf<Fns extends AnyFn[]> = EffectOfFn<Fns[number]>;\n\ntype PipeValueOutputUnary<Fns extends AsyncOrSync<any, any>[]> = Fns extends [AsyncOrSync<any, infer R>]\n ? NonSideEffect<Awaited<R>>\n : Fns extends [AsyncOrSync<any, infer R>, ...infer Rest]\n ? Rest extends [AsyncOrSync<NonSideEffect<Awaited<R>>, any>, ...AsyncOrSync<any, any>[]]\n ? PipeValueOutputUnary<Rest>\n : never\n : never;\n\ntype PipeValueOutputStrict<Fns extends [AnyFn, ...AnyFn[]]> =\n Fns extends [ZeroFn<infer R>]\n ? NonSideEffect<Awaited<R>>\n : Fns extends [ZeroFn<infer R>, ...infer Rest]\n ? Rest extends [AsyncOrSync<NonSideEffect<Awaited<R>>, any>, ...AsyncOrSync<any, any>[]]\n ? PipeValueOutputUnary<Rest>\n : never\n : Fns extends [AsyncOrSync<any, any>, ...AsyncOrSync<any, any>[]]\n ? PipeValueOutputUnary<Fns>\n : never;\n\ntype PipeInputStrict<Fns extends [AnyFn, ...AnyFn[]]> = Fns extends [ZeroFn<any>, ...AnyFn[]]\n ? never\n : Fns extends [AsyncOrSync<infer A, any>, ...AnyFn[]]\n ? A\n : never;\n\ntype Resolve<T> = T extends infer R ? R : never;\n\ntype PipeAsyncSideEffectStrictUnary<Fns extends [AnyFn, ...AnyFn[]]> = {\n (input: PipeInputStrict<Fns>): Promise<Resolve<MaybeSideEffect<PipeValueOutputStrict<Fns>, EffectsOf<Fns>>>>;\n <EIn>(\n input: PipeInputStrict<Fns> | SideEffect<EIn>\n ): Promise<Resolve<MaybeSideEffect<PipeValueOutputStrict<Fns>, EffectsOf<Fns> | EIn>>>;\n};\n\ntype PipeAsyncSideEffectStrict<Fns extends [AnyFn, ...AnyFn[]]> = Fns extends [ZeroFn<any>, ...AnyFn[]]\n ? () => Promise<Resolve<MaybeSideEffect<PipeValueOutputStrict<Fns>, EffectsOf<Fns>>>>\n : PipeAsyncSideEffectStrictUnary<Fns>;\n\nfunction pipeAsyncSideEffectStrict<R>(ab: ZeroFn<R>): PipeAsyncSideEffectStrict<[ZeroFn<R>]>;\nfunction pipeAsyncSideEffectStrict<B, R>(\n ab: ZeroFn<B>,\n bc: AsyncOrSync<NonSideEffect<Awaited<B>>, R>\n): PipeAsyncSideEffectStrict<[ZeroFn<B>, AsyncOrSync<NonSideEffect<Awaited<B>>, R>]>;\nfunction pipeAsyncSideEffectStrict<B, C, R>(\n ab: ZeroFn<B>,\n bc: AsyncOrSync<NonSideEffect<Awaited<B>>, C>,\n cd: AsyncOrSync<NonSideEffect<Awaited<C>>, R>\n): PipeAsyncSideEffectStrict<[ZeroFn<B>, AsyncOrSync<NonSideEffect<Awaited<B>>, C>, AsyncOrSync<NonSideEffect<Awaited<C>>, R>]>;\nfunction pipeAsyncSideEffectStrict<B, C, D, R>(\n ab: ZeroFn<B>,\n bc: AsyncOrSync<NonSideEffect<Awaited<B>>, C>,\n cd: AsyncOrSync<NonSideEffect<Awaited<C>>, D>,\n de: AsyncOrSync<NonSideEffect<Awaited<D>>, R>\n): PipeAsyncSideEffectStrict<[\n ZeroFn<B>,\n AsyncOrSync<NonSideEffect<Awaited<B>>, C>,\n AsyncOrSync<NonSideEffect<Awaited<C>>, D>,\n AsyncOrSync<NonSideEffect<Awaited<D>>, R>\n]>;\nfunction pipeAsyncSideEffectStrict<B, C, D, E, R>(\n ab: ZeroFn<B>,\n bc: AsyncOrSync<NonSideEffect<Awaited<B>>, C>,\n cd: AsyncOrSync<NonSideEffect<Awaited<C>>, D>,\n de: AsyncOrSync<NonSideEffect<Awaited<D>>, E>,\n ef: AsyncOrSync<NonSideEffect<Awaited<E>>, R>\n): PipeAsyncSideEffectStrict<[\n ZeroFn<B>,\n AsyncOrSync<NonSideEffect<Awaited<B>>, C>,\n AsyncOrSync<NonSideEffect<Awaited<C>>, D>,\n AsyncOrSync<NonSideEffect<Awaited<D>>, E>,\n AsyncOrSync<NonSideEffect<Awaited<E>>, R>\n]>;\nfunction pipeAsyncSideEffectStrict<B, C, D, E, F, R>(\n ab: ZeroFn<B>,\n bc: AsyncOrSync<NonSideEffect<Awaited<B>>, C>,\n cd: AsyncOrSync<NonSideEffect<Awaited<C>>, D>,\n de: AsyncOrSync<NonSideEffect<Awaited<D>>, E>,\n ef: AsyncOrSync<NonSideEffect<Awaited<E>>, F>,\n fg: AsyncOrSync<NonSideEffect<Awaited<F>>, R>\n): PipeAsyncSideEffectStrict<[\n ZeroFn<B>,\n AsyncOrSync<NonSideEffect<Awaited<B>>, C>,\n AsyncOrSync<NonSideEffect<Awaited<C>>, D>,\n AsyncOrSync<NonSideEffect<Awaited<D>>, E>,\n AsyncOrSync<NonSideEffect<Awaited<E>>, F>,\n AsyncOrSync<NonSideEffect<Awaited<F>>, R>\n]>;\nfunction pipeAsyncSideEffectStrict<A, R>(\n ab: AsyncOrSync<A, R>\n): PipeAsyncSideEffectStrict<[AsyncOrSync<A, R>]>;\nfunction pipeAsyncSideEffectStrict<A, B, R>(\n ab: AsyncOrSync<A, B>,\n bc: AsyncOrSync<NonSideEffect<Awaited<B>>, R>\n): PipeAsyncSideEffectStrict<[AsyncOrSync<A, B>, AsyncOrSync<NonSideEffect<Awaited<B>>, R>]>;\nfunction pipeAsyncSideEffectStrict<A, B, C, R>(\n ab: AsyncOrSync<A, B>,\n bc: AsyncOrSync<NonSideEffect<Awaited<B>>, C>,\n cd: AsyncOrSync<NonSideEffect<Awaited<C>>, R>\n): PipeAsyncSideEffectStrict<[\n AsyncOrSync<A, B>,\n AsyncOrSync<NonSideEffect<Awaited<B>>, C>,\n AsyncOrSync<NonSideEffect<Awaited<C>>, R>\n]>;\nfunction pipeAsyncSideEffectStrict<A, B, C, D, R>(\n ab: AsyncOrSync<A, B>,\n bc: AsyncOrSync<NonSideEffect<Awaited<B>>, C>,\n cd: AsyncOrSync<NonSideEffect<Awaited<C>>, D>,\n de: AsyncOrSync<NonSideEffect<Awaited<D>>, R>\n): PipeAsyncSideEffectStrict<[\n AsyncOrSync<A, B>,\n AsyncOrSync<NonSideEffect<Awaited<B>>, C>,\n AsyncOrSync<NonSideEffect<Awaited<C>>, D>,\n AsyncOrSync<NonSideEffect<Awaited<D>>, R>\n]>;\nfunction pipeAsyncSideEffectStrict<A, B, C, D, E, R>(\n ab: AsyncOrSync<A, B>,\n bc: AsyncOrSync<NonSideEffect<Awaited<B>>, C>,\n cd: AsyncOrSync<NonSideEffect<Awaited<C>>, D>,\n de: AsyncOrSync<NonSideEffect<Awaited<D>>, E>,\n ef: AsyncOrSync<NonSideEffect<Awaited<E>>, R>\n): PipeAsyncSideEffectStrict<[\n AsyncOrSync<A, B>,\n AsyncOrSync<NonSideEffect<Awaited<B>>, C>,\n AsyncOrSync<NonSideEffect<Awaited<C>>, D>,\n AsyncOrSync<NonSideEffect<Awaited<D>>, E>,\n AsyncOrSync<NonSideEffect<Awaited<E>>, R>\n]>;\nfunction pipeAsyncSideEffectStrict<A, B, C, D, E, F, R>(\n ab: AsyncOrSync<A, B>,\n bc: AsyncOrSync<NonSideEffect<Awaited<B>>, C>,\n cd: AsyncOrSync<NonSideEffect<Awaited<C>>, D>,\n de: AsyncOrSync<NonSideEffect<Awaited<D>>, E>,\n ef: AsyncOrSync<NonSideEffect<Awaited<E>>, F>,\n fg: AsyncOrSync<NonSideEffect<Awaited<F>>, R>\n): PipeAsyncSideEffectStrict<[\n AsyncOrSync<A, B>,\n AsyncOrSync<NonSideEffect<Awaited<B>>, C>,\n AsyncOrSync<NonSideEffect<Awaited<C>>, D>,\n AsyncOrSync<NonSideEffect<Awaited<D>>, E>,\n AsyncOrSync<NonSideEffect<Awaited<E>>, F>,\n AsyncOrSync<NonSideEffect<Awaited<F>>, R>\n]>;\n\nfunction pipeAsyncSideEffectStrict<Fns extends [AnyFn, ...AnyFn[]]>(...funcs: Fns): PipeAsyncSideEffectStrict<Fns>;\nfunction pipeAsyncSideEffectStrict(...funcs: Array<AsyncOrSync<any, any>>) {\n return async (value?: any) => {\n let acc = value;\n for (const fn of funcs) {\n if (isSideEffect(acc)) {\n return acc;\n }\n acc = await fn(acc);\n }\n return acc;\n };\n}\n\nexport default pipeAsyncSideEffectStrict;\n"],"names":["pipeAsyncSideEffectStrict","funcs","value","acc","fn","isSideEffect"],"mappings":";AA4JA,SAASA,KAA6BC,GAAqC;AACzE,SAAO,OAAOC,MAAgB;AAC5B,QAAIC,IAAMD;AACV,eAAWE,KAAMH,GAAO;AACtB,UAAII,EAAaF,CAAG;AAClB,eAAOA;AAET,MAAAA,IAAM,MAAMC,EAAGD,CAAG;AAAA,IACpB;AACA,WAAOA;AAAA,EACT;AACF;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"from.d.ts","sourceRoot":"","sources":["../../../src/implement/composition/from.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,iBAAS,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IACf,CAAC,EAAE,QAAQ,CAAC,OACrB;AAED,eAAe,IAAI,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"from.mjs","sources":["../../../src/implement/composition/from.ts"],"sourcesContent":["/**\n * from - 입력을 무시하고 고정 값을 반환\n */\nfunction from<T>(value: T) {\n return <I>(_input: I) => value;\n}\n\nexport default from;\n"],"names":["from","value","_input"],"mappings":"AAGA,SAASA,EAAQC,GAAU;AACzB,SAAO,CAAIC,MAAcD;AAC3B;"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { default as pipe } from './pipe';
|
|
2
2
|
export { default as pipeSideEffect } from './pipeSideEffect';
|
|
3
|
+
export { default as pipeSideEffectStrict } from './pipeSideEffectStrict';
|
|
3
4
|
export { default as compose } from './compose';
|
|
4
5
|
export { default as curry } from './curry';
|
|
5
6
|
export { default as partial } from './partial';
|
|
@@ -7,6 +8,7 @@ export { default as flip } from './flip';
|
|
|
7
8
|
export { default as complement } from './complement';
|
|
8
9
|
export { default as identity } from './identity';
|
|
9
10
|
export { default as constant } from './constant';
|
|
11
|
+
export { default as from } from './from';
|
|
10
12
|
export { default as tap } from './tap';
|
|
11
13
|
export { default as once } from './once';
|
|
12
14
|
export { default as memoize } from './memoize';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/implement/composition/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,UAAU,IAAI,eAAe,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/implement/composition/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,UAAU,IAAI,eAAe,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
type UnaryFn<A, R> = (a: A) => R;
|
|
2
|
+
type ZeroFn<R> = () => R;
|
|
2
3
|
type PipeInput<Fns extends UnaryFn<any, any>[]> = Fns extends [UnaryFn<infer A, any>, ...UnaryFn<any, any>[]] ? A : never;
|
|
3
4
|
type PipeOutput<Fns extends UnaryFn<any, any>[]> = Fns extends [UnaryFn<any, infer R>] ? R : Fns extends [UnaryFn<any, infer R>, ...infer Rest] ? Rest extends [UnaryFn<R, any>, ...UnaryFn<any, any>[]] ? PipeOutput<Rest> : never : never;
|
|
4
5
|
type Pipe<Fns extends UnaryFn<any, any>[]> = (input: PipeInput<Fns>) => PipeOutput<Fns>;
|
|
6
|
+
declare function pipe<R>(ab: ZeroFn<R>): () => R;
|
|
7
|
+
declare function pipe<B, R>(ab: ZeroFn<B>, bc: UnaryFn<B, R>): () => R;
|
|
8
|
+
declare function pipe<B, C, R>(ab: ZeroFn<B>, bc: UnaryFn<B, C>, cd: UnaryFn<C, R>): () => R;
|
|
9
|
+
declare function pipe<B, C, D, R>(ab: ZeroFn<B>, bc: UnaryFn<B, C>, cd: UnaryFn<C, D>, de: UnaryFn<D, R>): () => R;
|
|
10
|
+
declare function pipe<B, C, D, E, R>(ab: ZeroFn<B>, bc: UnaryFn<B, C>, cd: UnaryFn<C, D>, de: UnaryFn<D, E>, ef: UnaryFn<E, R>): () => R;
|
|
11
|
+
declare function pipe<B, C, D, E, F, R>(ab: ZeroFn<B>, bc: UnaryFn<B, C>, cd: UnaryFn<C, D>, de: UnaryFn<D, E>, ef: UnaryFn<E, F>, fg: UnaryFn<F, R>): () => R;
|
|
5
12
|
declare function pipe<A, R>(ab: UnaryFn<A, R>): (a: A) => R;
|
|
6
13
|
declare function pipe<A, B, R>(ab: UnaryFn<A, B>, bc: UnaryFn<B, R>): (a: A) => R;
|
|
7
14
|
declare function pipe<A, B, C, R>(ab: UnaryFn<A, B>, bc: UnaryFn<B, C>, cd: UnaryFn<C, R>): (a: A) => R;
|
|
8
15
|
declare function pipe<A, B, C, D, R>(ab: UnaryFn<A, B>, bc: UnaryFn<B, C>, cd: UnaryFn<C, D>, de: UnaryFn<D, R>): (a: A) => R;
|
|
9
16
|
declare function pipe<A, B, C, D, E, R>(ab: UnaryFn<A, B>, bc: UnaryFn<B, C>, cd: UnaryFn<C, D>, de: UnaryFn<D, E>, ef: UnaryFn<E, R>): (a: A) => R;
|
|
17
|
+
declare function pipe<A, B, C, D, E, F, R>(ab: UnaryFn<A, B>, bc: UnaryFn<B, C>, cd: UnaryFn<C, D>, de: UnaryFn<D, E>, ef: UnaryFn<E, F>, fg: UnaryFn<F, R>): (a: A) => R;
|
|
10
18
|
declare function pipe<Fns extends [UnaryFn<any, any>, ...UnaryFn<any, any>[]]>(...funcs: Fns): Pipe<Fns>;
|
|
11
19
|
declare function pipe(...funcs: Array<UnaryFn<any, any>>): (input: any) => any;
|
|
12
20
|
export default pipe;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipe.d.ts","sourceRoot":"","sources":["../../../src/implement/composition/pipe.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pipe.d.ts","sourceRoot":"","sources":["../../../src/implement/composition/pipe.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipe.mjs","sources":["../../../src/implement/composition/pipe.ts"],"sourcesContent":["type UnaryFn<A, R> = (a: A) => R;\ntype PipeInput<Fns extends UnaryFn<any, any>[]> = Fns extends [UnaryFn<infer A, any>, ...UnaryFn<any, any>[]]\n ? A\n : never;\ntype PipeOutput<Fns extends UnaryFn<any, any>[]> = Fns extends [UnaryFn<any, infer R>]\n ? R\n : Fns extends [UnaryFn<any, infer R>, ...infer Rest]\n ? Rest extends [UnaryFn<R, any>, ...UnaryFn<any, any>[]]\n ? PipeOutput<Rest>\n : never\n : never;\ntype Pipe<Fns extends UnaryFn<any, any>[]> = (input: PipeInput<Fns>) => PipeOutput<Fns>;\n\nfunction pipe<A, R>(ab: UnaryFn<A, R>): (a: A) => R;\nfunction pipe<A, B, R>(ab: UnaryFn<A, B>, bc: UnaryFn<B, R>): (a: A) => R;\nfunction pipe<A, B, C, R>(ab: UnaryFn<A, B>, bc: UnaryFn<B, C>, cd: UnaryFn<C, R>): (a: A) => R;\nfunction pipe<A, B, C, D, R>(\n ab: UnaryFn<A, B>,\n bc: UnaryFn<B, C>,\n cd: UnaryFn<C, D>,\n de: UnaryFn<D, R>\n): (a: A) => R;\nfunction pipe<A, B, C, D, E, R>(\n ab: UnaryFn<A, B>,\n bc: UnaryFn<B, C>,\n cd: UnaryFn<C, D>,\n de: UnaryFn<D, E>,\n ef: UnaryFn<E, R>\n): (a: A) => R;\n\nfunction pipe<Fns extends [UnaryFn<any, any>, ...UnaryFn<any, any>[]]>(...funcs: Fns): Pipe<Fns>;\nfunction pipe(...funcs: Array<UnaryFn<any, any>>): (input: any) => any;\nfunction pipe(...funcs: Array<(input: any) => any>) {\n return (init: any) => {\n return funcs.reduce((acc, fn) => fn(acc), init);\n };\n}\n\nexport default pipe;\n"],"names":["pipe","funcs","init","acc","fn"],"mappings":"
|
|
1
|
+
{"version":3,"file":"pipe.mjs","sources":["../../../src/implement/composition/pipe.ts"],"sourcesContent":["type UnaryFn<A, R> = (a: A) => R;\ntype ZeroFn<R> = () => R;\ntype PipeInput<Fns extends UnaryFn<any, any>[]> = Fns extends [UnaryFn<infer A, any>, ...UnaryFn<any, any>[]]\n ? A\n : never;\ntype PipeOutput<Fns extends UnaryFn<any, any>[]> = Fns extends [UnaryFn<any, infer R>]\n ? R\n : Fns extends [UnaryFn<any, infer R>, ...infer Rest]\n ? Rest extends [UnaryFn<R, any>, ...UnaryFn<any, any>[]]\n ? PipeOutput<Rest>\n : never\n : never;\ntype Pipe<Fns extends UnaryFn<any, any>[]> = (input: PipeInput<Fns>) => PipeOutput<Fns>;\n\nfunction pipe<R>(ab: ZeroFn<R>): () => R;\nfunction pipe<B, R>(ab: ZeroFn<B>, bc: UnaryFn<B, R>): () => R;\nfunction pipe<B, C, R>(ab: ZeroFn<B>, bc: UnaryFn<B, C>, cd: UnaryFn<C, R>): () => R;\nfunction pipe<B, C, D, R>(ab: ZeroFn<B>, bc: UnaryFn<B, C>, cd: UnaryFn<C, D>, de: UnaryFn<D, R>): () => R;\nfunction pipe<B, C, D, E, R>(\n ab: ZeroFn<B>,\n bc: UnaryFn<B, C>,\n cd: UnaryFn<C, D>,\n de: UnaryFn<D, E>,\n ef: UnaryFn<E, R>\n): () => R;\nfunction pipe<B, C, D, E, F, R>(\n ab: ZeroFn<B>,\n bc: UnaryFn<B, C>,\n cd: UnaryFn<C, D>,\n de: UnaryFn<D, E>,\n ef: UnaryFn<E, F>,\n fg: UnaryFn<F, R>\n): () => R;\nfunction pipe<A, R>(ab: UnaryFn<A, R>): (a: A) => R;\nfunction pipe<A, B, R>(ab: UnaryFn<A, B>, bc: UnaryFn<B, R>): (a: A) => R;\nfunction pipe<A, B, C, R>(ab: UnaryFn<A, B>, bc: UnaryFn<B, C>, cd: UnaryFn<C, R>): (a: A) => R;\nfunction pipe<A, B, C, D, R>(\n ab: UnaryFn<A, B>,\n bc: UnaryFn<B, C>,\n cd: UnaryFn<C, D>,\n de: UnaryFn<D, R>\n): (a: A) => R;\nfunction pipe<A, B, C, D, E, R>(\n ab: UnaryFn<A, B>,\n bc: UnaryFn<B, C>,\n cd: UnaryFn<C, D>,\n de: UnaryFn<D, E>,\n ef: UnaryFn<E, R>\n): (a: A) => R;\nfunction pipe<A, B, C, D, E, F, R>(\n ab: UnaryFn<A, B>,\n bc: UnaryFn<B, C>,\n cd: UnaryFn<C, D>,\n de: UnaryFn<D, E>,\n ef: UnaryFn<E, F>,\n fg: UnaryFn<F, R>\n): (a: A) => R;\n\nfunction pipe<Fns extends [UnaryFn<any, any>, ...UnaryFn<any, any>[]]>(...funcs: Fns): Pipe<Fns>;\nfunction pipe(...funcs: Array<UnaryFn<any, any>>): (input: any) => any;\nfunction pipe(...funcs: Array<(input: any) => any>) {\n return (init: any) => {\n return funcs.reduce((acc, fn) => fn(acc), init);\n };\n}\n\nexport default pipe;\n"],"names":["pipe","funcs","init","acc","fn"],"mappings":"AA4DA,SAASA,KAAQC,GAAmC;AAClD,SAAO,CAACC,MACCD,EAAM,OAAO,CAACE,GAAKC,MAAOA,EAAGD,CAAG,GAAGD,CAAI;AAElD;"}
|
|
@@ -1,20 +1,84 @@
|
|
|
1
1
|
import { default as SideEffect } from './sideEffect';
|
|
2
2
|
type Equal<A, B> = (<T>() => T extends A ? 1 : 2) extends (<T>() => T extends B ? 1 : 2) ? true : false;
|
|
3
3
|
type Expect<T extends true> = T;
|
|
4
|
+
type EffectUnion<T> = Extract<T, SideEffect<any>> extends SideEffect<infer E> ? E : never;
|
|
5
|
+
type ValueUnion<T> = Exclude<T, SideEffect<any>>;
|
|
4
6
|
export declare const sideEffectInput: SideEffect<number>;
|
|
5
7
|
export declare const purePipe: (a: number) => string;
|
|
6
8
|
type PurePipeExpected = (input: number) => string;
|
|
7
9
|
export type PipePureIsStrict = Expect<Equal<typeof purePipe, PurePipeExpected>>;
|
|
10
|
+
export declare const purePipeSix: (a: number) => string;
|
|
11
|
+
type PurePipeSixExpected = (input: number) => string;
|
|
12
|
+
export type PipePureSixIsStrict = Expect<Equal<typeof purePipeSix, PurePipeSixExpected>>;
|
|
8
13
|
export declare const pipeWithSideEffectInput: (a: number | SideEffect<any>) => string | SideEffect<any>;
|
|
9
14
|
export declare const pipeWithSideEffectValue: string | SideEffect<any>;
|
|
10
15
|
type PipeExpected = (input: number | SideEffect<any>) => string | SideEffect<any>;
|
|
11
16
|
export type PipeAcceptsSideEffectInput = Expect<Equal<typeof pipeWithSideEffectInput, PipeExpected>>;
|
|
17
|
+
export declare const pipeSideEffectSix: (a: number | SideEffect<any>) => string | SideEffect<any>;
|
|
18
|
+
type PipeSideEffectSixExpected = (input: number | SideEffect<any>) => string | SideEffect<any>;
|
|
19
|
+
export type PipeSideEffectSixIsStrict = Expect<Equal<typeof pipeSideEffectSix, PipeSideEffectSixExpected>>;
|
|
12
20
|
export declare const purePipeAsync: (a: number) => Promise<string>;
|
|
13
21
|
type PurePipeAsyncExpected = (input: number) => Promise<string>;
|
|
14
22
|
export type PipeAsyncPureIsStrict = Expect<Equal<typeof purePipeAsync, PurePipeAsyncExpected>>;
|
|
23
|
+
export declare const purePipeAsyncSix: (a: number) => Promise<string>;
|
|
24
|
+
type PurePipeAsyncSixExpected = (input: number) => Promise<string>;
|
|
25
|
+
export type PipeAsyncPureSixIsStrict = Expect<Equal<typeof purePipeAsyncSix, PurePipeAsyncSixExpected>>;
|
|
15
26
|
export declare const pipeAsyncWithSideEffectInput: (a: number | SideEffect<any>) => Promise<string | SideEffect<any>>;
|
|
16
27
|
export declare const pipeAsyncWithSideEffectValue: Promise<string | SideEffect<any>>;
|
|
17
28
|
type PipeAsyncExpected = (input: number | SideEffect<any>) => Promise<string | SideEffect<any>>;
|
|
18
29
|
export type PipeAsyncAcceptsSideEffectInput = Expect<Equal<typeof pipeAsyncWithSideEffectInput, PipeAsyncExpected>>;
|
|
30
|
+
export declare const pipeAsyncSideEffectSix: (a: number | SideEffect<any>) => Promise<string | SideEffect<any>>;
|
|
31
|
+
type PipeAsyncSideEffectSixExpected = (input: number | SideEffect<any>) => Promise<string | SideEffect<any>>;
|
|
32
|
+
export type PipeAsyncSideEffectSixIsStrict = Expect<Equal<typeof pipeAsyncSideEffectSix, PipeAsyncSideEffectSixExpected>>;
|
|
33
|
+
export declare const strictPipeSideEffect: {
|
|
34
|
+
(input: number): number | SideEffect<0 | "LOW">;
|
|
35
|
+
<EIn>(input: number | SideEffect<EIn>): number | SideEffect<0 | "LOW" | EIn>;
|
|
36
|
+
};
|
|
37
|
+
export declare const strictPipeSideEffectResult: number | SideEffect<0 | "LOW">;
|
|
38
|
+
type StrictSideEffectEffects = EffectUnion<typeof strictPipeSideEffectResult>;
|
|
39
|
+
type StrictSideEffectEffectsExpected = 'LOW' | 0;
|
|
40
|
+
export type PipeSideEffectStrictEffects = Expect<Equal<StrictSideEffectEffects, StrictSideEffectEffectsExpected>>;
|
|
41
|
+
type StrictSideEffectValue = ValueUnion<typeof strictPipeSideEffectResult>;
|
|
42
|
+
type StrictSideEffectValueExpected = number;
|
|
43
|
+
export type PipeSideEffectStrictValue = Expect<Equal<StrictSideEffectValue, StrictSideEffectValueExpected>>;
|
|
44
|
+
export declare const strictPipeSideEffectInput: number | SideEffect<0 | "LOW" | "INPUT">;
|
|
45
|
+
type StrictSideEffectInputEffects = EffectUnion<typeof strictPipeSideEffectInput>;
|
|
46
|
+
type StrictSideEffectInputEffectsExpected = 'LOW' | 0 | 'INPUT';
|
|
47
|
+
export type PipeSideEffectStrictInputEffects = Expect<Equal<StrictSideEffectInputEffects, StrictSideEffectInputEffectsExpected>>;
|
|
48
|
+
export declare const strictPipeSideEffectSix: {
|
|
49
|
+
(input: number): number | SideEffect<0 | "LOW" | "SMALL">;
|
|
50
|
+
<EIn>(input: number | SideEffect<EIn>): number | SideEffect<0 | "LOW" | "SMALL" | EIn>;
|
|
51
|
+
};
|
|
52
|
+
export declare const strictPipeSideEffectSixResult: number | SideEffect<0 | "LOW" | "SMALL">;
|
|
53
|
+
type StrictSixEffects = EffectUnion<typeof strictPipeSideEffectSixResult>;
|
|
54
|
+
type StrictSixEffectsExpected = 'LOW' | 'SMALL' | 0;
|
|
55
|
+
export type PipeSideEffectStrictSixEffects = Expect<Equal<StrictSixEffects, StrictSixEffectsExpected>>;
|
|
56
|
+
type StrictSixValue = ValueUnion<typeof strictPipeSideEffectSixResult>;
|
|
57
|
+
type StrictSixValueExpected = number;
|
|
58
|
+
export type PipeSideEffectStrictSixValue = Expect<Equal<StrictSixValue, StrictSixValueExpected>>;
|
|
59
|
+
export declare const strictPipeAsyncSideEffect: {
|
|
60
|
+
(input: number): Promise<number | SideEffect<0 | "LOW">>;
|
|
61
|
+
<EIn>(input: number | SideEffect<EIn>): Promise<number | SideEffect<0 | "LOW" | EIn>>;
|
|
62
|
+
};
|
|
63
|
+
export declare const strictPipeAsyncSideEffectResult: Promise<number | SideEffect<0 | "LOW">>;
|
|
64
|
+
type StrictPipeAsyncResolved = Awaited<typeof strictPipeAsyncSideEffectResult>;
|
|
65
|
+
type StrictPipeAsyncEffects = EffectUnion<StrictPipeAsyncResolved>;
|
|
66
|
+
type StrictPipeAsyncEffectsExpected = 'LOW' | 0;
|
|
67
|
+
export type PipeAsyncSideEffectStrictEffects = Expect<Equal<StrictPipeAsyncEffects, StrictPipeAsyncEffectsExpected>>;
|
|
68
|
+
type StrictPipeAsyncValue = ValueUnion<StrictPipeAsyncResolved>;
|
|
69
|
+
type StrictPipeAsyncValueExpected = number;
|
|
70
|
+
export type PipeAsyncSideEffectStrictValue = Expect<Equal<StrictPipeAsyncValue, StrictPipeAsyncValueExpected>>;
|
|
71
|
+
export declare const strictPipeAsyncSideEffectSix: {
|
|
72
|
+
(input: number): Promise<number | SideEffect<0 | "LOW" | "SMALL">>;
|
|
73
|
+
<EIn>(input: number | SideEffect<EIn>): Promise<number | SideEffect<0 | "LOW" | "SMALL" | EIn>>;
|
|
74
|
+
};
|
|
75
|
+
export declare const strictPipeAsyncSideEffectSixResult: Promise<number | SideEffect<0 | "LOW" | "SMALL">>;
|
|
76
|
+
type StrictAsyncSixResolved = Awaited<typeof strictPipeAsyncSideEffectSixResult>;
|
|
77
|
+
type StrictAsyncSixEffects = EffectUnion<StrictAsyncSixResolved>;
|
|
78
|
+
type StrictAsyncSixEffectsExpected = 'LOW' | 'SMALL' | 0;
|
|
79
|
+
export type PipeAsyncSideEffectStrictSixEffects = Expect<Equal<StrictAsyncSixEffects, StrictAsyncSixEffectsExpected>>;
|
|
80
|
+
type StrictAsyncSixValue = ValueUnion<StrictAsyncSixResolved>;
|
|
81
|
+
type StrictAsyncSixValueExpected = number;
|
|
82
|
+
export type PipeAsyncSideEffectStrictSixValue = Expect<Equal<StrictAsyncSixValue, StrictAsyncSixValueExpected>>;
|
|
19
83
|
export {};
|
|
20
84
|
//# sourceMappingURL=pipe.type-test.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipe.type-test.d.ts","sourceRoot":"","sources":["../../../src/implement/composition/pipe.type-test.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"pipe.type-test.d.ts","sourceRoot":"","sources":["../../../src/implement/composition/pipe.type-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,15 +2,23 @@ import { default as SideEffect } from './sideEffect';
|
|
|
2
2
|
type MaybeSideEffect<T> = T | SideEffect<any>;
|
|
3
3
|
type NonSideEffect<T> = Exclude<T, SideEffect<any>>;
|
|
4
4
|
type UnaryFn<A, R> = (a: A) => MaybeSideEffect<R>;
|
|
5
|
+
type ZeroFn<R> = () => MaybeSideEffect<R>;
|
|
5
6
|
type PipeInput<Fns extends UnaryFn<any, any>[]> = Fns extends [UnaryFn<infer A, any>, ...UnaryFn<any, any>[]] ? A : never;
|
|
6
7
|
type PipeOutput<Fns extends UnaryFn<any, any>[]> = Fns extends [UnaryFn<any, infer R>] ? MaybeSideEffect<R> : Fns extends [UnaryFn<any, infer R>, ...infer Rest] ? Rest extends [UnaryFn<NonSideEffect<R>, any>, ...UnaryFn<any, any>[]] ? PipeOutput<Rest> : never : never;
|
|
7
8
|
type Resolve<T> = T extends infer R ? R : never;
|
|
8
9
|
type PipeSideEffect<Fns extends UnaryFn<any, any>[]> = (input: PipeInput<Fns> | SideEffect<any>) => Resolve<PipeOutput<Fns>>;
|
|
10
|
+
declare function pipeSideEffect<R>(ab: ZeroFn<R>): () => MaybeSideEffect<R>;
|
|
11
|
+
declare function pipeSideEffect<B, R>(ab: ZeroFn<B>, bc: UnaryFn<B, R>): () => MaybeSideEffect<R>;
|
|
12
|
+
declare function pipeSideEffect<B, C, R>(ab: ZeroFn<B>, bc: UnaryFn<B, C>, cd: UnaryFn<C, R>): () => MaybeSideEffect<R>;
|
|
13
|
+
declare function pipeSideEffect<B, C, D, R>(ab: ZeroFn<B>, bc: UnaryFn<B, C>, cd: UnaryFn<C, D>, de: UnaryFn<D, R>): () => MaybeSideEffect<R>;
|
|
14
|
+
declare function pipeSideEffect<B, C, D, E, R>(ab: ZeroFn<B>, bc: UnaryFn<B, C>, cd: UnaryFn<C, D>, de: UnaryFn<D, E>, ef: UnaryFn<E, R>): () => MaybeSideEffect<R>;
|
|
15
|
+
declare function pipeSideEffect<B, C, D, E, F, R>(ab: ZeroFn<B>, bc: UnaryFn<B, C>, cd: UnaryFn<C, D>, de: UnaryFn<D, E>, ef: UnaryFn<E, F>, fg: UnaryFn<F, R>): () => MaybeSideEffect<R>;
|
|
9
16
|
declare function pipeSideEffect<A, R>(ab: UnaryFn<A, R>): (a: A | SideEffect<any>) => MaybeSideEffect<R>;
|
|
10
17
|
declare function pipeSideEffect<A, B, R>(ab: UnaryFn<A, B>, bc: UnaryFn<B, R>): (a: A | SideEffect<any>) => MaybeSideEffect<R>;
|
|
11
18
|
declare function pipeSideEffect<A, B, C, R>(ab: UnaryFn<A, B>, bc: UnaryFn<B, C>, cd: UnaryFn<C, R>): (a: A | SideEffect<any>) => MaybeSideEffect<R>;
|
|
12
19
|
declare function pipeSideEffect<A, B, C, D, R>(ab: UnaryFn<A, B>, bc: UnaryFn<B, C>, cd: UnaryFn<C, D>, de: UnaryFn<D, R>): (a: A | SideEffect<any>) => MaybeSideEffect<R>;
|
|
13
20
|
declare function pipeSideEffect<A, B, C, D, E, R>(ab: UnaryFn<A, B>, bc: UnaryFn<B, C>, cd: UnaryFn<C, D>, de: UnaryFn<D, E>, ef: UnaryFn<E, R>): (a: A | SideEffect<any>) => MaybeSideEffect<R>;
|
|
21
|
+
declare function pipeSideEffect<A, B, C, D, E, F, R>(ab: UnaryFn<A, B>, bc: UnaryFn<B, C>, cd: UnaryFn<C, D>, de: UnaryFn<D, E>, ef: UnaryFn<E, F>, fg: UnaryFn<F, R>): (a: A | SideEffect<any>) => MaybeSideEffect<R>;
|
|
14
22
|
declare function pipeSideEffect<Fns extends [UnaryFn<any, any>, ...UnaryFn<any, any>[]]>(...funcs: Fns): PipeSideEffect<Fns>;
|
|
15
23
|
declare function pipeSideEffect(...funcs: Array<UnaryFn<any, any>>): (input: any) => any;
|
|
16
24
|
export default pipeSideEffect;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeSideEffect.d.ts","sourceRoot":"","sources":["../../../src/implement/composition/pipeSideEffect.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pipeSideEffect.d.ts","sourceRoot":"","sources":["../../../src/implement/composition/pipeSideEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeSideEffect.mjs","sources":["../../../src/implement/composition/pipeSideEffect.ts"],"sourcesContent":["import SideEffect, { isSideEffect } from './sideEffect';\n\ntype MaybeSideEffect<T> = T | SideEffect<any>;\ntype NonSideEffect<T> = Exclude<T, SideEffect<any>>;\ntype UnaryFn<A, R> = (a: A) => MaybeSideEffect<R>;\ntype PipeInput<Fns extends UnaryFn<any, any>[]> = Fns extends [UnaryFn<infer A, any>, ...UnaryFn<any, any>[]]\n ? A\n : never;\ntype PipeOutput<Fns extends UnaryFn<any, any>[]> = Fns extends [UnaryFn<any, infer R>]\n ? MaybeSideEffect<R>\n : Fns extends [UnaryFn<any, infer R>, ...infer Rest]\n ? Rest extends [UnaryFn<NonSideEffect<R>, any>, ...UnaryFn<any, any>[]]\n ? PipeOutput<Rest>\n : never\n : never;\ntype Resolve<T> = T extends infer R ? R : never;\ntype PipeSideEffect<Fns extends UnaryFn<any, any>[]> = (\n input: PipeInput<Fns> | SideEffect<any>\n) => Resolve<PipeOutput<Fns>>;\n\nfunction pipeSideEffect<A, R>(ab: UnaryFn<A, R>): (a: A | SideEffect<any>) => MaybeSideEffect<R>;\nfunction pipeSideEffect<A, B, R>(\n ab: UnaryFn<A, B>,\n bc: UnaryFn<B, R>\n): (a: A | SideEffect<any>) => MaybeSideEffect<R>;\nfunction pipeSideEffect<A, B, C, R>(\n ab: UnaryFn<A, B>,\n bc: UnaryFn<B, C>,\n cd: UnaryFn<C, R>\n): (a: A | SideEffect<any>) => MaybeSideEffect<R>;\nfunction pipeSideEffect<A, B, C, D, R>(\n ab: UnaryFn<A, B>,\n bc: UnaryFn<B, C>,\n cd: UnaryFn<C, D>,\n de: UnaryFn<D, R>\n): (a: A | SideEffect<any>) => MaybeSideEffect<R>;\nfunction pipeSideEffect<A, B, C, D, E, R>(\n ab: UnaryFn<A, B>,\n bc: UnaryFn<B, C>,\n cd: UnaryFn<C, D>,\n de: UnaryFn<D, E>,\n ef: UnaryFn<E, R>\n): (a: A | SideEffect<any>) => MaybeSideEffect<R>;\n\nfunction pipeSideEffect<Fns extends [UnaryFn<any, any>, ...UnaryFn<any, any>[]]>(...funcs: Fns): PipeSideEffect<Fns>;\nfunction pipeSideEffect(...funcs: Array<UnaryFn<any, any>>): (input: any) => any;\nfunction pipeSideEffect(...funcs: Array<(input: any) => any>) {\n return (init: any) => {\n let acc = init;\n for (const fn of funcs) {\n if (isSideEffect(acc)) {\n return acc;\n }\n acc = fn(acc);\n }\n return acc;\n };\n}\n\nexport default pipeSideEffect;\n"],"names":["pipeSideEffect","funcs","init","acc","fn","isSideEffect"],"mappings":";
|
|
1
|
+
{"version":3,"file":"pipeSideEffect.mjs","sources":["../../../src/implement/composition/pipeSideEffect.ts"],"sourcesContent":["import SideEffect, { isSideEffect } from './sideEffect';\n\ntype MaybeSideEffect<T> = T | SideEffect<any>;\ntype NonSideEffect<T> = Exclude<T, SideEffect<any>>;\ntype UnaryFn<A, R> = (a: A) => MaybeSideEffect<R>;\ntype ZeroFn<R> = () => MaybeSideEffect<R>;\ntype PipeInput<Fns extends UnaryFn<any, any>[]> = Fns extends [UnaryFn<infer A, any>, ...UnaryFn<any, any>[]]\n ? A\n : never;\ntype PipeOutput<Fns extends UnaryFn<any, any>[]> = Fns extends [UnaryFn<any, infer R>]\n ? MaybeSideEffect<R>\n : Fns extends [UnaryFn<any, infer R>, ...infer Rest]\n ? Rest extends [UnaryFn<NonSideEffect<R>, any>, ...UnaryFn<any, any>[]]\n ? PipeOutput<Rest>\n : never\n : never;\ntype Resolve<T> = T extends infer R ? R : never;\ntype PipeSideEffect<Fns extends UnaryFn<any, any>[]> = (\n input: PipeInput<Fns> | SideEffect<any>\n) => Resolve<PipeOutput<Fns>>;\n\nfunction pipeSideEffect<R>(ab: ZeroFn<R>): () => MaybeSideEffect<R>;\nfunction pipeSideEffect<B, R>(ab: ZeroFn<B>, bc: UnaryFn<B, R>): () => MaybeSideEffect<R>;\nfunction pipeSideEffect<B, C, R>(ab: ZeroFn<B>, bc: UnaryFn<B, C>, cd: UnaryFn<C, R>): () => MaybeSideEffect<R>;\nfunction pipeSideEffect<B, C, D, R>(\n ab: ZeroFn<B>,\n bc: UnaryFn<B, C>,\n cd: UnaryFn<C, D>,\n de: UnaryFn<D, R>\n): () => MaybeSideEffect<R>;\nfunction pipeSideEffect<B, C, D, E, R>(\n ab: ZeroFn<B>,\n bc: UnaryFn<B, C>,\n cd: UnaryFn<C, D>,\n de: UnaryFn<D, E>,\n ef: UnaryFn<E, R>\n): () => MaybeSideEffect<R>;\nfunction pipeSideEffect<B, C, D, E, F, R>(\n ab: ZeroFn<B>,\n bc: UnaryFn<B, C>,\n cd: UnaryFn<C, D>,\n de: UnaryFn<D, E>,\n ef: UnaryFn<E, F>,\n fg: UnaryFn<F, R>\n): () => MaybeSideEffect<R>;\nfunction pipeSideEffect<A, R>(ab: UnaryFn<A, R>): (a: A | SideEffect<any>) => MaybeSideEffect<R>;\nfunction pipeSideEffect<A, B, R>(\n ab: UnaryFn<A, B>,\n bc: UnaryFn<B, R>\n): (a: A | SideEffect<any>) => MaybeSideEffect<R>;\nfunction pipeSideEffect<A, B, C, R>(\n ab: UnaryFn<A, B>,\n bc: UnaryFn<B, C>,\n cd: UnaryFn<C, R>\n): (a: A | SideEffect<any>) => MaybeSideEffect<R>;\nfunction pipeSideEffect<A, B, C, D, R>(\n ab: UnaryFn<A, B>,\n bc: UnaryFn<B, C>,\n cd: UnaryFn<C, D>,\n de: UnaryFn<D, R>\n): (a: A | SideEffect<any>) => MaybeSideEffect<R>;\nfunction pipeSideEffect<A, B, C, D, E, R>(\n ab: UnaryFn<A, B>,\n bc: UnaryFn<B, C>,\n cd: UnaryFn<C, D>,\n de: UnaryFn<D, E>,\n ef: UnaryFn<E, R>\n): (a: A | SideEffect<any>) => MaybeSideEffect<R>;\nfunction pipeSideEffect<A, B, C, D, E, F, R>(\n ab: UnaryFn<A, B>,\n bc: UnaryFn<B, C>,\n cd: UnaryFn<C, D>,\n de: UnaryFn<D, E>,\n ef: UnaryFn<E, F>,\n fg: UnaryFn<F, R>\n): (a: A | SideEffect<any>) => MaybeSideEffect<R>;\n\nfunction pipeSideEffect<Fns extends [UnaryFn<any, any>, ...UnaryFn<any, any>[]]>(...funcs: Fns): PipeSideEffect<Fns>;\nfunction pipeSideEffect(...funcs: Array<UnaryFn<any, any>>): (input: any) => any;\nfunction pipeSideEffect(...funcs: Array<(input: any) => any>) {\n return (init: any) => {\n let acc = init;\n for (const fn of funcs) {\n if (isSideEffect(acc)) {\n return acc;\n }\n acc = fn(acc);\n }\n return acc;\n };\n}\n\nexport default pipeSideEffect;\n"],"names":["pipeSideEffect","funcs","init","acc","fn","isSideEffect"],"mappings":";AA+EA,SAASA,KAAkBC,GAAmC;AAC5D,SAAO,CAACC,MAAc;AACpB,QAAIC,IAAMD;AACV,eAAWE,KAAMH,GAAO;AACtB,UAAII,EAAaF,CAAG;AAClB,eAAOA;AAET,MAAAA,IAAMC,EAAGD,CAAG;AAAA,IACd;AACA,WAAOA;AAAA,EACT;AACF;"}
|