fp-pack 0.5.0 → 0.6.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 +16 -15
- package/dist/fp-pack.umd.js.map +1 -1
- package/dist/implement/composition/curry.d.ts +5 -5
- package/dist/implement/composition/curry.d.ts.map +1 -1
- package/dist/implement/composition/curry.mjs.map +1 -1
- package/dist/implement/composition/index.d.ts +3 -0
- package/dist/implement/composition/index.d.ts.map +1 -1
- package/dist/implement/composition/pipe.d.ts +3 -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 +7 -1
- package/dist/implement/composition/pipe.type-test.d.ts.map +1 -1
- package/dist/implement/composition/sideEffect.d.ts +1 -1
- package/dist/implement/composition/sideEffect.d.ts.map +1 -1
- package/dist/implement/composition/sideEffect.mjs.map +1 -1
- package/dist/implement/object/assocPath.d.ts +2 -1
- package/dist/implement/object/assocPath.d.ts.map +1 -1
- package/dist/implement/object/assocPath.mjs.map +1 -1
- package/dist/implement/object/dissocPath.d.ts +2 -1
- package/dist/implement/object/dissocPath.d.ts.map +1 -1
- package/dist/implement/object/dissocPath.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/path.d.ts +4 -2
- package/dist/implement/object/path.d.ts.map +1 -1
- package/dist/implement/object/path.mjs.map +1 -1
- package/dist/implement/object/pathKey.d.ts +2 -0
- package/dist/implement/object/pathKey.d.ts.map +1 -0
- package/dist/implement/object/pathOr.d.ts +5 -3
- package/dist/implement/object/pathOr.d.ts.map +1 -1
- package/dist/implement/object/pathOr.mjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/skills/fp-pack/SKILL.md +18 -16
- package/dist/skills/fp-pack.md +18 -16
- package/dist/stream/index.d.ts +1 -0
- package/dist/stream/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/implement/composition/curry.ts +5 -5
- package/src/implement/composition/index.ts +3 -0
- package/src/implement/composition/pipe.ts +4 -0
- package/src/implement/composition/pipe.type-test.ts +17 -1
- package/src/implement/composition/sideEffect.ts +1 -1
- package/src/implement/object/assocPath.ts +2 -2
- package/src/implement/object/dissocPath.ts +2 -2
- package/src/implement/object/index.ts +1 -0
- package/src/implement/object/path.ts +5 -3
- package/src/implement/object/pathKey.ts +1 -0
- package/src/implement/object/pathOr.ts +6 -4
- package/src/index.ts +3 -0
- package/src/stream/index.ts +1 -0
|
@@ -2,22 +2,22 @@
|
|
|
2
2
|
* Curry function with stable TypeScript types.
|
|
3
3
|
* Supports functions with 2-5 parameters and keeps data-last call order.
|
|
4
4
|
*/
|
|
5
|
-
type Curry2<Fn> = Fn extends (a: infer A, b: infer B) => infer R ? {
|
|
5
|
+
export type Curry2<Fn> = Fn extends (a: infer A, b: infer B) => infer R ? {
|
|
6
6
|
(...args: [A]): (b: B) => R;
|
|
7
7
|
(...args: [A, B]): R;
|
|
8
8
|
} : never;
|
|
9
|
-
type Curry3<Fn> = Fn extends (a: infer A, b: infer B, c: infer C) => infer R ? {
|
|
9
|
+
export type Curry3<Fn> = Fn extends (a: infer A, b: infer B, c: infer C) => infer R ? {
|
|
10
10
|
(...args: [A]): (b: B) => (c: C) => R;
|
|
11
11
|
(...args: [A, B]): (c: C) => R;
|
|
12
12
|
(...args: [A, B, C]): R;
|
|
13
13
|
} : never;
|
|
14
|
-
type Curry4<Fn> = Fn extends (a: infer A, b: infer B, c: infer C, d: infer D) => infer R ? {
|
|
14
|
+
export type Curry4<Fn> = Fn extends (a: infer A, b: infer B, c: infer C, d: infer D) => infer R ? {
|
|
15
15
|
(...args: [A]): (b: B) => (c: C) => (d: D) => R;
|
|
16
16
|
(...args: [A, B]): (c: C) => (d: D) => R;
|
|
17
17
|
(...args: [A, B, C]): (d: D) => R;
|
|
18
18
|
(...args: [A, B, C, D]): R;
|
|
19
19
|
} : never;
|
|
20
|
-
type Curry5<Fn> = Fn extends (a: infer A, b: infer B, c: infer C, d: infer D, e: infer E) => infer R ? {
|
|
20
|
+
export type Curry5<Fn> = Fn extends (a: infer A, b: infer B, c: infer C, d: infer D, e: infer E) => infer R ? {
|
|
21
21
|
(...args: [A]): (b: B) => (c: C) => (d: D) => (e: E) => R;
|
|
22
22
|
(...args: [A, B]): (c: C) => (d: D) => (e: E) => R;
|
|
23
23
|
(...args: [A, B, C]): (d: D) => (e: E) => R;
|
|
@@ -26,7 +26,7 @@ type Curry5<Fn> = Fn extends (a: infer A, b: infer B, c: infer C, d: infer D, e:
|
|
|
26
26
|
} : never;
|
|
27
27
|
type CurryVariadic<Fn extends (...args: any[]) => any> = Fn extends (...args: infer P) => infer R ? <T extends any[]>(...args: T) => T extends P ? R : P extends [...T, ...infer Rest] ? CurryVariadic<(...args: Rest) => R> : never : never;
|
|
28
28
|
type CurryByArity<Fn extends (...args: any[]) => any> = Parameters<Fn>['length'] extends 2 ? Curry2<Fn> : Parameters<Fn>['length'] extends 3 ? Curry3<Fn> : Parameters<Fn>['length'] extends 4 ? Curry4<Fn> : Parameters<Fn>['length'] extends 5 ? Curry5<Fn> : CurryVariadic<Fn>;
|
|
29
|
-
type Curried<Fn extends (...args: any[]) => any> = CurryByArity<Fn>;
|
|
29
|
+
export type Curried<Fn extends (...args: any[]) => any> = CurryByArity<Fn>;
|
|
30
30
|
declare function curry<Fn extends (...args: any[]) => any>(fn: Fn): Curried<Fn>;
|
|
31
31
|
export default curry;
|
|
32
32
|
//# sourceMappingURL=curry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"curry.d.ts","sourceRoot":"","sources":["../../../src/implement/composition/curry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,
|
|
1
|
+
{"version":3,"file":"curry.d.ts","sourceRoot":"","sources":["../../../src/implement/composition/curry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"curry.mjs","sources":["../../../src/implement/composition/curry.ts"],"sourcesContent":["/**\n * Curry function with stable TypeScript types.\n * Supports functions with 2-5 parameters and keeps data-last call order.\n */\n\
|
|
1
|
+
{"version":3,"file":"curry.mjs","sources":["../../../src/implement/composition/curry.ts"],"sourcesContent":["/**\n * Curry function with stable TypeScript types.\n * Supports functions with 2-5 parameters and keeps data-last call order.\n */\n\nexport type Curry2<Fn> = Fn extends (a: infer A, b: infer B) => infer R\n ? {\n (...args: [A]): (b: B) => R;\n (...args: [A, B]): R;\n }\n : never;\n\nexport type Curry3<Fn> = Fn extends (a: infer A, b: infer B, c: infer C) => infer R\n ? {\n (...args: [A]): (b: B) => (c: C) => R;\n (...args: [A, B]): (c: C) => R;\n (...args: [A, B, C]): R;\n }\n : never;\n\nexport type Curry4<Fn> = Fn extends (a: infer A, b: infer B, c: infer C, d: infer D) => infer R\n ? {\n (...args: [A]): (b: B) => (c: C) => (d: D) => R;\n (...args: [A, B]): (c: C) => (d: D) => R;\n (...args: [A, B, C]): (d: D) => R;\n (...args: [A, B, C, D]): R;\n }\n : never;\n\nexport type Curry5<Fn> = Fn extends (a: infer A, b: infer B, c: infer C, d: infer D, e: infer E) => infer R\n ? {\n (...args: [A]): (b: B) => (c: C) => (d: D) => (e: E) => R;\n (...args: [A, B]): (c: C) => (d: D) => (e: E) => R;\n (...args: [A, B, C]): (d: D) => (e: E) => R;\n (...args: [A, B, C, D]): (e: E) => R;\n (...args: [A, B, C, D, E]): R;\n }\n : never;\n\ntype CurryVariadic<Fn extends (...args: any[]) => any> = Fn extends (...args: infer P) => infer R\n ? <T extends any[]>(\n ...args: T\n ) => T extends P ? R : P extends [...T, ...infer Rest] ? CurryVariadic<(...args: Rest) => R> : never\n : never;\n\ntype CurryByArity<Fn extends (...args: any[]) => any> = Parameters<Fn>['length'] extends 2\n ? Curry2<Fn>\n : Parameters<Fn>['length'] extends 3\n ? Curry3<Fn>\n : Parameters<Fn>['length'] extends 4\n ? Curry4<Fn>\n : Parameters<Fn>['length'] extends 5\n ? Curry5<Fn>\n : CurryVariadic<Fn>;\n\nexport type Curried<Fn extends (...args: any[]) => any> = CurryByArity<Fn>;\n\nfunction curry<Fn extends (...args: any[]) => any>(fn: Fn): Curried<Fn>;\n\n// Implementation\nfunction curry(fn: (...args: any[]) => any, ...args: any[]): any {\n const curried = (accumulated: any[]) => {\n return accumulated.length >= fn.length\n ? fn(...accumulated)\n : (...nextArgs: any[]) => curried([...accumulated, ...nextArgs]);\n };\n\n return args.length === 0 ? curried([]) : curried(args);\n}\n\nexport default curry;\n"],"names":["curry","fn","args","curried","accumulated","nextArgs"],"mappings":"AA4DA,SAASA,EAAMC,MAAgCC,GAAkB;AAC/D,QAAMC,IAAU,CAACC,MACRA,EAAY,UAAUH,EAAG,SAC5BA,EAAG,GAAGG,CAAW,IACjB,IAAIC,MAAoBF,EAAQ,CAAC,GAAGC,GAAa,GAAGC,CAAQ,CAAC;AAGnE,SAAOH,EAAK,WAAW,IAAIC,EAAQ,EAAE,IAAIA,EAAQD,CAAI;AACvD;"}
|
|
@@ -3,16 +3,19 @@ export { default as pipeSideEffect } from './pipeSideEffect';
|
|
|
3
3
|
export { default as pipeSideEffectStrict } from './pipeSideEffectStrict';
|
|
4
4
|
export { default as compose } from './compose';
|
|
5
5
|
export { default as curry } from './curry';
|
|
6
|
+
export type { Curried, Curry2, Curry3, Curry4, Curry5 } from './curry';
|
|
6
7
|
export { default as partial } from './partial';
|
|
7
8
|
export { default as flip } from './flip';
|
|
8
9
|
export { default as complement } from './complement';
|
|
9
10
|
export { default as identity } from './identity';
|
|
10
11
|
export { default as constant } from './constant';
|
|
11
12
|
export { default as from } from './from';
|
|
13
|
+
export type { FromFn } from './from';
|
|
12
14
|
export { default as tap } from './tap';
|
|
13
15
|
export { default as once } from './once';
|
|
14
16
|
export { default as memoize } from './memoize';
|
|
15
17
|
export { default as SideEffect } from './sideEffect';
|
|
16
18
|
export { SideEffect as SideEffectClass } from './sideEffect';
|
|
17
19
|
export { isSideEffect, matchSideEffect, runPipeResult } from './sideEffect';
|
|
20
|
+
export type { MatchHandlers } from './sideEffect';
|
|
18
21
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -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,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
|
+
{"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,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACvE,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,YAAY,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,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;AAC5E,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import { FromFn } from './from';
|
|
1
2
|
type UnaryFn<A, R> = (a: A) => R;
|
|
2
3
|
type ZeroFn<R> = () => R;
|
|
3
4
|
type PipeInput<Fns extends UnaryFn<any, any>[]> = Fns extends [UnaryFn<infer A, any>, ...UnaryFn<any, any>[]] ? A : never;
|
|
4
5
|
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;
|
|
5
6
|
type Pipe<Fns extends UnaryFn<any, any>[]> = (input: PipeInput<Fns>) => PipeOutput<Fns>;
|
|
7
|
+
type PipeFrom<Fns extends [FromFn<any>, ...UnaryFn<any, any>[]]> = (input?: PipeInput<Fns>) => PipeOutput<Fns>;
|
|
6
8
|
declare function pipe<R>(ab: ZeroFn<R>): () => R;
|
|
7
9
|
declare function pipe<B, R>(ab: ZeroFn<B>, bc: UnaryFn<B, R>): () => R;
|
|
8
10
|
declare function pipe<B, C, R>(ab: ZeroFn<B>, bc: UnaryFn<B, C>, cd: UnaryFn<C, R>): () => R;
|
|
@@ -13,6 +15,7 @@ declare function pipe<B, C, D, E, F, G, R>(ab: ZeroFn<B>, bc: UnaryFn<B, C>, cd:
|
|
|
13
15
|
declare function pipe<B, C, D, E, F, G, H, R>(ab: ZeroFn<B>, bc: UnaryFn<B, C>, cd: UnaryFn<C, D>, de: UnaryFn<D, E>, ef: UnaryFn<E, F>, fg: UnaryFn<F, G>, gh: UnaryFn<G, H>, hi: UnaryFn<H, R>): () => R;
|
|
14
16
|
declare function pipe<B, C, D, E, F, G, H, I, R>(ab: ZeroFn<B>, bc: UnaryFn<B, C>, cd: UnaryFn<C, D>, de: UnaryFn<D, E>, ef: UnaryFn<E, F>, fg: UnaryFn<F, G>, gh: UnaryFn<G, H>, hi: UnaryFn<H, I>, ij: UnaryFn<I, R>): () => R;
|
|
15
17
|
declare function pipe<B, C, D, E, F, G, H, I, J, R>(ab: ZeroFn<B>, bc: UnaryFn<B, C>, cd: UnaryFn<C, D>, de: UnaryFn<D, E>, ef: UnaryFn<E, F>, fg: UnaryFn<F, G>, gh: UnaryFn<G, H>, hi: UnaryFn<H, I>, ij: UnaryFn<I, J>, jk: UnaryFn<J, R>): () => R;
|
|
18
|
+
declare function pipe<Fns extends [FromFn<any>, ...UnaryFn<any, any>[]]>(...funcs: Fns): PipeFrom<Fns>;
|
|
16
19
|
declare function pipe<A, R>(ab: UnaryFn<A, R>): (a: A) => R;
|
|
17
20
|
declare function pipe<A, B, R>(ab: UnaryFn<A, B>, bc: UnaryFn<B, R>): (a: A) => R;
|
|
18
21
|
declare function pipe<A, B, C, R>(ab: UnaryFn<A, B>, bc: UnaryFn<B, C>, cd: UnaryFn<C, R>): (a: A) => R;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipe.d.ts","sourceRoot":"","sources":["../../../src/implement/composition/pipe.ts"],"names":[],"mappings":"AAAA,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACjC,KAAK,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;AACzB,KAAK,SAAS,CAAC,GAAG,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GACzG,CAAC,GACD,KAAK,CAAC;AACV,KAAK,UAAU,CAAC,GAAG,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAClF,CAAC,GACD,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,GAAG,MAAM,IAAI,CAAC,GAChD,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GACpD,UAAU,CAAC,IAAI,CAAC,GAChB,KAAK,GACP,KAAK,CAAC;AACZ,KAAK,IAAI,CAAC,GAAG,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"pipe.d.ts","sourceRoot":"","sources":["../../../src/implement/composition/pipe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACjC,KAAK,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;AACzB,KAAK,SAAS,CAAC,GAAG,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GACzG,CAAC,GACD,KAAK,CAAC;AACV,KAAK,UAAU,CAAC,GAAG,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAClF,CAAC,GACD,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,GAAG,MAAM,IAAI,CAAC,GAChD,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GACpD,UAAU,CAAC,IAAI,CAAC,GAChB,KAAK,GACP,KAAK,CAAC;AACZ,KAAK,IAAI,CAAC,GAAG,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,GAAG,CAAC,CAAC;AACxF,KAAK,QAAQ,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,GAAG,CAAC,CAAC;AAE/G,iBAAS,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;AACzC,iBAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;AAC/D,iBAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;AACrF,iBAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;AAC3G,iBAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACzB,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EACb,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAChB,MAAM,CAAC,CAAC;AACX,iBAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC5B,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EACb,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAChB,MAAM,CAAC,CAAC;AACX,iBAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC/B,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EACb,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAChB,MAAM,CAAC,CAAC;AACX,iBAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAClC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EACb,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAChB,MAAM,CAAC,CAAC;AACX,iBAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACrC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EACb,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAChB,MAAM,CAAC,CAAC;AACX,iBAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACxC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EACb,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAChB,MAAM,CAAC,CAAC;AACX,iBAAS,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC/F,iBAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACpD,iBAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAC1E,iBAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAChG,iBAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACzB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAChB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACf,iBAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC5B,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAChB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACf,iBAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC/B,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAChB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACf,iBAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAClC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAChB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACf,iBAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACrC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAChB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACf,iBAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACxC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAChB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACf,iBAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC3C,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAChB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAEf,iBAAS,IAAI,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACjG,iBAAS,IAAI,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;AAOvE,eAAe,IAAI,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
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<B, C, D, E, F, G, 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, G>,\n gh: UnaryFn<G, R>\n): () => R;\nfunction pipe<B, C, D, E, F, G, H, 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, G>,\n gh: UnaryFn<G, H>,\n hi: UnaryFn<H, R>\n): () => R;\nfunction pipe<B, C, D, E, F, G, H, I, 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, G>,\n gh: UnaryFn<G, H>,\n hi: UnaryFn<H, I>,\n ij: UnaryFn<I, R>\n): () => R;\nfunction pipe<B, C, D, E, F, G, H, I, J, 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, G>,\n gh: UnaryFn<G, H>,\n hi: UnaryFn<H, I>,\n ij: UnaryFn<I, J>,\n jk: UnaryFn<J, 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;\nfunction pipe<A, B, C, D, E, F, G, 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, G>,\n gh: UnaryFn<G, R>\n): (a: A) => R;\nfunction pipe<A, B, C, D, E, F, G, H, 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, G>,\n gh: UnaryFn<G, H>,\n hi: UnaryFn<H, R>\n): (a: A) => R;\nfunction pipe<A, B, C, D, E, F, G, H, I, 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, G>,\n gh: UnaryFn<G, H>,\n hi: UnaryFn<H, I>,\n ij: UnaryFn<I, R>\n): (a: A) => R;\nfunction pipe<A, B, C, D, E, F, G, H, I, J, 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, G>,\n gh: UnaryFn<G, H>,\n hi: UnaryFn<H, I>,\n ij: UnaryFn<I, J>,\n jk: UnaryFn<J, 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":["import type { FromFn } from './from';\n\ntype 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>;\ntype PipeFrom<Fns extends [FromFn<any>, ...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<B, C, D, E, F, G, 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, G>,\n gh: UnaryFn<G, R>\n): () => R;\nfunction pipe<B, C, D, E, F, G, H, 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, G>,\n gh: UnaryFn<G, H>,\n hi: UnaryFn<H, R>\n): () => R;\nfunction pipe<B, C, D, E, F, G, H, I, 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, G>,\n gh: UnaryFn<G, H>,\n hi: UnaryFn<H, I>,\n ij: UnaryFn<I, R>\n): () => R;\nfunction pipe<B, C, D, E, F, G, H, I, J, 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, G>,\n gh: UnaryFn<G, H>,\n hi: UnaryFn<H, I>,\n ij: UnaryFn<I, J>,\n jk: UnaryFn<J, R>\n): () => R;\nfunction pipe<Fns extends [FromFn<any>, ...UnaryFn<any, any>[]]>(...funcs: Fns): PipeFrom<Fns>;\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;\nfunction pipe<A, B, C, D, E, F, G, 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, G>,\n gh: UnaryFn<G, R>\n): (a: A) => R;\nfunction pipe<A, B, C, D, E, F, G, H, 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, G>,\n gh: UnaryFn<G, H>,\n hi: UnaryFn<H, R>\n): (a: A) => R;\nfunction pipe<A, B, C, D, E, F, G, H, I, 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, G>,\n gh: UnaryFn<G, H>,\n hi: UnaryFn<H, I>,\n ij: UnaryFn<I, R>\n): (a: A) => R;\nfunction pipe<A, B, C, D, E, F, G, H, I, J, 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, G>,\n gh: UnaryFn<G, H>,\n hi: UnaryFn<H, I>,\n ij: UnaryFn<I, J>,\n jk: UnaryFn<J, 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":"AAoJA,SAASA,KAAQC,GAAmC;AAClD,SAAO,CAACC,MACCD,EAAM,OAAO,CAACE,GAAKC,MAAOA,EAAGD,CAAG,GAAGD,CAAI;AAElD;"}
|
|
@@ -13,10 +13,13 @@ export type PipePureSixIsStrict = Expect<Equal<typeof purePipeSix, PurePipeSixEx
|
|
|
13
13
|
export declare const purePipeTen: (a: number) => string;
|
|
14
14
|
type PurePipeTenExpected = (input: number) => string;
|
|
15
15
|
export type PipePureTenIsStrict = Expect<Equal<typeof purePipeTen, PurePipeTenExpected>>;
|
|
16
|
-
export declare const pipeFromTen: (
|
|
16
|
+
export declare const pipeFromTen: (input?: unknown) => string;
|
|
17
17
|
export declare const pipeFromTenValue: string;
|
|
18
18
|
type PipeFromTenValueExpected = string;
|
|
19
19
|
export type PipeFromTenValueIsStrict = Expect<Equal<typeof pipeFromTenValue, PipeFromTenValueExpected>>;
|
|
20
|
+
export declare const pipeFromTenValueNoInput: string;
|
|
21
|
+
type PipeFromTenValueNoInputExpected = string;
|
|
22
|
+
export type PipeFromTenValueNoInputIsStrict = Expect<Equal<typeof pipeFromTenValueNoInput, PipeFromTenValueNoInputExpected>>;
|
|
20
23
|
export declare const pipeWithSideEffectInput: (a: number | SideEffect<any>) => string | SideEffect<any>;
|
|
21
24
|
export declare const pipeWithSideEffectValue: string | SideEffect<any>;
|
|
22
25
|
type PipeExpected = (input: number | SideEffect<any>) => string | SideEffect<any>;
|
|
@@ -78,6 +81,9 @@ export type PipeSideEffectStrictEffects = Expect<Equal<StrictSideEffectEffects,
|
|
|
78
81
|
type StrictSideEffectValue = ValueUnion<typeof strictPipeSideEffectResult>;
|
|
79
82
|
type StrictSideEffectValueExpected = number;
|
|
80
83
|
export type PipeSideEffectStrictValue = Expect<Equal<StrictSideEffectValue, StrictSideEffectValueExpected>>;
|
|
84
|
+
export declare const strictPipeSideEffectRunResult: number | "LOW";
|
|
85
|
+
type StrictPipeSideEffectRunExpected = ValueUnion<typeof strictPipeSideEffectResult> | EffectUnion<typeof strictPipeSideEffectResult>;
|
|
86
|
+
export type PipeSideEffectStrictRunPipeResultIsStrict = Expect<Equal<typeof strictPipeSideEffectRunResult, StrictPipeSideEffectRunExpected>>;
|
|
81
87
|
export declare const strictPipeSideEffectInput: number | SideEffect<0 | "LOW" | "INPUT">;
|
|
82
88
|
type StrictSideEffectInputEffects = EffectUnion<typeof strictPipeSideEffectInput>;
|
|
83
89
|
type StrictSideEffectInputEffectsExpected = 'LOW' | 0 | 'INPUT';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipe.type-test.d.ts","sourceRoot":"","sources":["../../../src/implement/composition/pipe.type-test.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"pipe.type-test.d.ts","sourceRoot":"","sources":["../../../src/implement/composition/pipe.type-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ export declare class SideEffect<T = unknown> {
|
|
|
7
7
|
constructor(effect: () => T, label?: string);
|
|
8
8
|
static of<T>(effect: () => T, label?: string): SideEffect<T>;
|
|
9
9
|
}
|
|
10
|
-
type MatchHandlers<T, RValue, REffect> = {
|
|
10
|
+
export type MatchHandlers<T, RValue, REffect> = {
|
|
11
11
|
value: (value: T) => RValue;
|
|
12
12
|
effect: (sideEffect: SideEffect) => REffect;
|
|
13
13
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sideEffect.d.ts","sourceRoot":"","sources":["../../../src/implement/composition/sideEffect.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,UAAU,CAAC,CAAC,GAAG,OAAO;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM;IAK3C,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC;CAG7D;AAED,
|
|
1
|
+
{"version":3,"file":"sideEffect.d.ts","sourceRoot":"","sources":["../../../src/implement/composition/sideEffect.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,UAAU,CAAC,CAAC,GAAG,OAAO;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM;IAK3C,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC;CAG7D;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,IAAI;IAC9C,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC;IAC5B,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,OAAO,CAAC;CAC7C,CAAC;AAEF,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,GAAG,GAAG,EACtD,MAAM,EAAE,CAAC,GAAG,UAAU,EACtB,QAAQ,EAAE,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,GAC1C,MAAM,GAAG,OAAO,CAKlB;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,GAAC,GAAG,EAAE,MAAM,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAKxE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAAC,GAAG,CAAC,CAErE;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sideEffect.mjs","sources":["../../../src/implement/composition/sideEffect.ts"],"sourcesContent":["/**\n * SideEffect - side effect container (never auto-executed)\n */\nexport class SideEffect<T = unknown> {\n readonly effect: () => T;\n readonly label?: string;\n\n constructor(effect: () => T, label?: string) {\n this.effect = effect;\n this.label = label;\n }\n\n static of<T>(effect: () => T, label?: string): SideEffect<T> {\n return new SideEffect(effect, label);\n }\n}\n\
|
|
1
|
+
{"version":3,"file":"sideEffect.mjs","sources":["../../../src/implement/composition/sideEffect.ts"],"sourcesContent":["/**\n * SideEffect - side effect container (never auto-executed)\n */\nexport class SideEffect<T = unknown> {\n readonly effect: () => T;\n readonly label?: string;\n\n constructor(effect: () => T, label?: string) {\n this.effect = effect;\n this.label = label;\n }\n\n static of<T>(effect: () => T, label?: string): SideEffect<T> {\n return new SideEffect(effect, label);\n }\n}\n\nexport type MatchHandlers<T, RValue, REffect> = {\n value: (value: T) => RValue;\n effect: (sideEffect: SideEffect) => REffect;\n};\n\nexport function matchSideEffect<T, RValue, REffect = any>(\n result: T | SideEffect,\n handlers: MatchHandlers<T, RValue, REffect>\n): RValue | REffect {\n if (result instanceof SideEffect) {\n return handlers.effect(result);\n }\n return handlers.value(result as T);\n}\n\nexport function runPipeResult<T, R=any>(result: T | SideEffect<R>): T | R {\n if (isSideEffect(result)) {\n return result.effect() as R;\n }\n return result as T;\n}\n\nexport function isSideEffect(value: unknown): value is SideEffect<any> {\n return value instanceof SideEffect;\n}\n\nexport default SideEffect;\n"],"names":["SideEffect","effect","label","matchSideEffect","result","handlers","runPipeResult","isSideEffect","value"],"mappings":"AAGO,MAAMA,EAAwB;AAAA,EAC1B;AAAA,EACA;AAAA,EAET,YAAYC,GAAiBC,GAAgB;AAC3C,SAAK,SAASD,GACd,KAAK,QAAQC;AAAA,EACf;AAAA,EAEA,OAAO,GAAMD,GAAiBC,GAA+B;AAC3D,WAAO,IAAIF,EAAWC,GAAQC,CAAK;AAAA,EACrC;AACF;AAOO,SAASC,EACdC,GACAC,GACkB;AAClB,SAAID,aAAkBJ,IACbK,EAAS,OAAOD,CAAM,IAExBC,EAAS,MAAMD,CAAW;AACnC;AAEO,SAASE,EAAwBF,GAAkC;AACxE,SAAIG,EAAaH,CAAM,IACdA,EAAO,OAAA,IAETA;AACT;AAEO,SAASG,EAAaC,GAA0C;AACrE,SAAOA,aAAiBR;AAC1B;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import { PathKey } from './pathKey';
|
|
2
2
|
type AssocPath = {
|
|
3
3
|
<T = unknown>(...args: [pathArray: PathKey[]]): (value: unknown) => (obj: unknown) => T;
|
|
4
4
|
<T = unknown>(...args: [pathArray: PathKey[], value: unknown]): (obj: unknown) => T;
|
|
@@ -6,4 +6,5 @@ type AssocPath = {
|
|
|
6
6
|
};
|
|
7
7
|
declare const curriedAssocPath: AssocPath;
|
|
8
8
|
export default curriedAssocPath;
|
|
9
|
+
export type { PathKey };
|
|
9
10
|
//# sourceMappingURL=assocPath.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assocPath.d.ts","sourceRoot":"","sources":["../../../src/implement/object/assocPath.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"assocPath.d.ts","sourceRoot":"","sources":["../../../src/implement/object/assocPath.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0BzC,KAAK,SAAS,GAAG;IACf,CAAC,CAAC,GAAG,OAAO,EACV,GAAG,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,GAC9B,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC,GAAG,EAAE,OAAO,KAAK,CAAC,CAAC;IAC3C,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,CAAC,CAAC;IACpF,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;CACjF,CAAC;AA4BF,QAAA,MAAM,gBAAgB,EAAuB,SAAS,CAAC;AACvD,eAAe,gBAAgB,CAAC;AAChC,YAAY,EAAE,OAAO,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assocPath.mjs","sources":["../../../src/implement/object/assocPath.ts"],"sourcesContent":["import curry from '../composition/curry';\
|
|
1
|
+
{"version":3,"file":"assocPath.mjs","sources":["../../../src/implement/object/assocPath.ts"],"sourcesContent":["import curry from '../composition/curry';\nimport type { PathKey } from './pathKey';\n\nconst isIndexKey = (key: PathKey): key is number | `${number}` => {\n if (typeof key === 'number') {\n return Number.isInteger(key);\n }\n if (typeof key === 'string') {\n return /^-?\\d+$/.test(key);\n }\n return false;\n};\n\nconst normalizeIndex = (key: number | `${number}`, length: number) => {\n const raw = typeof key === 'number' ? key : Number(key);\n if (Number.isNaN(raw)) {\n return -1;\n }\n if (raw < 0) {\n return Math.max(length + raw, 0);\n }\n return raw;\n};\n\nconst isObjectLike = (value: unknown): value is Record<PropertyKey, unknown> =>\n value !== null && typeof value === 'object';\n\ntype AssocPath = {\n <T = unknown>(\n ...args: [pathArray: PathKey[]]\n ): (value: unknown) => (obj: unknown) => T;\n <T = unknown>(...args: [pathArray: PathKey[], value: unknown]): (obj: unknown) => T;\n <T = unknown>(...args: [pathArray: PathKey[], value: unknown, obj: unknown]): T;\n};\n\n/**\n * assocPath - 경로 기반 값 설정 (불변)\n */\nfunction assocPath<T = unknown>(pathArray: PathKey[], value: unknown, obj: unknown): T {\n if (pathArray.length === 0) {\n return value as T;\n }\n\n const [key, ...rest] = pathArray;\n const useArray = isIndexKey(key);\n const base = Array.isArray(obj) ? obj.slice() : isObjectLike(obj) ? { ...(obj as object) } : useArray ? [] : {};\n\n if (Array.isArray(base) && isIndexKey(key)) {\n const index = normalizeIndex(key, base.length);\n const current = (base as unknown[])[index];\n const nextValue = rest.length === 0 ? value : assocPath(rest, value, current);\n (base as unknown[])[index] = nextValue;\n return base as T;\n }\n\n const current = isObjectLike(base) ? (base as Record<PropertyKey, unknown>)[key] : undefined;\n const nextValue = rest.length === 0 ? value : assocPath(rest, value, current);\n (base as Record<PropertyKey, unknown>)[key] = nextValue;\n return base as T;\n}\n\nconst curriedAssocPath = curry(assocPath) as AssocPath;\nexport default curriedAssocPath;\nexport type { PathKey };\n"],"names":["isIndexKey","key","normalizeIndex","length","raw","isObjectLike","value","assocPath","pathArray","obj","rest","useArray","base","index","current","nextValue","curriedAssocPath","curry"],"mappings":";AAGA,MAAMA,IAAa,CAACC,MACd,OAAOA,KAAQ,WACV,OAAO,UAAUA,CAAG,IAEzB,OAAOA,KAAQ,WACV,UAAU,KAAKA,CAAG,IAEpB,IAGHC,IAAiB,CAACD,GAA2BE,MAAmB;AACpE,QAAMC,IAAM,OAAOH,KAAQ,WAAWA,IAAM,OAAOA,CAAG;AACtD,SAAI,OAAO,MAAMG,CAAG,IACX,KAELA,IAAM,IACD,KAAK,IAAID,IAASC,GAAK,CAAC,IAE1BA;AACT,GAEMC,IAAe,CAACC,MACpBA,MAAU,QAAQ,OAAOA,KAAU;AAarC,SAASC,EAAuBC,GAAsBF,GAAgBG,GAAiB;AACrF,MAAID,EAAU,WAAW;AACvB,WAAOF;AAGT,QAAM,CAACL,GAAK,GAAGS,CAAI,IAAIF,GACjBG,IAAWX,EAAWC,CAAG,GACzBW,IAAO,MAAM,QAAQH,CAAG,IAAIA,EAAI,UAAUJ,EAAaI,CAAG,IAAI,EAAE,GAAIA,EAAA,IAAmBE,IAAW,CAAA,IAAK,CAAA;AAE7G,MAAI,MAAM,QAAQC,CAAI,KAAKZ,EAAWC,CAAG,GAAG;AAC1C,UAAMY,IAAQX,EAAeD,GAAKW,EAAK,MAAM,GACvCE,IAAWF,EAAmBC,CAAK,GACnCE,IAAYL,EAAK,WAAW,IAAIJ,IAAQC,EAAUG,GAAMJ,GAAOQ,CAAO;AAC3E,WAAAF,EAAmBC,CAAK,IAAIE,GACtBH;AAAA,EACT;AAEA,QAAME,IAAUT,EAAaO,CAAI,IAAKA,EAAsCX,CAAG,IAAI,QAC7Ec,IAAYL,EAAK,WAAW,IAAIJ,IAAQC,EAAUG,GAAMJ,GAAOQ,CAAO;AAC3E,SAAAF,EAAsCX,CAAG,IAAIc,GACvCH;AACT;AAEA,MAAMI,IAAmBC,EAAMV,CAAS;"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
import { PathKey } from './pathKey';
|
|
2
2
|
type DissocPath = {
|
|
3
3
|
<T = unknown>(...args: [pathArray: PathKey[]]): (obj: T) => T;
|
|
4
4
|
<T = unknown>(...args: [pathArray: PathKey[], obj: T]): T;
|
|
5
5
|
};
|
|
6
6
|
declare const curriedDissocPath: DissocPath;
|
|
7
7
|
export default curriedDissocPath;
|
|
8
|
+
export type { PathKey };
|
|
8
9
|
//# sourceMappingURL=dissocPath.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dissocPath.d.ts","sourceRoot":"","sources":["../../../src/implement/object/dissocPath.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dissocPath.d.ts","sourceRoot":"","sources":["../../../src/implement/object/dissocPath.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0BzC,KAAK,UAAU,GAAG;IAChB,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;CAC3D,CAAC;AA+CF,QAAA,MAAM,iBAAiB,EAAwB,UAAU,CAAC;AAC1D,eAAe,iBAAiB,CAAC;AACjC,YAAY,EAAE,OAAO,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dissocPath.mjs","sources":["../../../src/implement/object/dissocPath.ts"],"sourcesContent":["import curry from '../composition/curry';\
|
|
1
|
+
{"version":3,"file":"dissocPath.mjs","sources":["../../../src/implement/object/dissocPath.ts"],"sourcesContent":["import curry from '../composition/curry';\nimport type { PathKey } from './pathKey';\n\nconst isIndexKey = (key: PathKey): key is number | `${number}` => {\n if (typeof key === 'number') {\n return Number.isInteger(key);\n }\n if (typeof key === 'string') {\n return /^-?\\d+$/.test(key);\n }\n return false;\n};\n\nconst normalizeIndex = (key: number | `${number}`, length: number) => {\n const raw = typeof key === 'number' ? key : Number(key);\n if (Number.isNaN(raw)) {\n return -1;\n }\n if (raw < 0) {\n return length + raw;\n }\n return raw;\n};\n\nconst isObjectLike = (value: unknown): value is Record<PropertyKey, unknown> =>\n value !== null && typeof value === 'object';\n\ntype DissocPath = {\n <T = unknown>(...args: [pathArray: PathKey[]]): (obj: T) => T;\n <T = unknown>(...args: [pathArray: PathKey[], obj: T]): T;\n};\n\n/**\n * dissocPath - 경로 기반 값 제거 (불변)\n */\nfunction dissocPath<T = unknown>(pathArray: PathKey[], obj: T): T {\n if (pathArray.length === 0) {\n return obj;\n }\n\n if (!isObjectLike(obj)) {\n return obj;\n }\n\n const [key, ...rest] = pathArray;\n\n if (Array.isArray(obj) && isIndexKey(key)) {\n const index = normalizeIndex(key, obj.length);\n if (index < 0 || index >= obj.length) {\n return obj;\n }\n\n const result = obj.slice();\n if (rest.length === 0) {\n result.splice(index, 1);\n return result as unknown as T;\n }\n\n const nextValue = dissocPath(rest, result[index]);\n result[index] = nextValue;\n return result as unknown as T;\n }\n\n if (!Object.prototype.hasOwnProperty.call(obj, key)) {\n return obj;\n }\n\n if (rest.length === 0) {\n const { [key]: _removed, ...restObj } = obj as Record<PropertyKey, unknown>;\n return restObj as T;\n }\n\n const result = { ...(obj as object) } as Record<PropertyKey, unknown>;\n result[key] = dissocPath(rest, result[key]);\n return result as T;\n}\n\nconst curriedDissocPath = curry(dissocPath) as DissocPath;\nexport default curriedDissocPath;\nexport type { PathKey };\n"],"names":["isIndexKey","key","normalizeIndex","length","raw","isObjectLike","value","dissocPath","pathArray","obj","rest","index","result","nextValue","_removed","restObj","curriedDissocPath","curry"],"mappings":";AAGA,MAAMA,IAAa,CAACC,MACd,OAAOA,KAAQ,WACV,OAAO,UAAUA,CAAG,IAEzB,OAAOA,KAAQ,WACV,UAAU,KAAKA,CAAG,IAEpB,IAGHC,IAAiB,CAACD,GAA2BE,MAAmB;AACpE,QAAMC,IAAM,OAAOH,KAAQ,WAAWA,IAAM,OAAOA,CAAG;AACtD,SAAI,OAAO,MAAMG,CAAG,IACX,KAELA,IAAM,IACDD,IAASC,IAEXA;AACT,GAEMC,IAAe,CAACC,MACpBA,MAAU,QAAQ,OAAOA,KAAU;AAUrC,SAASC,EAAwBC,GAAsBC,GAAW;AAKhE,MAJID,EAAU,WAAW,KAIrB,CAACH,EAAaI,CAAG;AACnB,WAAOA;AAGT,QAAM,CAACR,GAAK,GAAGS,CAAI,IAAIF;AAEvB,MAAI,MAAM,QAAQC,CAAG,KAAKT,EAAWC,CAAG,GAAG;AACzC,UAAMU,IAAQT,EAAeD,GAAKQ,EAAI,MAAM;AAC5C,QAAIE,IAAQ,KAAKA,KAASF,EAAI;AAC5B,aAAOA;AAGT,UAAMG,IAASH,EAAI,MAAA;AACnB,QAAIC,EAAK,WAAW;AAClBE,aAAAA,EAAO,OAAOD,GAAO,CAAC,GACfC;AAGT,UAAMC,IAAYN,EAAWG,GAAME,EAAOD,CAAK,CAAC;AAChDC,WAAAA,EAAOD,CAAK,IAAIE,GACTD;AAAAA,EACT;AAEA,MAAI,CAAC,OAAO,UAAU,eAAe,KAAKH,GAAKR,CAAG;AAChD,WAAOQ;AAGT,MAAIC,EAAK,WAAW,GAAG;AACrB,UAAM,EAAE,CAACT,CAAG,GAAGa,GAAU,GAAGC,MAAYN;AACxC,WAAOM;AAAA,EACT;AAEA,QAAMH,IAAS,EAAE,GAAIH,EAAA;AACrB,SAAAG,EAAOX,CAAG,IAAIM,EAAWG,GAAME,EAAOX,CAAG,CAAC,GACnCW;AACT;AAEA,MAAMI,IAAoBC,EAAMV,CAAU;"}
|
|
@@ -19,4 +19,5 @@ export { default as mapValues } from './mapValues';
|
|
|
19
19
|
export { default as evolve } from './evolve';
|
|
20
20
|
export { default as has } from './has';
|
|
21
21
|
export { default as hasPath } from './hasPath';
|
|
22
|
+
export type { PathKey } from './pathKey';
|
|
22
23
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/implement/object/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/implement/object/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,YAAY,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { PathKey } from './pathKey';
|
|
1
2
|
type Path = {
|
|
2
|
-
(pathArray:
|
|
3
|
-
<T>(...args: [pathArray:
|
|
3
|
+
(pathArray: PathKey[]): <T>(obj: any) => T | undefined;
|
|
4
|
+
<T>(...args: [pathArray: PathKey[], obj: any]): T | undefined;
|
|
4
5
|
};
|
|
5
6
|
declare const curriedPath: Path;
|
|
6
7
|
export default curriedPath;
|
|
8
|
+
export type { PathKey };
|
|
7
9
|
//# sourceMappingURL=path.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../../src/implement/object/path.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../../src/implement/object/path.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,KAAK,IAAI,GAAG;IACV,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,SAAS,CAAC;IACvD,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;CAC/D,CAAC;AASF,QAAA,MAAM,WAAW,EAAkB,IAAI,CAAC;AACxC,eAAe,WAAW,CAAC;AAC3B,YAAY,EAAE,OAAO,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path.mjs","sources":["../../../src/implement/object/path.ts"],"sourcesContent":["import curry from '../composition/curry';\n\ntype Path = {\n (pathArray:
|
|
1
|
+
{"version":3,"file":"path.mjs","sources":["../../../src/implement/object/path.ts"],"sourcesContent":["import curry from '../composition/curry';\nimport type { PathKey } from './pathKey';\n\ntype Path = {\n (pathArray: PathKey[]): <T>(obj: any) => T | undefined;\n <T>(...args: [pathArray: PathKey[], obj: any]): T | undefined;\n};\n\n/**\n * path - 안전한 깊은 프로퍼티 접근\n */\nfunction path<T>(pathArray: PathKey[], obj: any): T | undefined {\n return pathArray.reduce((current, key) => (current == null ? undefined : current[key]), obj) as T | undefined;\n}\n\nconst curriedPath = curry(path) as Path;\nexport default curriedPath;\nexport type { PathKey };\n"],"names":["path","pathArray","obj","current","key","curriedPath","curry"],"mappings":";AAWA,SAASA,EAAQC,GAAsBC,GAAyB;AAC9D,SAAOD,EAAU,OAAO,CAACE,GAASC,MAAuCD,IAAQC,CAAG,GAAIF,CAAG;AAC7F;AAEA,MAAMG,IAAcC,EAAMN,CAAI;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pathKey.d.ts","sourceRoot":"","sources":["../../../src/implement/object/pathKey.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import { PathKey } from './pathKey';
|
|
1
2
|
type PathOr = {
|
|
2
|
-
<D>(...args: [defaultValue: D]): <T>(pathArray:
|
|
3
|
-
<D>(...args: [defaultValue: D, pathArray:
|
|
4
|
-
<T, D>(...args: [defaultValue: D, pathArray:
|
|
3
|
+
<D>(...args: [defaultValue: D]): <T>(pathArray: PathKey[]) => (obj: any) => T | D;
|
|
4
|
+
<D>(...args: [defaultValue: D, pathArray: PathKey[]]): <T>(obj: any) => T | D;
|
|
5
|
+
<T, D>(...args: [defaultValue: D, pathArray: PathKey[], obj: any]): T | D;
|
|
5
6
|
};
|
|
6
7
|
declare const curriedPathOr: PathOr;
|
|
7
8
|
export default curriedPathOr;
|
|
9
|
+
export type { PathKey };
|
|
8
10
|
//# sourceMappingURL=pathOr.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pathOr.d.ts","sourceRoot":"","sources":["../../../src/implement/object/pathOr.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pathOr.d.ts","sourceRoot":"","sources":["../../../src/implement/object/pathOr.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,KAAK,MAAM,GAAG;IACZ,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAClF,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9E,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CAC3E,CAAC;AAUF,QAAA,MAAM,aAAa,EAAoB,MAAM,CAAC;AAC9C,eAAe,aAAa,CAAC;AAC7B,YAAY,EAAE,OAAO,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pathOr.mjs","sources":["../../../src/implement/object/pathOr.ts"],"sourcesContent":["import curry from '../composition/curry';\n\ntype PathOr = {\n <D>(...args: [defaultValue: D]): <T>(pathArray:
|
|
1
|
+
{"version":3,"file":"pathOr.mjs","sources":["../../../src/implement/object/pathOr.ts"],"sourcesContent":["import curry from '../composition/curry';\nimport type { PathKey } from './pathKey';\n\ntype PathOr = {\n <D>(...args: [defaultValue: D]): <T>(pathArray: PathKey[]) => (obj: any) => T | D;\n <D>(...args: [defaultValue: D, pathArray: PathKey[]]): <T>(obj: any) => T | D;\n <T, D>(...args: [defaultValue: D, pathArray: PathKey[], obj: any]): T | D;\n};\n\n/**\n * pathOr - 기본값이 있는 깊은 프로퍼티 접근\n */\nfunction pathOr<T, D>(defaultValue: D, pathArray: PathKey[], obj: any): T | D {\n const value = pathArray.reduce((current, key) => (current == null ? undefined : current[key]), obj) as T | undefined;\n return value == null ? defaultValue : value;\n}\n\nconst curriedPathOr = curry(pathOr) as PathOr;\nexport default curriedPathOr;\nexport type { PathKey };\n"],"names":["pathOr","defaultValue","pathArray","obj","value","current","key","curriedPathOr","curry"],"mappings":";AAYA,SAASA,EAAaC,GAAiBC,GAAsBC,GAAiB;AAC5E,QAAMC,IAAQF,EAAU,OAAO,CAACG,GAASC,MAAuCD,IAAQC,CAAG,GAAIH,CAAG;AAClG,SAAOC,KAAgBH;AACzB;AAEA,MAAMM,IAAgBC,EAAMR,CAAM;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -8,4 +8,5 @@ export * from './implement/string';
|
|
|
8
8
|
export * from './implement/async';
|
|
9
9
|
export * from './implement/nullable';
|
|
10
10
|
export * from './implement/debug';
|
|
11
|
+
export type { AnyIterable, AnyIterableInput, PromiseLikeValue } from './stream/utils';
|
|
11
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,CAAC;AAGxB,cAAc,yBAAyB,CAAC;AAGxC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,CAAC;AAGxB,cAAc,yBAAyB,CAAC;AAGxC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,mBAAmB,CAAC;AAGlC,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -7,7 +7,7 @@ metadata:
|
|
|
7
7
|
|
|
8
8
|
# fp-pack AI Agent Skills
|
|
9
9
|
|
|
10
|
-
Document Version: 0.
|
|
10
|
+
Document Version: 0.6.0
|
|
11
11
|
|
|
12
12
|
This document provides guidelines for AI coding assistants when working in projects that use fp-pack. Follow these instructions to write clean, declarative, functional code using fp-pack's utilities.
|
|
13
13
|
|
|
@@ -129,7 +129,7 @@ const finalValue = runPipeResult(processDataPipeline(input));
|
|
|
129
129
|
**Key SideEffect functions:**
|
|
130
130
|
- `SideEffect.of(fn, label?)` - Create a side effect container
|
|
131
131
|
- `isSideEffect(value)` - Type guard for **runtime checking** whether a value is a SideEffect
|
|
132
|
-
- `runPipeResult<T, R>(result)` - Execute SideEffect or return value (call **OUTSIDE** pipelines
|
|
132
|
+
- `runPipeResult<T, R>(result)` - Execute SideEffect or return value (call **OUTSIDE** pipelines). If the input type is precise, inference is preserved. If the input is widened to `SideEffect<any>` or `any`, the result becomes `any` unless you provide generics.
|
|
133
133
|
- `matchSideEffect(result, { value, effect })` - Pattern match on result
|
|
134
134
|
|
|
135
135
|
**Type-safe result handling:**
|
|
@@ -147,32 +147,34 @@ const processNumbers = pipeSideEffect(
|
|
|
147
147
|
|
|
148
148
|
const result = processNumbers([1, 2, 3, 4, 5]);
|
|
149
149
|
|
|
150
|
-
// ✅ CORRECT: Use isSideEffect for runtime checking
|
|
150
|
+
// ✅ CORRECT: Use isSideEffect for runtime checking
|
|
151
151
|
if (!isSideEffect(result)) {
|
|
152
152
|
// TypeScript knows: result is number[]
|
|
153
153
|
const sum: number = result.reduce((a, b) => a + b, 0);
|
|
154
154
|
} else {
|
|
155
155
|
// TypeScript knows: result is SideEffect<string>
|
|
156
|
-
//
|
|
157
|
-
const error = runPipeResult
|
|
156
|
+
// runPipeResult returns number[] | string (not fully narrowed)
|
|
157
|
+
const error = runPipeResult(result); // number[] | string
|
|
158
158
|
}
|
|
159
159
|
|
|
160
|
-
//
|
|
161
|
-
const
|
|
160
|
+
// ⚠️ If the result type is widened to SideEffect<any>, inference is lost
|
|
161
|
+
const widened: number[] | SideEffect<any> = result;
|
|
162
|
+
const unsafeValue = runPipeResult(widened); // number[] | any
|
|
162
163
|
|
|
163
|
-
// ✅ CORRECT: Provide generics to
|
|
164
|
-
const
|
|
164
|
+
// ✅ CORRECT: Provide generics to recover a safe union
|
|
165
|
+
const safeValue = runPipeResult<number[], string>(result); // result: number[] | string (union type - safe but not narrowed)
|
|
165
166
|
```
|
|
166
167
|
|
|
167
168
|
**⚠️ CRITICAL: runPipeResult Type Safety**
|
|
168
169
|
|
|
169
170
|
`runPipeResult<T, R=any>` has a default type parameter `R=any`. This means:
|
|
170
171
|
|
|
171
|
-
-
|
|
172
|
-
-
|
|
173
|
-
- ✅ **With
|
|
172
|
+
- ✅ **Precise input types**: `T | SideEffect<'E'>` preserves `T | 'E'` without extra annotations.
|
|
173
|
+
- ⚠️ **Widened inputs**: `T | SideEffect<any>` (or `any`) collapses to `any`.
|
|
174
|
+
- ✅ **With generics**: `runPipeResult<SuccessType, ErrorType>(result)` restores a safe union when inference is lost.
|
|
175
|
+
- ✅ **With isSideEffect**: Prefer for runtime narrowing when you need branch-specific types.
|
|
174
176
|
|
|
175
|
-
|
|
177
|
+
Provide generics when inference is lost; prefer `isSideEffect` for precise narrowing.
|
|
176
178
|
|
|
177
179
|
## Stream Functions - Lazy Iterable Processing
|
|
178
180
|
|
|
@@ -527,7 +529,7 @@ const gradeToLetter = cond([
|
|
|
527
529
|
|
|
528
530
|
- `prop` returns `T[K] | undefined`. Use `propOr` (or guard) before array operations.
|
|
529
531
|
- `ifElse` expects **functions** for both branches. If you already have a value, wrap it: `() => value` or use `from(value)` for cleaner constant branches.
|
|
530
|
-
- Use `from(value)` when you need a unary function that ignores input (handy for `ifElse`/`cond` branches and data-first patterns).
|
|
532
|
+
- Use `from(value)` when you need a unary function that ignores input (handy for `ifElse`/`cond` branches and data-first patterns). Pipelines that start with `from(...)` can be called without an initial input value.
|
|
531
533
|
- `cond` returns `R | undefined`. Add a default branch and coalesce when you need a strict result.
|
|
532
534
|
- In `pipeSideEffect`, keep step return types aligned to avoid wide unions.
|
|
533
535
|
|
|
@@ -680,8 +682,8 @@ const updateUser = assoc('lastLogin', new Date());
|
|
|
680
682
|
- **Pure async operations**: `pipeAsync`
|
|
681
683
|
- **Error handling with SideEffect**: `pipeSideEffect` (sync) / `pipeAsyncSideEffect` (async)
|
|
682
684
|
- **Strict SideEffect unions**: `pipeSideEffectStrict` (sync) / `pipeAsyncSideEffectStrict` (async)
|
|
683
|
-
- **Type-safe result handling**: `isSideEffect` for precise type narrowing (
|
|
684
|
-
- **Execute SideEffect**: `runPipeResult` (call OUTSIDE pipelines).
|
|
685
|
+
- **Type-safe result handling**: `isSideEffect` for precise type narrowing (prefer this when you need branch-specific types)
|
|
686
|
+
- **Execute SideEffect**: `runPipeResult` (call OUTSIDE pipelines). If the input is widened to `SideEffect<any>`/`any`, the result becomes `any`; provide generics to recover
|
|
685
687
|
- **Large datasets**: `stream/*` functions
|
|
686
688
|
- **Conditionals**: `ifElse`, `when`, `unless`, `cond`
|
|
687
689
|
- **Object access**: `prop`, `propStrict`, `path`, `pick`, `omit`
|