signal-chain
Advanced tools
Comparing version 0.9.0 to 0.10.0
@@ -5,4 +5,2 @@ export * from './signal/types'; | ||
import { effect } from './signal/effect'; | ||
import { combine } from './signal/combine'; | ||
import { merge } from './signal/merge'; | ||
export { execute } from './signal/util'; | ||
@@ -26,3 +24,3 @@ declare const _default: { | ||
key: typeof key; | ||
event: <Target extends void | import("./signal/event").HasAddEventListener, EventName extends "dblclick" | "mousedown" | "mouseenter" | "mouseleave" | "mousemove" | "mouseout" | "mouseover" | "mouseup" | "click" | "contextmenu" | "auxclick" | "keydown" | "keypress" | "keyup" | "beforeinput" | "input" | "focus" | "blur" | "focusin" | "focusout" | "change" | "submit" | "reset" | "resize" | "scroll" | "wheel" | "drag" | "dragend" | "dragenter" | "dragleave" | "dragover" | "dragstart" | "drop" | "animationstart" | "animationend" | "animationiteration" | "transitionend" | "toggle" | "error" | "load" | "unload" | "loadeddata" | "loadedmetadata" | "canplay" | "canplaythrough" | "play" | "pause" | "seeked" | "seeking" | "timeupdate" | "ended" | "volumechange" | "ratechange" | "durationchange" | "stalled" | "suspend" | "emptied" | "progress" | "abort">(event: EventName) => import("./signal/types").Chain<Target, (({ | ||
event: <Target extends void | import("./signal/event").HasAddEventListener, EventName extends string>(event: EventName) => import("./signal/types").AsyncChain<Target, (({ | ||
name: "dblclick" | "mousedown" | "mouseenter" | "mouseleave" | "mousemove" | "mouseout" | "mouseover" | "mouseup"; | ||
@@ -111,2 +109,5 @@ type: MouseEvent; | ||
type: UIEvent; | ||
} | { | ||
name: string; | ||
type: CustomEvent<any>; | ||
}) & { | ||
@@ -147,3 +148,3 @@ name: EventName; | ||
maybe: { | ||
select: <V1, Filter extends V1 & (null | undefined), From extends Exclude<V1, Filter>, To>(mapping: import("./signal/types").Function1<From, To>) => import("./signal/types").Chain<V1 | From, Filter | To>; | ||
select: <V1, Filter extends V1 & (null | undefined), From extends Exclude<V1, Filter>, To>(mapping: import("./signal/types").Function1<From, To>) => import("./signal/types").ConnectedChain<V1 | From, Filter | To>; | ||
listen: { | ||
@@ -153,11 +154,5 @@ key: import("./signal/maybe").MaybeKeyCall; | ||
}; | ||
evaluate: { | ||
sync: <V1_1, V2 = V1_1, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1: import("./signal/types").Chain<V1_1, V2>, element2?: import("./signal/types").Chain<V2, V3> | undefined, element3?: import("./signal/types").Chain<V3, V4> | undefined, element4?: import("./signal/types").Chain<V4, V5> | undefined, element5?: import("./signal/types").Chain<V5, V6> | undefined, element6?: import("./signal/types").Chain<V6, V7> | undefined, element7?: import("./signal/types").Chain<V7, V8> | undefined, element8?: import("./signal/types").Chain<V8, V9> | undefined, element9?: import("./signal/types").Chain<V9, V10> | undefined, element10?: import("./signal/types").Chain<V10, V11> | undefined, element11?: import("./signal/types").Chain<V11, V12> | undefined, element12?: import("./signal/types").Chain<V12, V13> | undefined, element13?: import("./signal/types").Chain<V13, V14> | undefined, element14?: import("./signal/types").Chain<V14, V15> | undefined, element15?: import("./signal/types").Chain<V15, V16> | undefined, element16?: import("./signal/types").Chain<V16, V17> | undefined, element17?: import("./signal/types").Chain<V17, V18> | undefined, element18?: import("./signal/types").Chain<V18, V19> | undefined, element19?: import("./signal/types").Chain<V19, V20> | undefined) => import("./signal/types").Chain<V1_1, Error | V20>; | ||
async: <V1_2, V2_1 = V1_2, V3_1 = V2_1, V4_1 = V3_1, V5_1 = V4_1, V6_1 = V5_1, V7_1 = V6_1, V8_1 = V7_1, V9_1 = V8_1, V10_1 = V9_1, V11_1 = V10_1, V12_1 = V11_1, V13_1 = V12_1, V14_1 = V13_1, V15_1 = V14_1, V16_1 = V15_1, V17_1 = V16_1, V18_1 = V17_1, V19_1 = V18_1, V20_1 = V19_1>(element1: import("./signal/types").Chain<V1_2, V2_1>, element2?: import("./signal/types").Chain<V2_1, V3_1> | undefined, element3?: import("./signal/types").Chain<V3_1, V4_1> | undefined, element4?: import("./signal/types").Chain<V4_1, V5_1> | undefined, element5?: import("./signal/types").Chain<V5_1, V6_1> | undefined, element6?: import("./signal/types").Chain<V6_1, V7_1> | undefined, element7?: import("./signal/types").Chain<V7_1, V8_1> | undefined, element8?: import("./signal/types").Chain<V8_1, V9_1> | undefined, element9?: import("./signal/types").Chain<V9_1, V10_1> | undefined, element10?: import("./signal/types").Chain<V10_1, V11_1> | undefined, element11?: import("./signal/types").Chain<V11_1, V12_1> | undefined, element12?: import("./signal/types").Chain<V12_1, V13_1> | undefined, element13?: import("./signal/types").Chain<V13_1, V14_1> | undefined, element14?: import("./signal/types").Chain<V14_1, V15_1> | undefined, element15?: import("./signal/types").Chain<V15_1, V16_1> | undefined, element16?: import("./signal/types").Chain<V16_1, V17_1> | undefined, element17?: import("./signal/types").Chain<V17_1, V18_1> | undefined, element18?: import("./signal/types").Chain<V18_1, V19_1> | undefined, element19?: import("./signal/types").Chain<V19_1, V20_1> | undefined) => import("./signal/types").Chain<V1_2, Promise<V20_1>>; | ||
}; | ||
function: { | ||
sync: <V1_3, V2_2 = V1_3, V3_2 = V2_2, V4_2 = V3_2, V5_2 = V4_2, V6_2 = V5_2, V7_2 = V6_2, V8_2 = V7_2, V9_2 = V8_2, V10_2 = V9_2, V11_2 = V10_2, V12_2 = V11_2, V13_2 = V12_2, V14_2 = V13_2, V15_2 = V14_2, V16_2 = V15_2, V17_2 = V16_2, V18_2 = V17_2, V19_2 = V18_2, V20_2 = V19_2>(element1: import("./signal/types").Chain<V1_3, V2_2>, element2?: import("./signal/types").Chain<V2_2, V3_2> | undefined, element3?: import("./signal/types").Chain<V3_2, V4_2> | undefined, element4?: import("./signal/types").Chain<V4_2, V5_2> | undefined, element5?: import("./signal/types").Chain<V5_2, V6_2> | undefined, element6?: import("./signal/types").Chain<V6_2, V7_2> | undefined, element7?: import("./signal/types").Chain<V7_2, V8_2> | undefined, element8?: import("./signal/types").Chain<V8_2, V9_2> | undefined, element9?: import("./signal/types").Chain<V9_2, V10_2> | undefined, element10?: import("./signal/types").Chain<V10_2, V11_2> | undefined, element11?: import("./signal/types").Chain<V11_2, V12_2> | undefined, element12?: import("./signal/types").Chain<V12_2, V13_2> | undefined, element13?: import("./signal/types").Chain<V13_2, V14_2> | undefined, element14?: import("./signal/types").Chain<V14_2, V15_2> | undefined, element15?: import("./signal/types").Chain<V15_2, V16_2> | undefined, element16?: import("./signal/types").Chain<V16_2, V17_2> | undefined, element17?: import("./signal/types").Chain<V17_2, V18_2> | undefined, element18?: import("./signal/types").Chain<V18_2, V19_2> | undefined, element19?: import("./signal/types").Chain<V19_2, V20_2> | undefined) => import("./signal/types").Function1<V1_3, Error | V20_2>; | ||
async: <V1_4, V2_3 = V1_4, V3_3 = V2_3, V4_3 = V3_3, V5_3 = V4_3, V6_3 = V5_3, V7_3 = V6_3, V8_3 = V7_3, V9_3 = V8_3, V10_3 = V9_3, V11_3 = V10_3, V12_3 = V11_3, V13_3 = V12_3, V14_3 = V13_3, V15_3 = V14_3, V16_3 = V15_3, V17_3 = V16_3, V18_3 = V17_3, V19_3 = V18_3, V20_3 = V19_3>(element1: import("./signal/types").Chain<V1_4, V2_3>, element2?: import("./signal/types").Chain<V2_3, V3_3> | undefined, element3?: import("./signal/types").Chain<V3_3, V4_3> | undefined, element4?: import("./signal/types").Chain<V4_3, V5_3> | undefined, element5?: import("./signal/types").Chain<V5_3, V6_3> | undefined, element6?: import("./signal/types").Chain<V6_3, V7_3> | undefined, element7?: import("./signal/types").Chain<V7_3, V8_3> | undefined, element8?: import("./signal/types").Chain<V8_3, V9_3> | undefined, element9?: import("./signal/types").Chain<V9_3, V10_3> | undefined, element10?: import("./signal/types").Chain<V10_3, V11_3> | undefined, element11?: import("./signal/types").Chain<V11_3, V12_3> | undefined, element12?: import("./signal/types").Chain<V12_3, V13_3> | undefined, element13?: import("./signal/types").Chain<V13_3, V14_3> | undefined, element14?: import("./signal/types").Chain<V14_3, V15_3> | undefined, element15?: import("./signal/types").Chain<V15_3, V16_3> | undefined, element16?: import("./signal/types").Chain<V16_3, V17_3> | undefined, element17?: import("./signal/types").Chain<V17_3, V18_3> | undefined, element18?: import("./signal/types").Chain<V18_3, V19_3> | undefined, element19?: import("./signal/types").Chain<V19_3, V20_3> | undefined) => import("./signal/types").Function1<V1_4, Promise<V20_3>>; | ||
}; | ||
connect: <V1_5, V2_4 = V1_5, V3_4 = V2_4, V4_4 = V3_4, V5_4 = V4_4, V6_4 = V5_4, V7_4 = V6_4, V8_4 = V7_4, V9_4 = V8_4, V10_4 = V9_4, V11_4 = V10_4, V12_4 = V11_4, V13_4 = V12_4, V14_4 = V13_4, V15_4 = V14_4, V16_4 = V15_4, V17_4 = V16_4, V18_4 = V17_4, V19_4 = V18_4, V20_4 = V19_4>(element1: import("./signal/types").Chain<V1_5, V2_4>, element2?: import("./signal/types").Chain<V2_4, V3_4> | undefined, element3?: import("./signal/types").Chain<V3_4, V4_4> | undefined, element4?: import("./signal/types").Chain<V4_4, V5_4> | undefined, element5?: import("./signal/types").Chain<V5_4, V6_4> | undefined, element6?: import("./signal/types").Chain<V6_4, V7_4> | undefined, element7?: import("./signal/types").Chain<V7_4, V8_4> | undefined, element8?: import("./signal/types").Chain<V8_4, V9_4> | undefined, element9?: import("./signal/types").Chain<V9_4, V10_4> | undefined, element10?: import("./signal/types").Chain<V10_4, V11_4> | undefined, element11?: import("./signal/types").Chain<V11_4, V12_4> | undefined, element12?: import("./signal/types").Chain<V12_4, V13_4> | undefined, element13?: import("./signal/types").Chain<V13_4, V14_4> | undefined, element14?: import("./signal/types").Chain<V14_4, V15_4> | undefined, element15?: import("./signal/types").Chain<V15_4, V16_4> | undefined, element16?: import("./signal/types").Chain<V16_4, V17_4> | undefined, element17?: import("./signal/types").Chain<V17_4, V18_4> | undefined, element18?: import("./signal/types").Chain<V18_4, V19_4> | undefined, element19?: import("./signal/types").Chain<V19_4, V20_4> | undefined) => import("./signal/types").FunctionVoid; | ||
evaluate: import("./signal/evaluate").EvaluateCall; | ||
function: import("./signal/evaluate").FunctionCall; | ||
connect: <V1_1, V2 = V1_1, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1: import("./signal/types").AnyChain<V1_1, V2>, element2?: import("./signal/types").AnyChain<V2, V3> | undefined, element3?: import("./signal/types").AnyChain<V3, V4> | undefined, element4?: import("./signal/types").AnyChain<V4, V5> | undefined, element5?: import("./signal/types").AnyChain<V5, V6> | undefined, element6?: import("./signal/types").AnyChain<V6, V7> | undefined, element7?: import("./signal/types").AnyChain<V7, V8> | undefined, element8?: import("./signal/types").AnyChain<V8, V9> | undefined, element9?: import("./signal/types").AnyChain<V9, V10> | undefined, element10?: import("./signal/types").AnyChain<V10, V11> | undefined, element11?: import("./signal/types").AnyChain<V11, V12> | undefined, element12?: import("./signal/types").AnyChain<V12, V13> | undefined, element13?: import("./signal/types").AnyChain<V13, V14> | undefined, element14?: import("./signal/types").AnyChain<V14, V15> | undefined, element15?: import("./signal/types").AnyChain<V15, V16> | undefined, element16?: import("./signal/types").AnyChain<V16, V17> | undefined, element17?: import("./signal/types").AnyChain<V17, V18> | undefined, element18?: import("./signal/types").AnyChain<V18, V19> | undefined, element19?: import("./signal/types").AnyChain<V19, V20> | undefined) => import("./signal/types").FunctionVoid; | ||
emit: typeof emit; | ||
@@ -171,3 +166,3 @@ select: typeof select; | ||
passIf: typeof passIf; | ||
catch: <V1_6, V2_5 = V1_6, V3_5 = V2_5, V4_5 = V3_5, V5_5 = V4_5, V6_5 = V5_5, V7_5 = V6_5, V8_5 = V7_5, V9_5 = V8_5, V10_5 = V9_5, V11_5 = V10_5, V12_5 = V11_5, V13_5 = V12_5, V14_5 = V13_5, V15_5 = V14_5, V16_5 = V15_5, V17_5 = V16_5, V18_5 = V17_5, V19_5 = V18_5, V20_5 = V19_5>(element1: import("./signal/types").Chain<V1_6, V2_5>, element2?: import("./signal/types").Chain<V2_5, V3_5> | undefined, element3?: import("./signal/types").Chain<V3_5, V4_5> | undefined, element4?: import("./signal/types").Chain<V4_5, V5_5> | undefined, element5?: import("./signal/types").Chain<V5_5, V6_5> | undefined, element6?: import("./signal/types").Chain<V6_5, V7_5> | undefined, element7?: import("./signal/types").Chain<V7_5, V8_5> | undefined, element8?: import("./signal/types").Chain<V8_5, V9_5> | undefined, element9?: import("./signal/types").Chain<V9_5, V10_5> | undefined, element10?: import("./signal/types").Chain<V10_5, V11_5> | undefined, element11?: import("./signal/types").Chain<V11_5, V12_5> | undefined, element12?: import("./signal/types").Chain<V12_5, V13_5> | undefined, element13?: import("./signal/types").Chain<V13_5, V14_5> | undefined, element14?: import("./signal/types").Chain<V14_5, V15_5> | undefined, element15?: import("./signal/types").Chain<V15_5, V16_5> | undefined, element16?: import("./signal/types").Chain<V16_5, V17_5> | undefined, element17?: import("./signal/types").Chain<V17_5, V18_5> | undefined, element18?: import("./signal/types").Chain<V18_5, V19_5> | undefined, element19?: import("./signal/types").Chain<V19_5, V20_5> | undefined) => import("./signal/types").Chain<V1_6, Error | V20_5>; | ||
catch: import("./signal/catch").CatchCall; | ||
/** | ||
@@ -183,16 +178,16 @@ * Chain multiple elements together. Each element can be a {@link Chain} or a {@link ConnectedChain} | ||
*/ | ||
chain: <V1_7, V2_6 = V1_7, V3_6 = V2_6, V4_6 = V3_6, V5_6 = V4_6, V6_6 = V5_6, V7_6 = V6_6, V8_6 = V7_6, V9_6 = V8_6, V10_6 = V9_6, V11_6 = V10_6, V12_6 = V11_6, V13_6 = V12_6, V14_6 = V13_6, V15_6 = V14_6, V16_6 = V15_6, V17_6 = V16_6, V18_6 = V17_6, V19_6 = V18_6, V20_6 = V19_6>(element1: import("./signal/types").Chain<V1_7, V2_6>, element2?: import("./signal/types").Chain<V2_6, V3_6> | undefined, element3?: import("./signal/types").Chain<V3_6, V4_6> | undefined, element4?: import("./signal/types").Chain<V4_6, V5_6> | undefined, element5?: import("./signal/types").Chain<V5_6, V6_6> | undefined, element6?: import("./signal/types").Chain<V6_6, V7_6> | undefined, element7?: import("./signal/types").Chain<V7_6, V8_6> | undefined, element8?: import("./signal/types").Chain<V8_6, V9_6> | undefined, element9?: import("./signal/types").Chain<V9_6, V10_6> | undefined, element10?: import("./signal/types").Chain<V10_6, V11_6> | undefined, element11?: import("./signal/types").Chain<V11_6, V12_6> | undefined, element12?: import("./signal/types").Chain<V12_6, V13_6> | undefined, element13?: import("./signal/types").Chain<V13_6, V14_6> | undefined, element14?: import("./signal/types").Chain<V14_6, V15_6> | undefined, element15?: import("./signal/types").Chain<V15_6, V16_6> | undefined, element16?: import("./signal/types").Chain<V16_6, V17_6> | undefined, element17?: import("./signal/types").Chain<V17_6, V18_6> | undefined, element18?: import("./signal/types").Chain<V18_6, V19_6> | undefined, element19?: import("./signal/types").Chain<V19_6, V20_6> | undefined) => import("./signal/types").Chain<V1_7, V20_6>; | ||
combine: typeof combine; | ||
chain: import("./signal/chain").ChainCall; | ||
combine: import("./signal/combine").CombineCall; | ||
each: import("./signal/each").EachCall; | ||
merge: typeof merge; | ||
merge: import("./signal/merge").MergeCall; | ||
if: import("./signal/if").IfFn; | ||
ifNot: <V1_8>(condition: import("./signal/types").Function1<V1_8, boolean>) => <V1_9 extends V1_8, V2_7, V3_7 = V2_7, V4_7 = V3_7, V5_7 = V4_7, V6_7 = V5_7, V7_7 = V6_7, V8_7 = V7_7, V9_7 = V8_7, V10_7 = V9_7, V11_7 = V10_7, V12_7 = V11_7, V13_7 = V12_7, V14_7 = V13_7, V15_7 = V14_7, V16_7 = V15_7, V17_7 = V16_7, V18_7 = V17_7, V19_7 = V18_7, V20_7 = V19_7>(element1?: import("./signal/types").Chain<V1_9, V2_7> | undefined, element2?: import("./signal/types").Chain<V2_7, V3_7> | undefined, element3?: import("./signal/types").Chain<V3_7, V4_7> | undefined, element4?: import("./signal/types").Chain<V4_7, V5_7> | undefined, element5?: import("./signal/types").Chain<V5_7, V6_7> | undefined, element6?: import("./signal/types").Chain<V6_7, V7_7> | undefined, element7?: import("./signal/types").Chain<V7_7, V8_7> | undefined, element8?: import("./signal/types").Chain<V8_7, V9_7> | undefined, element9?: import("./signal/types").Chain<V9_7, V10_7> | undefined, element10?: import("./signal/types").Chain<V10_7, V11_7> | undefined, element11?: import("./signal/types").Chain<V11_7, V12_7> | undefined, element12?: import("./signal/types").Chain<V12_7, V13_7> | undefined, element13?: import("./signal/types").Chain<V13_7, V14_7> | undefined, element14?: import("./signal/types").Chain<V14_7, V15_7> | undefined, element15?: import("./signal/types").Chain<V15_7, V16_7> | undefined, element16?: import("./signal/types").Chain<V16_7, V17_7> | undefined, element17?: import("./signal/types").Chain<V17_7, V18_7> | undefined, element18?: import("./signal/types").Chain<V18_7, V19_7> | undefined, element19?: import("./signal/types").Chain<V19_7, V20_7> | undefined) => import("./signal/types").Chain<V1_9, V1_9 | V20_7>; | ||
log: <V_1>(message?: string | undefined) => import("./signal/types").Chain<V_1>; | ||
buffer: <V_2>(size: number) => import("./signal/types").Chain<V_2, V_2[]>; | ||
window: <V_3>(size: number) => import("./signal/types").Chain<V_3, V_3[]>; | ||
ifNot: <V1_2>(condition: import("./signal/types").Function1<V1_2, boolean>) => import("./signal/if").IfCall<V1_2>; | ||
log: <V_1>(message?: string | undefined) => import("./signal/types").SyncChain<V_1>; | ||
buffer: <V_2>(size: number) => import("./signal/types").SyncChain<V_2, V_2[]>; | ||
window: <V_3>(size: number) => import("./signal/types").SyncChain<V_3, V_3[]>; | ||
sidechain: import("./signal/chain").SideChainCall; | ||
passUnique: typeof passUnique; | ||
debounce: <V_4>(ms: number) => import("./signal/types").Chain<V_4, Exclude<V_4, Error> | Exclude<V_4, Exclude<V_4, Error>>>; | ||
debounce: <V_4>(ms: number) => import("./signal/types").AsyncChain<V_4, Exclude<V_4, Error> | Exclude<V_4, Exclude<V_4, Error>>>; | ||
}; | ||
export default _default; | ||
//# sourceMappingURL=signal-ts.d.ts.map |
@@ -14,3 +14,3 @@ export * from './signal/types'; | ||
import { connect } from './signal/connect'; | ||
import { evaluateAsync, evaluateSync, toFunctionSync, toFunctionAsync } from './signal/evaluate'; | ||
import { evaluate, toFunction } from './signal/evaluate'; | ||
import { listenToEvent } from './signal/event'; | ||
@@ -64,10 +64,2 @@ import { merge } from './signal/merge'; | ||
}; | ||
const evaluate = { | ||
sync: evaluateSync, | ||
async: evaluateAsync | ||
}; | ||
const func = { | ||
sync: toFunctionSync, | ||
async: toFunctionAsync | ||
}; | ||
const debounce = (ms) => chain(select(), type.not.isError(awaitFns.latest(select(v => new Promise(resolve => setTimeout(() => resolve(v), ms)))), type.not.isError())); | ||
@@ -83,3 +75,3 @@ export default { | ||
evaluate, | ||
function: func, | ||
function: toFunction, | ||
// adapters | ||
@@ -86,0 +78,0 @@ // solid, |
@@ -1,15 +0,48 @@ | ||
import { Chain } from "./types"; | ||
import { Chain, SyncChain, AsyncChain, WeakChain, AsyncWeakChain } from "./types"; | ||
export interface AssertCall<Range, Condition extends Range> { | ||
<V extends Range>(): Chain<V, Condition>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2>(element1: Chain<InnerFrom, V2>): Chain<V1 | InnerFrom, V2 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, Innerfrom extends Condition & V1, V2, V3>(element1: Chain<Innerfrom, V2>, element2: Chain<V2, V3>): Chain<V1 | Innerfrom, V3 | Exclude<V1, Innerfrom>>; | ||
<V1 extends Range, Innerfrom extends Condition & V1, V2, V3, V4>(element1: Chain<Innerfrom, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>): Chain<V1 | Innerfrom, V4 | Exclude<V1, Innerfrom>>; | ||
<V1 extends Range, Innerfrom extends Condition & V1, V2, V3, V4, V5>(element1: Chain<Innerfrom, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>): Chain<V1 | Innerfrom, V5 | Exclude<V1, Innerfrom>>; | ||
<V1 extends Range, Innerfrom extends Condition & V1, V2, V3, V4, V5, V6>(element1: Chain<Innerfrom, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>): Chain<V1 | Innerfrom, V6 | Exclude<V1, Innerfrom>>; | ||
<V1 extends Range, Innerfrom extends Condition & V1, V2, V3, V4, V5, V6, V7>(element1: Chain<Innerfrom, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>): Chain<V1 | Innerfrom, V7 | Exclude<V1, Innerfrom>>; | ||
<V1 extends Range, Innerfrom extends Condition & V1, V2, V3, V4, V5, V6, V7, V8>(element1: Chain<Innerfrom, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>): Chain<V1 | Innerfrom, V8 | Exclude<V1, Innerfrom>>; | ||
<V1 extends Range, Innerfrom extends Condition & V1, V2, V3, V4, V5, V6, V7, V8, V9>(element1: Chain<Innerfrom, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>): Chain<V1 | Innerfrom, V9 | Exclude<V1, Innerfrom>>; | ||
<V1 extends Range, Innerfrom extends Condition & V1, V2, V3, V4, V5, V6, V7, V8, V9, V10>(element1: Chain<Innerfrom, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>): Chain<V1 | Innerfrom, V10 | Exclude<V1, Innerfrom>>; | ||
<V1 extends Range, Innerfrom extends Condition & V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11>(element1: Chain<Innerfrom, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>): Chain<V1 | Innerfrom, V11 | Exclude<V1, Innerfrom>>; | ||
<V1 extends Range, Innerfrom extends Condition & V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12>(element1: Chain<Innerfrom, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>): Chain<V1 | Innerfrom, V12 | Exclude<V1, Innerfrom>>; | ||
<V extends Range>(): SyncChain<V, Condition>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2>(element1: SyncChain<InnerFrom, V2>): SyncChain<V1 | InnerFrom, V2 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3>(element1: SyncChain<InnerFrom, V2>, element2: SyncChain<V2, V3>): SyncChain<V1 | InnerFrom, V3 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3, V4>(element1: SyncChain<InnerFrom, V2>, element2: SyncChain<V2, V3>, element3: SyncChain<V3, V4>): SyncChain<V1 | InnerFrom, V4 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3, V4, V5>(element1: SyncChain<InnerFrom, V2>, element2: SyncChain<V2, V3>, element3: SyncChain<V3, V4>, element4: SyncChain<V4, V5>): SyncChain<V1 | InnerFrom, V5 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3, V4, V5, V6>(element1: SyncChain<InnerFrom, V2>, element2: SyncChain<V2, V3>, element3: SyncChain<V3, V4>, element4: SyncChain<V4, V5>, element5: SyncChain<V5, V6>): SyncChain<V1 | InnerFrom, V6 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3, V4, V5, V6, V7>(element1: SyncChain<InnerFrom, V2>, element2: SyncChain<V2, V3>, element3: SyncChain<V3, V4>, element4: SyncChain<V4, V5>, element5: SyncChain<V5, V6>, element6: SyncChain<V6, V7>): SyncChain<V1 | InnerFrom, V7 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3, V4, V5, V6, V7, V8>(element1: SyncChain<InnerFrom, V2>, element2: SyncChain<V2, V3>, element3: SyncChain<V3, V4>, element4: SyncChain<V4, V5>, element5: SyncChain<V5, V6>, element6: SyncChain<V6, V7>, element7: SyncChain<V7, V8>): SyncChain<V1 | InnerFrom, V8 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3, V4, V5, V6, V7, V8, V9>(element1: SyncChain<InnerFrom, V2>, element2: SyncChain<V2, V3>, element3: SyncChain<V3, V4>, element4: SyncChain<V4, V5>, element5: SyncChain<V5, V6>, element6: SyncChain<V6, V7>, element7: SyncChain<V7, V8>, element8: SyncChain<V8, V9>): SyncChain<V1 | InnerFrom, V9 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3, V4, V5, V6, V7, V8, V9, V10>(element1: SyncChain<InnerFrom, V2>, element2: SyncChain<V2, V3>, element3: SyncChain<V3, V4>, element4: SyncChain<V4, V5>, element5: SyncChain<V5, V6>, element6: SyncChain<V6, V7>, element7: SyncChain<V7, V8>, element8: SyncChain<V8, V9>, element9: SyncChain<V9, V10>): SyncChain<V1 | InnerFrom, V10 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11>(element1: SyncChain<InnerFrom, V2>, element2: SyncChain<V2, V3>, element3: SyncChain<V3, V4>, element4: SyncChain<V4, V5>, element5: SyncChain<V5, V6>, element6: SyncChain<V6, V7>, element7: SyncChain<V7, V8>, element8: SyncChain<V8, V9>, element9: SyncChain<V9, V10>, element10: SyncChain<V10, V11>): SyncChain<V1 | InnerFrom, V11 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12>(element1: SyncChain<InnerFrom, V2>, element2: SyncChain<V2, V3>, element3: SyncChain<V3, V4>, element4: SyncChain<V4, V5>, element5: SyncChain<V5, V6>, element6: SyncChain<V6, V7>, element7: SyncChain<V7, V8>, element8: SyncChain<V8, V9>, element9: SyncChain<V9, V10>, element10: SyncChain<V10, V11>, element11: SyncChain<V11, V12>): SyncChain<V1 | InnerFrom, V12 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2>(element1: AsyncChain<InnerFrom, V2>): AsyncChain<V1 | InnerFrom, V2 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3>(element1: AsyncChain<InnerFrom, V2>, element2: AsyncChain<V2, V3>): AsyncChain<V1 | InnerFrom, V3 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3, V4>(element1: AsyncChain<InnerFrom, V2>, element2: AsyncChain<V2, V3>, element3: AsyncChain<V3, V4>): AsyncChain<V1 | InnerFrom, V4 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3, V4, V5>(element1: AsyncChain<InnerFrom, V2>, element2: AsyncChain<V2, V3>, element3: AsyncChain<V3, V4>, element4: AsyncChain<V4, V5>): AsyncChain<V1 | InnerFrom, V5 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3, V4, V5, V6>(element1: AsyncChain<InnerFrom, V2>, element2: AsyncChain<V2, V3>, element3: AsyncChain<V3, V4>, element4: AsyncChain<V4, V5>, element5: AsyncChain<V5, V6>): AsyncChain<V1 | InnerFrom, V6 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3, V4, V5, V6, V7>(element1: AsyncChain<InnerFrom, V2>, element2: AsyncChain<V2, V3>, element3: AsyncChain<V3, V4>, element4: AsyncChain<V4, V5>, element5: AsyncChain<V5, V6>, element6: AsyncChain<V6, V7>): AsyncChain<V1 | InnerFrom, V7 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3, V4, V5, V6, V7, V8>(element1: AsyncChain<InnerFrom, V2>, element2: AsyncChain<V2, V3>, element3: AsyncChain<V3, V4>, element4: AsyncChain<V4, V5>, element5: AsyncChain<V5, V6>, element6: AsyncChain<V6, V7>, element7: AsyncChain<V7, V8>): AsyncChain<V1 | InnerFrom, V8 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3, V4, V5, V6, V7, V8, V9>(element1: AsyncChain<InnerFrom, V2>, element2: AsyncChain<V2, V3>, element3: AsyncChain<V3, V4>, element4: AsyncChain<V4, V5>, element5: AsyncChain<V5, V6>, element6: AsyncChain<V6, V7>, element7: AsyncChain<V7, V8>, element8: AsyncChain<V8, V9>): AsyncChain<V1 | InnerFrom, V9 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3, V4, V5, V6, V7, V8, V9, V10>(element1: AsyncChain<InnerFrom, V2>, element2: AsyncChain<V2, V3>, element3: AsyncChain<V3, V4>, element4: AsyncChain<V4, V5>, element5: AsyncChain<V5, V6>, element6: AsyncChain<V6, V7>, element7: AsyncChain<V7, V8>, element8: AsyncChain<V8, V9>, element9: AsyncChain<V9, V10>): AsyncChain<V1 | InnerFrom, V10 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11>(element1: AsyncChain<InnerFrom, V2>, element2: AsyncChain<V2, V3>, element3: AsyncChain<V3, V4>, element4: AsyncChain<V4, V5>, element5: AsyncChain<V5, V6>, element6: AsyncChain<V6, V7>, element7: AsyncChain<V7, V8>, element8: AsyncChain<V8, V9>, element9: AsyncChain<V9, V10>, element10: AsyncChain<V10, V11>): AsyncChain<V1 | InnerFrom, V11 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12>(element1: AsyncChain<InnerFrom, V2>, element2: AsyncChain<V2, V3>, element3: AsyncChain<V3, V4>, element4: AsyncChain<V4, V5>, element5: AsyncChain<V5, V6>, element6: AsyncChain<V6, V7>, element7: AsyncChain<V7, V8>, element8: AsyncChain<V8, V9>, element9: AsyncChain<V9, V10>, element10: AsyncChain<V10, V11>, element11: AsyncChain<V11, V12>): AsyncChain<V1 | InnerFrom, V12 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2>(element1: WeakChain<InnerFrom, V2>): WeakChain<V1 | InnerFrom, V2 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3>(element1: WeakChain<InnerFrom, V2>, element2: WeakChain<V2, V3>): WeakChain<V1 | InnerFrom, V3 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3, V4>(element1: WeakChain<InnerFrom, V2>, element2: WeakChain<V2, V3>, element3: WeakChain<V3, V4>): WeakChain<V1 | InnerFrom, V4 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3, V4, V5>(element1: WeakChain<InnerFrom, V2>, element2: WeakChain<V2, V3>, element3: WeakChain<V3, V4>, element4: WeakChain<V4, V5>): WeakChain<V1 | InnerFrom, V5 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3, V4, V5, V6>(element1: WeakChain<InnerFrom, V2>, element2: WeakChain<V2, V3>, element3: WeakChain<V3, V4>, element4: WeakChain<V4, V5>, element5: WeakChain<V5, V6>): WeakChain<V1 | InnerFrom, V6 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3, V4, V5, V6, V7>(element1: WeakChain<InnerFrom, V2>, element2: WeakChain<V2, V3>, element3: WeakChain<V3, V4>, element4: WeakChain<V4, V5>, element5: WeakChain<V5, V6>, element6: WeakChain<V6, V7>): WeakChain<V1 | InnerFrom, V7 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3, V4, V5, V6, V7, V8>(element1: WeakChain<InnerFrom, V2>, element2: WeakChain<V2, V3>, element3: WeakChain<V3, V4>, element4: WeakChain<V4, V5>, element5: WeakChain<V5, V6>, element6: WeakChain<V6, V7>, element7: WeakChain<V7, V8>): WeakChain<V1 | InnerFrom, V8 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3, V4, V5, V6, V7, V8, V9>(element1: WeakChain<InnerFrom, V2>, element2: WeakChain<V2, V3>, element3: WeakChain<V3, V4>, element4: WeakChain<V4, V5>, element5: WeakChain<V5, V6>, element6: WeakChain<V6, V7>, element7: WeakChain<V7, V8>, element8: WeakChain<V8, V9>): WeakChain<V1 | InnerFrom, V9 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3, V4, V5, V6, V7, V8, V9, V10>(element1: WeakChain<InnerFrom, V2>, element2: WeakChain<V2, V3>, element3: WeakChain<V3, V4>, element4: WeakChain<V4, V5>, element5: WeakChain<V5, V6>, element6: WeakChain<V6, V7>, element7: WeakChain<V7, V8>, element8: WeakChain<V8, V9>, element9: WeakChain<V9, V10>): WeakChain<V1 | InnerFrom, V10 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11>(element1: WeakChain<InnerFrom, V2>, element2: WeakChain<V2, V3>, element3: WeakChain<V3, V4>, element4: WeakChain<V4, V5>, element5: WeakChain<V5, V6>, element6: WeakChain<V6, V7>, element7: WeakChain<V7, V8>, element8: WeakChain<V8, V9>, element9: WeakChain<V9, V10>, element10: WeakChain<V10, V11>): WeakChain<V1 | InnerFrom, V11 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12>(element1: WeakChain<InnerFrom, V2>, element2: WeakChain<V2, V3>, element3: WeakChain<V3, V4>, element4: WeakChain<V4, V5>, element5: WeakChain<V5, V6>, element6: WeakChain<V6, V7>, element7: WeakChain<V7, V8>, element8: WeakChain<V8, V9>, element9: WeakChain<V9, V10>, element10: WeakChain<V10, V11>, element11: WeakChain<V11, V12>): WeakChain<V1 | InnerFrom, V12 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2>(element1: AsyncWeakChain<InnerFrom, V2>): AsyncWeakChain<V1 | InnerFrom, V2 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3>(element1: AsyncWeakChain<InnerFrom, V2>, element2: AsyncWeakChain<V2, V3>): AsyncWeakChain<V1 | InnerFrom, V3 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3, V4>(element1: AsyncWeakChain<InnerFrom, V2>, element2: AsyncWeakChain<V2, V3>, element3: AsyncWeakChain<V3, V4>): AsyncWeakChain<V1 | InnerFrom, V4 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3, V4, V5>(element1: AsyncWeakChain<InnerFrom, V2>, element2: AsyncWeakChain<V2, V3>, element3: AsyncWeakChain<V3, V4>, element4: AsyncWeakChain<V4, V5>): AsyncWeakChain<V1 | InnerFrom, V5 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3, V4, V5, V6>(element1: AsyncWeakChain<InnerFrom, V2>, element2: AsyncWeakChain<V2, V3>, element3: AsyncWeakChain<V3, V4>, element4: AsyncWeakChain<V4, V5>, element5: AsyncWeakChain<V5, V6>): AsyncWeakChain<V1 | InnerFrom, V6 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3, V4, V5, V6, V7>(element1: AsyncWeakChain<InnerFrom, V2>, element2: AsyncWeakChain<V2, V3>, element3: AsyncWeakChain<V3, V4>, element4: AsyncWeakChain<V4, V5>, element5: AsyncWeakChain<V5, V6>, element6: AsyncWeakChain<V6, V7>): AsyncWeakChain<V1 | InnerFrom, V7 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3, V4, V5, V6, V7, V8>(element1: AsyncWeakChain<InnerFrom, V2>, element2: AsyncWeakChain<V2, V3>, element3: AsyncWeakChain<V3, V4>, element4: AsyncWeakChain<V4, V5>, element5: AsyncWeakChain<V5, V6>, element6: AsyncWeakChain<V6, V7>, element7: AsyncWeakChain<V7, V8>): AsyncWeakChain<V1 | InnerFrom, V8 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3, V4, V5, V6, V7, V8, V9>(element1: AsyncWeakChain<InnerFrom, V2>, element2: AsyncWeakChain<V2, V3>, element3: AsyncWeakChain<V3, V4>, element4: AsyncWeakChain<V4, V5>, element5: AsyncWeakChain<V5, V6>, element6: AsyncWeakChain<V6, V7>, element7: AsyncWeakChain<V7, V8>, element8: AsyncWeakChain<V8, V9>): AsyncWeakChain<V1 | InnerFrom, V9 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3, V4, V5, V6, V7, V8, V9, V10>(element1: AsyncWeakChain<InnerFrom, V2>, element2: AsyncWeakChain<V2, V3>, element3: AsyncWeakChain<V3, V4>, element4: AsyncWeakChain<V4, V5>, element5: AsyncWeakChain<V5, V6>, element6: AsyncWeakChain<V6, V7>, element7: AsyncWeakChain<V7, V8>, element8: AsyncWeakChain<V8, V9>, element9: AsyncWeakChain<V9, V10>): AsyncWeakChain<V1 | InnerFrom, V10 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11>(element1: AsyncWeakChain<InnerFrom, V2>, element2: AsyncWeakChain<V2, V3>, element3: AsyncWeakChain<V3, V4>, element4: AsyncWeakChain<V4, V5>, element5: AsyncWeakChain<V5, V6>, element6: AsyncWeakChain<V6, V7>, element7: AsyncWeakChain<V7, V8>, element8: AsyncWeakChain<V8, V9>, element9: AsyncWeakChain<V9, V10>, element10: AsyncWeakChain<V10, V11>): AsyncWeakChain<V1 | InnerFrom, V11 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Condition & V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12>(element1: AsyncWeakChain<InnerFrom, V2>, element2: AsyncWeakChain<V2, V3>, element3: AsyncWeakChain<V3, V4>, element4: AsyncWeakChain<V4, V5>, element5: AsyncWeakChain<V5, V6>, element6: AsyncWeakChain<V6, V7>, element7: AsyncWeakChain<V7, V8>, element8: AsyncWeakChain<V8, V9>, element9: AsyncWeakChain<V9, V10>, element10: AsyncWeakChain<V10, V11>, element11: AsyncWeakChain<V11, V12>): AsyncWeakChain<V1 | InnerFrom, V12 | Exclude<V1, InnerFrom>>; | ||
(first: Chain<unknown, Condition>, ...elements: Chain<unknown, unknown>[]): Chain<unknown, unknown | Exclude<Range, Condition>>; | ||
@@ -20,14 +53,47 @@ } | ||
export interface AssertNotCall<Range, Condition extends Range> { | ||
<V extends Range>(): Chain<V, Exclude<V, Condition>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2>(element1: Chain<InnerFrom, V2>): Chain<V1 | InnerFrom, V2 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3>(element1: Chain<InnerFrom, V2>, element2: Chain<V2, V3>): Chain<V1 | InnerFrom, V3 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4>(element1: Chain<InnerFrom, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>): Chain<V1 | InnerFrom, V4 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5>(element1: Chain<InnerFrom, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>): Chain<V1 | InnerFrom, V5 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5, V6>(element1: Chain<InnerFrom, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>): Chain<V1 | InnerFrom, V6 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5, V6, V7>(element1: Chain<InnerFrom, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>): Chain<V1 | InnerFrom, V7 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5, V6, V7, V8>(element1: Chain<InnerFrom, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>): Chain<V1 | InnerFrom, V8 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5, V6, V7, V8, V9>(element1: Chain<InnerFrom, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>): Chain<V1 | InnerFrom, V9 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5, V6, V7, V8, V9, V10>(element1: Chain<InnerFrom, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>): Chain<V1 | InnerFrom, V10 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11>(element1: Chain<InnerFrom, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>): Chain<V1 | InnerFrom, V11 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12>(element1: Chain<InnerFrom, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>): Chain<V1 | InnerFrom, V12 | Exclude<V1, InnerFrom>>; | ||
<V extends Range>(): SyncChain<V, Exclude<V, Condition>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2>(element1: SyncChain<InnerFrom, V2>): SyncChain<V1 | InnerFrom, V2 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3>(element1: SyncChain<InnerFrom, V2>, element2: SyncChain<V2, V3>): SyncChain<V1 | InnerFrom, V3 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4>(element1: SyncChain<InnerFrom, V2>, element2: SyncChain<V2, V3>, element3: SyncChain<V3, V4>): SyncChain<V1 | InnerFrom, V4 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5>(element1: SyncChain<InnerFrom, V2>, element2: SyncChain<V2, V3>, element3: SyncChain<V3, V4>, element4: SyncChain<V4, V5>): SyncChain<V1 | InnerFrom, V5 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5, V6>(element1: SyncChain<InnerFrom, V2>, element2: SyncChain<V2, V3>, element3: SyncChain<V3, V4>, element4: SyncChain<V4, V5>, element5: SyncChain<V5, V6>): SyncChain<V1 | InnerFrom, V6 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5, V6, V7>(element1: SyncChain<InnerFrom, V2>, element2: SyncChain<V2, V3>, element3: SyncChain<V3, V4>, element4: SyncChain<V4, V5>, element5: SyncChain<V5, V6>, element6: SyncChain<V6, V7>): SyncChain<V1 | InnerFrom, V7 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5, V6, V7, V8>(element1: SyncChain<InnerFrom, V2>, element2: SyncChain<V2, V3>, element3: SyncChain<V3, V4>, element4: SyncChain<V4, V5>, element5: SyncChain<V5, V6>, element6: SyncChain<V6, V7>, element7: SyncChain<V7, V8>): SyncChain<V1 | InnerFrom, V8 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5, V6, V7, V8, V9>(element1: SyncChain<InnerFrom, V2>, element2: SyncChain<V2, V3>, element3: SyncChain<V3, V4>, element4: SyncChain<V4, V5>, element5: SyncChain<V5, V6>, element6: SyncChain<V6, V7>, element7: SyncChain<V7, V8>, element8: SyncChain<V8, V9>): SyncChain<V1 | InnerFrom, V9 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5, V6, V7, V8, V9, V10>(element1: SyncChain<InnerFrom, V2>, element2: SyncChain<V2, V3>, element3: SyncChain<V3, V4>, element4: SyncChain<V4, V5>, element5: SyncChain<V5, V6>, element6: SyncChain<V6, V7>, element7: SyncChain<V7, V8>, element8: SyncChain<V8, V9>, element9: SyncChain<V9, V10>): SyncChain<V1 | InnerFrom, V10 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11>(element1: SyncChain<InnerFrom, V2>, element2: SyncChain<V2, V3>, element3: SyncChain<V3, V4>, element4: SyncChain<V4, V5>, element5: SyncChain<V5, V6>, element6: SyncChain<V6, V7>, element7: SyncChain<V7, V8>, element8: SyncChain<V8, V9>, element9: SyncChain<V9, V10>, element10: SyncChain<V10, V11>): SyncChain<V1 | InnerFrom, V11 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12>(element1: SyncChain<InnerFrom, V2>, element2: SyncChain<V2, V3>, element3: SyncChain<V3, V4>, element4: SyncChain<V4, V5>, element5: SyncChain<V5, V6>, element6: SyncChain<V6, V7>, element7: SyncChain<V7, V8>, element8: SyncChain<V8, V9>, element9: SyncChain<V9, V10>, element10: SyncChain<V10, V11>, element11: SyncChain<V11, V12>): SyncChain<V1 | InnerFrom, V12 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2>(element1: AsyncChain<InnerFrom, V2>): AsyncChain<V1 | InnerFrom, V2 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3>(element1: AsyncChain<InnerFrom, V2>, element2: AsyncChain<V2, V3>): AsyncChain<V1 | InnerFrom, V3 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4>(element1: AsyncChain<InnerFrom, V2>, element2: AsyncChain<V2, V3>, element3: AsyncChain<V3, V4>): AsyncChain<V1 | InnerFrom, V4 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5>(element1: AsyncChain<InnerFrom, V2>, element2: AsyncChain<V2, V3>, element3: AsyncChain<V3, V4>, element4: AsyncChain<V4, V5>): AsyncChain<V1 | InnerFrom, V5 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5, V6>(element1: AsyncChain<InnerFrom, V2>, element2: AsyncChain<V2, V3>, element3: AsyncChain<V3, V4>, element4: AsyncChain<V4, V5>, element5: AsyncChain<V5, V6>): AsyncChain<V1 | InnerFrom, V6 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5, V6, V7>(element1: AsyncChain<InnerFrom, V2>, element2: AsyncChain<V2, V3>, element3: AsyncChain<V3, V4>, element4: AsyncChain<V4, V5>, element5: AsyncChain<V5, V6>, element6: AsyncChain<V6, V7>): AsyncChain<V1 | InnerFrom, V7 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5, V6, V7, V8>(element1: AsyncChain<InnerFrom, V2>, element2: AsyncChain<V2, V3>, element3: AsyncChain<V3, V4>, element4: AsyncChain<V4, V5>, element5: AsyncChain<V5, V6>, element6: AsyncChain<V6, V7>, element7: AsyncChain<V7, V8>): AsyncChain<V1 | InnerFrom, V8 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5, V6, V7, V8, V9>(element1: AsyncChain<InnerFrom, V2>, element2: AsyncChain<V2, V3>, element3: AsyncChain<V3, V4>, element4: AsyncChain<V4, V5>, element5: AsyncChain<V5, V6>, element6: AsyncChain<V6, V7>, element7: AsyncChain<V7, V8>, element8: AsyncChain<V8, V9>): AsyncChain<V1 | InnerFrom, V9 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5, V6, V7, V8, V9, V10>(element1: AsyncChain<InnerFrom, V2>, element2: AsyncChain<V2, V3>, element3: AsyncChain<V3, V4>, element4: AsyncChain<V4, V5>, element5: AsyncChain<V5, V6>, element6: AsyncChain<V6, V7>, element7: AsyncChain<V7, V8>, element8: AsyncChain<V8, V9>, element9: AsyncChain<V9, V10>): AsyncChain<V1 | InnerFrom, V10 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11>(element1: AsyncChain<InnerFrom, V2>, element2: AsyncChain<V2, V3>, element3: AsyncChain<V3, V4>, element4: AsyncChain<V4, V5>, element5: AsyncChain<V5, V6>, element6: AsyncChain<V6, V7>, element7: AsyncChain<V7, V8>, element8: AsyncChain<V8, V9>, element9: AsyncChain<V9, V10>, element10: AsyncChain<V10, V11>): AsyncChain<V1 | InnerFrom, V11 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12>(element1: AsyncChain<InnerFrom, V2>, element2: AsyncChain<V2, V3>, element3: AsyncChain<V3, V4>, element4: AsyncChain<V4, V5>, element5: AsyncChain<V5, V6>, element6: AsyncChain<V6, V7>, element7: AsyncChain<V7, V8>, element8: AsyncChain<V8, V9>, element9: AsyncChain<V9, V10>, element10: AsyncChain<V10, V11>, element11: AsyncChain<V11, V12>): AsyncChain<V1 | InnerFrom, V12 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2>(element1: WeakChain<InnerFrom, V2>): WeakChain<V1 | InnerFrom, V2 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3>(element1: WeakChain<InnerFrom, V2>, element2: WeakChain<V2, V3>): WeakChain<V1 | InnerFrom, V3 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4>(element1: WeakChain<InnerFrom, V2>, element2: WeakChain<V2, V3>, element3: WeakChain<V3, V4>): WeakChain<V1 | InnerFrom, V4 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5>(element1: WeakChain<InnerFrom, V2>, element2: WeakChain<V2, V3>, element3: WeakChain<V3, V4>, element4: WeakChain<V4, V5>): WeakChain<V1 | InnerFrom, V5 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5, V6>(element1: WeakChain<InnerFrom, V2>, element2: WeakChain<V2, V3>, element3: WeakChain<V3, V4>, element4: WeakChain<V4, V5>, element5: WeakChain<V5, V6>): WeakChain<V1 | InnerFrom, V6 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5, V6, V7>(element1: WeakChain<InnerFrom, V2>, element2: WeakChain<V2, V3>, element3: WeakChain<V3, V4>, element4: WeakChain<V4, V5>, element5: WeakChain<V5, V6>, element6: WeakChain<V6, V7>): WeakChain<V1 | InnerFrom, V7 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5, V6, V7, V8>(element1: WeakChain<InnerFrom, V2>, element2: WeakChain<V2, V3>, element3: WeakChain<V3, V4>, element4: WeakChain<V4, V5>, element5: WeakChain<V5, V6>, element6: WeakChain<V6, V7>, element7: WeakChain<V7, V8>): WeakChain<V1 | InnerFrom, V8 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5, V6, V7, V8, V9>(element1: WeakChain<InnerFrom, V2>, element2: WeakChain<V2, V3>, element3: WeakChain<V3, V4>, element4: WeakChain<V4, V5>, element5: WeakChain<V5, V6>, element6: WeakChain<V6, V7>, element7: WeakChain<V7, V8>, element8: WeakChain<V8, V9>): WeakChain<V1 | InnerFrom, V9 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5, V6, V7, V8, V9, V10>(element1: WeakChain<InnerFrom, V2>, element2: WeakChain<V2, V3>, element3: WeakChain<V3, V4>, element4: WeakChain<V4, V5>, element5: WeakChain<V5, V6>, element6: WeakChain<V6, V7>, element7: WeakChain<V7, V8>, element8: WeakChain<V8, V9>, element9: WeakChain<V9, V10>): WeakChain<V1 | InnerFrom, V10 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11>(element1: WeakChain<InnerFrom, V2>, element2: WeakChain<V2, V3>, element3: WeakChain<V3, V4>, element4: WeakChain<V4, V5>, element5: WeakChain<V5, V6>, element6: WeakChain<V6, V7>, element7: WeakChain<V7, V8>, element8: WeakChain<V8, V9>, element9: WeakChain<V9, V10>, element10: WeakChain<V10, V11>): WeakChain<V1 | InnerFrom, V11 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12>(element1: WeakChain<InnerFrom, V2>, element2: WeakChain<V2, V3>, element3: WeakChain<V3, V4>, element4: WeakChain<V4, V5>, element5: WeakChain<V5, V6>, element6: WeakChain<V6, V7>, element7: WeakChain<V7, V8>, element8: WeakChain<V8, V9>, element9: WeakChain<V9, V10>, element10: WeakChain<V10, V11>, element11: WeakChain<V11, V12>): WeakChain<V1 | InnerFrom, V12 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2>(element1: AsyncWeakChain<InnerFrom, V2>): AsyncWeakChain<V1 | InnerFrom, V2 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3>(element1: AsyncWeakChain<InnerFrom, V2>, element2: AsyncWeakChain<V2, V3>): AsyncWeakChain<V1 | InnerFrom, V3 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4>(element1: AsyncWeakChain<InnerFrom, V2>, element2: AsyncWeakChain<V2, V3>, element3: AsyncWeakChain<V3, V4>): AsyncWeakChain<V1 | InnerFrom, V4 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5>(element1: AsyncWeakChain<InnerFrom, V2>, element2: AsyncWeakChain<V2, V3>, element3: AsyncWeakChain<V3, V4>, element4: AsyncWeakChain<V4, V5>): AsyncWeakChain<V1 | InnerFrom, V5 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5, V6>(element1: AsyncWeakChain<InnerFrom, V2>, element2: AsyncWeakChain<V2, V3>, element3: AsyncWeakChain<V3, V4>, element4: AsyncWeakChain<V4, V5>, element5: AsyncWeakChain<V5, V6>): AsyncWeakChain<V1 | InnerFrom, V6 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5, V6, V7>(element1: AsyncWeakChain<InnerFrom, V2>, element2: AsyncWeakChain<V2, V3>, element3: AsyncWeakChain<V3, V4>, element4: AsyncWeakChain<V4, V5>, element5: AsyncWeakChain<V5, V6>, element6: AsyncWeakChain<V6, V7>): AsyncWeakChain<V1 | InnerFrom, V7 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5, V6, V7, V8>(element1: AsyncWeakChain<InnerFrom, V2>, element2: AsyncWeakChain<V2, V3>, element3: AsyncWeakChain<V3, V4>, element4: AsyncWeakChain<V4, V5>, element5: AsyncWeakChain<V5, V6>, element6: AsyncWeakChain<V6, V7>, element7: AsyncWeakChain<V7, V8>): AsyncWeakChain<V1 | InnerFrom, V8 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5, V6, V7, V8, V9>(element1: AsyncWeakChain<InnerFrom, V2>, element2: AsyncWeakChain<V2, V3>, element3: AsyncWeakChain<V3, V4>, element4: AsyncWeakChain<V4, V5>, element5: AsyncWeakChain<V5, V6>, element6: AsyncWeakChain<V6, V7>, element7: AsyncWeakChain<V7, V8>, element8: AsyncWeakChain<V8, V9>): AsyncWeakChain<V1 | InnerFrom, V9 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5, V6, V7, V8, V9, V10>(element1: AsyncWeakChain<InnerFrom, V2>, element2: AsyncWeakChain<V2, V3>, element3: AsyncWeakChain<V3, V4>, element4: AsyncWeakChain<V4, V5>, element5: AsyncWeakChain<V5, V6>, element6: AsyncWeakChain<V6, V7>, element7: AsyncWeakChain<V7, V8>, element8: AsyncWeakChain<V8, V9>, element9: AsyncWeakChain<V9, V10>): AsyncWeakChain<V1 | InnerFrom, V10 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11>(element1: AsyncWeakChain<InnerFrom, V2>, element2: AsyncWeakChain<V2, V3>, element3: AsyncWeakChain<V3, V4>, element4: AsyncWeakChain<V4, V5>, element5: AsyncWeakChain<V5, V6>, element6: AsyncWeakChain<V6, V7>, element7: AsyncWeakChain<V7, V8>, element8: AsyncWeakChain<V8, V9>, element9: AsyncWeakChain<V9, V10>, element10: AsyncWeakChain<V10, V11>): AsyncWeakChain<V1 | InnerFrom, V11 | Exclude<V1, InnerFrom>>; | ||
<V1 extends Range, InnerFrom extends Exclude<V1, Condition>, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12>(element1: AsyncWeakChain<InnerFrom, V2>, element2: AsyncWeakChain<V2, V3>, element3: AsyncWeakChain<V3, V4>, element4: AsyncWeakChain<V4, V5>, element5: AsyncWeakChain<V5, V6>, element6: AsyncWeakChain<V6, V7>, element7: AsyncWeakChain<V7, V8>, element8: AsyncWeakChain<V8, V9>, element9: AsyncWeakChain<V9, V10>, element10: AsyncWeakChain<V10, V11>, element11: AsyncWeakChain<V11, V12>): AsyncWeakChain<V1 | InnerFrom, V12 | Exclude<V1, InnerFrom>>; | ||
(first: Chain<Condition, unknown>, ...elements: Chain<unknown, unknown>[]): Chain<unknown, unknown | Exclude<Range, Condition>>; | ||
@@ -34,0 +100,0 @@ } |
import { chain } from './chain'; | ||
// @ts-expect-error | ||
export const assert = (condition, message) => (listen1, ...additionalListeners) => { | ||
@@ -12,5 +13,5 @@ if (!listen1) { | ||
const listen = chain(listen1, ...additionalListeners); | ||
return (next, parameter, context) => { | ||
return (next, parameter, context, status) => { | ||
if (condition(parameter)) { | ||
return listen(next, parameter, context); | ||
return listen(next, parameter, context, status); | ||
} | ||
@@ -20,2 +21,3 @@ return next(parameter); | ||
}; | ||
// @ts-expect-error | ||
export const assertNot = (condition, message) => (listen1, ...additionalListeners) => { | ||
@@ -31,5 +33,5 @@ if (!listen1) { | ||
const listen = chain(listen1, ...additionalListeners); | ||
return (next, parameter, context) => { | ||
return (next, parameter, context, status) => { | ||
if (!condition(parameter)) { | ||
return listen(next, parameter, context); | ||
return listen(next, parameter, context, status); | ||
} | ||
@@ -36,0 +38,0 @@ return next(parameter); |
@@ -1,23 +0,25 @@ | ||
import type { Chain } from './types'; | ||
import type { AsyncChain, AsyncWeakChain } from './types'; | ||
export interface AwaitCall { | ||
<V1, V2>(element1: Chain<V1, Promise<V2>>): Chain<V1, V2 | Error>; | ||
<V1, V2, V3>(element1: Chain<V1, V2>, element2: Chain<V2, Promise<V3>>): Chain<V1, V3 | Error>; | ||
<V1, V2, V3, V4>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, Promise<V4>>): Chain<V1, V4 | Error>; | ||
<V1, V2, V3, V4, V5>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, Promise<V5>>): Chain<V1, V5 | Error>; | ||
<V1, V2, V3, V4, V5, V6>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, Promise<V6>>): Chain<V1, V6 | Error>; | ||
<V1, V2, V3, V4, V5, V6, V7>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, Promise<V7>>): Chain<V1, V7 | Error>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, Promise<V8>>): Chain<V1, V8 | Error>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, Promise<V9>>): Chain<V1, V9 | Error>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, Promise<V10>>): Chain<V1, V10 | Error>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, Promise<V11>>): Chain<V1, V11 | Error>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, Promise<V12>>): Chain<V1, V12 | Error>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>, element12: Chain<V12, Promise<V13>>): Chain<V1, V13 | Error>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>, element12: Chain<V12, V13>, element13: Chain<V13, Promise<V14>>): Chain<V1, V14 | Error>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>, element12: Chain<V12, V13>, element13: Chain<V13, V14>, element14: Chain<V14, Promise<V15>>): Chain<V1, V15 | Error>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>, element12: Chain<V12, V13>, element13: Chain<V13, V14>, element14: Chain<V14, V15>, element15: Chain<V15, Promise<V16>>): Chain<V1, V16 | Error>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>, element12: Chain<V12, V13>, element13: Chain<V13, V14>, element14: Chain<V14, V15>, element15: Chain<V15, V16>, element16: Chain<V16, Promise<V17>>): Chain<V1, V17 | Error>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>, element12: Chain<V12, V13>, element13: Chain<V13, V14>, element14: Chain<V14, V15>, element15: Chain<V15, V16>, element16: Chain<V16, V17>, element17: Chain<V17, Promise<V18>>): Chain<V1, V18 | Error>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>, element12: Chain<V12, V13>, element13: Chain<V13, V14>, element14: Chain<V14, V15>, element15: Chain<V15, V16>, element16: Chain<V16, V17>, element17: Chain<V17, V18>, element18: Chain<V18, Promise<V19>>): Chain<V1, V19 | Error>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>, element12: Chain<V12, V13>, element13: Chain<V13, V14>, element14: Chain<V14, V15>, element15: Chain<V15, V16>, element16: Chain<V16, V17>, element17: Chain<V17, V18>, element18: Chain<V18, V19>, element19: Chain<V19, Promise<V20>>): Chain<V1, V20 | Error>; | ||
(first: Chain<unknown, unknown>, ...elements: Chain<unknown, unknown>[]): Chain<unknown | Error, unknown>; | ||
<V1, V2>(element1: AsyncChain<V1, Promise<V2>>): AsyncChain<V1, V2 | Error>; | ||
<V1, V2, V3>(element1: AsyncChain<V1, V2>, element2: AsyncChain<V2, Promise<V3>>): AsyncChain<V1, V3 | Error>; | ||
<V1, V2, V3, V4>(element1: AsyncChain<V1, V2>, element2: AsyncChain<V2, V3>, element3: AsyncChain<V3, Promise<V4>>): AsyncChain<V1, V4 | Error>; | ||
<V1, V2, V3, V4, V5>(element1: AsyncChain<V1, V2>, element2: AsyncChain<V2, V3>, element3: AsyncChain<V3, V4>, element4: AsyncChain<V4, Promise<V5>>): AsyncChain<V1, V5 | Error>; | ||
<V1, V2, V3, V4, V5, V6>(element1: AsyncChain<V1, V2>, element2: AsyncChain<V2, V3>, element3: AsyncChain<V3, V4>, element4: AsyncChain<V4, V5>, element5: AsyncChain<V5, Promise<V6>>): AsyncChain<V1, V6 | Error>; | ||
<V1, V2, V3, V4, V5, V6, V7>(element1: AsyncChain<V1, V2>, element2: AsyncChain<V2, V3>, element3: AsyncChain<V3, V4>, element4: AsyncChain<V4, V5>, element5: AsyncChain<V5, V6>, element6: AsyncChain<V6, Promise<V7>>): AsyncChain<V1, V7 | Error>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8>(element1: AsyncChain<V1, V2>, element2: AsyncChain<V2, V3>, element3: AsyncChain<V3, V4>, element4: AsyncChain<V4, V5>, element5: AsyncChain<V5, V6>, element6: AsyncChain<V6, V7>, element7: AsyncChain<V7, Promise<V8>>): AsyncChain<V1, V8 | Error>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9>(element1: AsyncChain<V1, V2>, element2: AsyncChain<V2, V3>, element3: AsyncChain<V3, V4>, element4: AsyncChain<V4, V5>, element5: AsyncChain<V5, V6>, element6: AsyncChain<V6, V7>, element7: AsyncChain<V7, V8>, element8: AsyncChain<V8, Promise<V9>>): AsyncChain<V1, V9 | Error>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10>(element1: AsyncChain<V1, V2>, element2: AsyncChain<V2, V3>, element3: AsyncChain<V3, V4>, element4: AsyncChain<V4, V5>, element5: AsyncChain<V5, V6>, element6: AsyncChain<V6, V7>, element7: AsyncChain<V7, V8>, element8: AsyncChain<V8, V9>, element9: AsyncChain<V9, Promise<V10>>): AsyncChain<V1, V10 | Error>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11>(element1: AsyncChain<V1, V2>, element2: AsyncChain<V2, V3>, element3: AsyncChain<V3, V4>, element4: AsyncChain<V4, V5>, element5: AsyncChain<V5, V6>, element6: AsyncChain<V6, V7>, element7: AsyncChain<V7, V8>, element8: AsyncChain<V8, V9>, element9: AsyncChain<V9, V10>, element10: AsyncChain<V10, Promise<V11>>): AsyncChain<V1, V11 | Error>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12>(element1: AsyncChain<V1, V2>, element2: AsyncChain<V2, V3>, element3: AsyncChain<V3, V4>, element4: AsyncChain<V4, V5>, element5: AsyncChain<V5, V6>, element6: AsyncChain<V6, V7>, element7: AsyncChain<V7, V8>, element8: AsyncChain<V8, V9>, element9: AsyncChain<V9, V10>, element10: AsyncChain<V10, V11>, element11: AsyncChain<V11, Promise<V12>>): AsyncChain<V1, V12 | Error>; | ||
<V1, V2>(element1: AsyncWeakChain<V1, Promise<V2>>): AsyncWeakChain<V1, V2 | Error>; | ||
<V1, V2, V3>(element1: AsyncWeakChain<V1, V2>, element2: AsyncWeakChain<V2, Promise<V3>>): AsyncWeakChain<V1, V3 | Error>; | ||
<V1, V2, V3, V4>(element1: AsyncWeakChain<V1, V2>, element2: AsyncWeakChain<V2, V3>, element3: AsyncWeakChain<V3, Promise<V4>>): AsyncWeakChain<V1, V4 | Error>; | ||
<V1, V2, V3, V4, V5>(element1: AsyncWeakChain<V1, V2>, element2: AsyncWeakChain<V2, V3>, element3: AsyncWeakChain<V3, V4>, element4: AsyncWeakChain<V4, Promise<V5>>): AsyncWeakChain<V1, V5 | Error>; | ||
<V1, V2, V3, V4, V5, V6>(element1: AsyncWeakChain<V1, V2>, element2: AsyncWeakChain<V2, V3>, element3: AsyncWeakChain<V3, V4>, element4: AsyncWeakChain<V4, V5>, element5: AsyncWeakChain<V5, Promise<V6>>): AsyncWeakChain<V1, V6 | Error>; | ||
<V1, V2, V3, V4, V5, V6, V7>(element1: AsyncWeakChain<V1, V2>, element2: AsyncWeakChain<V2, V3>, element3: AsyncWeakChain<V3, V4>, element4: AsyncWeakChain<V4, V5>, element5: AsyncWeakChain<V5, V6>, element6: AsyncWeakChain<V6, Promise<V7>>): AsyncWeakChain<V1, V7 | Error>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8>(element1: AsyncWeakChain<V1, V2>, element2: AsyncWeakChain<V2, V3>, element3: AsyncWeakChain<V3, V4>, element4: AsyncWeakChain<V4, V5>, element5: AsyncWeakChain<V5, V6>, element6: AsyncWeakChain<V6, V7>, element7: AsyncWeakChain<V7, Promise<V8>>): AsyncWeakChain<V1, V8 | Error>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9>(element1: AsyncWeakChain<V1, V2>, element2: AsyncWeakChain<V2, V3>, element3: AsyncWeakChain<V3, V4>, element4: AsyncWeakChain<V4, V5>, element5: AsyncWeakChain<V5, V6>, element6: AsyncWeakChain<V6, V7>, element7: AsyncWeakChain<V7, V8>, element8: AsyncWeakChain<V8, Promise<V9>>): AsyncWeakChain<V1, V9 | Error>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10>(element1: AsyncWeakChain<V1, V2>, element2: AsyncWeakChain<V2, V3>, element3: AsyncWeakChain<V3, V4>, element4: AsyncWeakChain<V4, V5>, element5: AsyncWeakChain<V5, V6>, element6: AsyncWeakChain<V6, V7>, element7: AsyncWeakChain<V7, V8>, element8: AsyncWeakChain<V8, V9>, element9: AsyncWeakChain<V9, Promise<V10>>): AsyncWeakChain<V1, V10 | Error>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11>(element1: AsyncWeakChain<V1, V2>, element2: AsyncWeakChain<V2, V3>, element3: AsyncWeakChain<V3, V4>, element4: AsyncWeakChain<V4, V5>, element5: AsyncWeakChain<V5, V6>, element6: AsyncWeakChain<V6, V7>, element7: AsyncWeakChain<V7, V8>, element8: AsyncWeakChain<V8, V9>, element9: AsyncWeakChain<V9, V10>, element10: AsyncWeakChain<V10, Promise<V11>>): AsyncWeakChain<V1, V11 | Error>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12>(element1: AsyncWeakChain<V1, V2>, element2: AsyncWeakChain<V2, V3>, element3: AsyncWeakChain<V3, V4>, element4: AsyncWeakChain<V4, V5>, element5: AsyncWeakChain<V5, V6>, element6: AsyncWeakChain<V6, V7>, element7: AsyncWeakChain<V7, V8>, element8: AsyncWeakChain<V8, V9>, element9: AsyncWeakChain<V9, V10>, element10: AsyncWeakChain<V10, V11>, element11: AsyncWeakChain<V11, Promise<V12>>): AsyncWeakChain<V1, V12 | Error>; | ||
} | ||
@@ -24,0 +26,0 @@ /** |
@@ -10,6 +10,8 @@ import { chain } from './chain'; | ||
*/ | ||
// @ts-expect-error | ||
export const awaitParallel = (listen1, ...additionalListeners) => { | ||
const listen = chain(listen1, ...additionalListeners); | ||
return (next, value, context) => { | ||
return (next, value, context, status) => { | ||
let cleanupInner; | ||
status.is = 'async'; | ||
if (!context.isInitialized) { | ||
@@ -32,2 +34,3 @@ context.isActive = true; | ||
execute(context.cleanupNext); | ||
status.is = 'sync'; | ||
context.cleanupNext = next(value); | ||
@@ -38,6 +41,7 @@ } | ||
execute(context.cleanupNext); | ||
status.is = 'sync'; | ||
context.cleanupNext = next(error); | ||
} | ||
}); | ||
}, value, context.inner); | ||
}, value, context.inner, status); | ||
return cleanupFunction; | ||
@@ -53,8 +57,10 @@ }; | ||
*/ | ||
// @ts-expect-error | ||
export const awaitLatest = (listen1, ...additionalListeners) => { | ||
const listen = chain(listen1, ...additionalListeners); | ||
return (next, parameter, context) => { | ||
return (next, parameter, context, status) => { | ||
let cleanupInner; | ||
let cleanupNext; | ||
let isActive = true; | ||
status.is = 'async'; | ||
const cleanupFunction = (final = false) => { | ||
@@ -69,2 +75,3 @@ isActive = false; | ||
execute(cleanupNext); | ||
status.is = 'sync'; | ||
cleanupNext = next(value); | ||
@@ -75,6 +82,7 @@ } | ||
execute(cleanupNext); | ||
status.is = 'sync'; | ||
cleanupNext = next(error); | ||
} | ||
}); | ||
}, parameter, context); | ||
}, parameter, context, status); | ||
return cleanupFunction; | ||
@@ -90,6 +98,8 @@ }; | ||
*/ | ||
// @ts-expect-error | ||
export const awaitOrder = (listen1, ...additionalListeners) => { | ||
const listen = chain(listen1, ...additionalListeners); | ||
return (next, value, context) => { | ||
return (next, value, context, status) => { | ||
let cleanupInner; | ||
status.is = 'async'; | ||
if (!context.isInitialized) { | ||
@@ -115,2 +125,3 @@ context.queue = []; | ||
execute(context.cleanupNext); | ||
status.is = 'sync'; | ||
context.cleanupNext = next(result); | ||
@@ -122,2 +133,3 @@ } | ||
execute(context.cleanupNext); | ||
status.is = 'sync'; | ||
context.cleanupNext = next(error); | ||
@@ -131,3 +143,3 @@ } | ||
context.queue.push(waitingPromise); | ||
}, value, context.inner); | ||
}, value, context.inner, status); | ||
return cleanupFunction; | ||
@@ -143,6 +155,8 @@ }; | ||
*/ | ||
// @ts-expect-error | ||
export const awaitQueue = (listen1, ...additionalListeners) => { | ||
const listen = chain(listen1, ...additionalListeners); | ||
return (next, parameter, context) => { | ||
return (next, parameter, context, status) => { | ||
let cleanupInner; | ||
status.is = 'async'; | ||
if (!context.isInitialized) { | ||
@@ -165,3 +179,3 @@ context.queue = []; | ||
execute(cleanupInner, false); | ||
cleanupInner = listen(promise => resolve(promise), parameter, context.inner); | ||
cleanupInner = listen(promise => resolve(promise), parameter, context.inner, status); | ||
})) | ||
@@ -171,2 +185,3 @@ .then(promise => promise).then(value => { | ||
execute(context.cleanupNext, false); | ||
status.is = 'sync'; | ||
context.cleanupNext = next(value); | ||
@@ -178,2 +193,3 @@ } | ||
execute(context.cleanupNext, false); | ||
status.is = 'sync'; | ||
context.cleanupNext = next(error); | ||
@@ -196,5 +212,6 @@ } | ||
*/ | ||
// @ts-expect-error | ||
export const awaitBlock = (listen1, ...additionalListeners) => { | ||
const listen = chain(listen1, ...additionalListeners); | ||
return (next, parameter, context) => { | ||
return (next, parameter, context, status) => { | ||
if (!context.isInitialized) { | ||
@@ -211,2 +228,3 @@ context.isBlocking = false; | ||
let cleanupInner; | ||
status.is = 'async'; | ||
const cleanupFunction = (final = false) => { | ||
@@ -236,5 +254,5 @@ if (final) { | ||
}); | ||
}, parameter, context.inner); | ||
}, parameter, context.inner, status); | ||
return cleanupFunction; | ||
}; | ||
}; |
@@ -1,5 +0,9 @@ | ||
import { Chain } from './types'; | ||
type CatchCall = <V1, V2 = V1, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1: Chain<V1, V2>, element2?: Chain<V2, V3>, element3?: Chain<V3, V4>, element4?: Chain<V4, V5>, element5?: Chain<V5, V6>, element6?: Chain<V6, V7>, element7?: Chain<V7, V8>, element8?: Chain<V8, V9>, element9?: Chain<V9, V10>, element10?: Chain<V10, V11>, element11?: Chain<V11, V12>, element12?: Chain<V12, V13>, element13?: Chain<V13, V14>, element14?: Chain<V14, V15>, element15?: Chain<V15, V16>, element16?: Chain<V16, V17>, element17?: Chain<V17, V18>, element18?: Chain<V18, V19>, element19?: Chain<V19, V20>) => Chain<V1, V20 | Error>; | ||
import { SyncChain, AsyncChain, WeakChain, AsyncWeakChain } from './types'; | ||
export interface CatchCall { | ||
<V1, V2 = V1, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1: SyncChain<V1, V2>, element2?: SyncChain<V2, V3>, element3?: SyncChain<V3, V4>, element4?: SyncChain<V4, V5>, element5?: SyncChain<V5, V6>, element6?: SyncChain<V6, V7>, element7?: SyncChain<V7, V8>, element8?: SyncChain<V8, V9>, element9?: SyncChain<V9, V10>, element10?: SyncChain<V10, V11>, element11?: SyncChain<V11, V12>, element12?: SyncChain<V12, V13>, element13?: SyncChain<V13, V14>, element14?: SyncChain<V14, V15>, element15?: SyncChain<V15, V16>, element16?: SyncChain<V16, V17>, element17?: SyncChain<V17, V18>, element18?: SyncChain<V18, V19>, element19?: SyncChain<V19, V20>): SyncChain<V1, V20 | Error>; | ||
<V1, V2 = V1, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1: AsyncChain<V1, V2>, element2?: AsyncChain<V2, V3>, element3?: AsyncChain<V3, V4>, element4?: AsyncChain<V4, V5>, element5?: AsyncChain<V5, V6>, element6?: AsyncChain<V6, V7>, element7?: AsyncChain<V7, V8>, element8?: AsyncChain<V8, V9>, element9?: AsyncChain<V9, V10>, element10?: AsyncChain<V10, V11>, element11?: AsyncChain<V11, V12>, element12?: AsyncChain<V12, V13>, element13?: AsyncChain<V13, V14>, element14?: AsyncChain<V14, V15>, element15?: AsyncChain<V15, V16>, element16?: AsyncChain<V16, V17>, element17?: AsyncChain<V17, V18>, element18?: AsyncChain<V18, V19>, element19?: AsyncChain<V19, V20>): AsyncChain<V1, V20 | Error>; | ||
<V1, V2 = V1, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1: WeakChain<V1, V2>, element2?: WeakChain<V2, V3>, element3?: WeakChain<V3, V4>, element4?: WeakChain<V4, V5>, element5?: WeakChain<V5, V6>, element6?: WeakChain<V6, V7>, element7?: WeakChain<V7, V8>, element8?: WeakChain<V8, V9>, element9?: WeakChain<V9, V10>, element10?: WeakChain<V10, V11>, element11?: WeakChain<V11, V12>, element12?: WeakChain<V12, V13>, element13?: WeakChain<V13, V14>, element14?: WeakChain<V14, V15>, element15?: WeakChain<V15, V16>, element16?: WeakChain<V16, V17>, element17?: WeakChain<V17, V18>, element18?: WeakChain<V18, V19>, element19?: WeakChain<V19, V20>): WeakChain<V1, V20 | Error>; | ||
<V1, V2 = V1, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1: AsyncWeakChain<V1, V2>, element2?: AsyncWeakChain<V2, V3>, element3?: AsyncWeakChain<V3, V4>, element4?: AsyncWeakChain<V4, V5>, element5?: AsyncWeakChain<V5, V6>, element6?: AsyncWeakChain<V6, V7>, element7?: AsyncWeakChain<V7, V8>, element8?: AsyncWeakChain<V8, V9>, element9?: AsyncWeakChain<V9, V10>, element10?: AsyncWeakChain<V10, V11>, element11?: AsyncWeakChain<V11, V12>, element12?: AsyncWeakChain<V12, V13>, element13?: AsyncWeakChain<V13, V14>, element14?: AsyncWeakChain<V14, V15>, element15?: AsyncWeakChain<V15, V16>, element16?: AsyncWeakChain<V16, V17>, element17?: AsyncWeakChain<V17, V18>, element18?: AsyncWeakChain<V18, V19>, element19?: AsyncWeakChain<V19, V20>): AsyncWeakChain<V1, V20 | Error>; | ||
} | ||
export declare const catchFn: CatchCall; | ||
export {}; | ||
//# sourceMappingURL=catch.d.ts.map |
@@ -9,5 +9,5 @@ import { chain } from './chain'; | ||
const listen = chain(listen1, ...additionalListeners); | ||
return (resolve, parameter, context) => { | ||
return (resolve, parameter, context, status) => { | ||
try { | ||
return listen(resolve, parameter, context); | ||
return listen(resolve, parameter, context, status); | ||
} | ||
@@ -14,0 +14,0 @@ catch (error) { |
@@ -1,28 +0,16 @@ | ||
import type { Chain } from './types'; | ||
type ChainCall = <V1, V2 = V1, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1: Chain<V1, V2>, element2?: Chain<V2, V3>, element3?: Chain<V3, V4>, element4?: Chain<V4, V5>, element5?: Chain<V5, V6>, element6?: Chain<V6, V7>, element7?: Chain<V7, V8>, element8?: Chain<V8, V9>, element9?: Chain<V9, V10>, element10?: Chain<V10, V11>, element11?: Chain<V11, V12>, element12?: Chain<V12, V13>, element13?: Chain<V13, V14>, element14?: Chain<V14, V15>, element15?: Chain<V15, V16>, element16?: Chain<V16, V17>, element17?: Chain<V17, V18>, element18?: Chain<V18, V19>, element19?: Chain<V19, V20>) => Chain<V1, V20>; | ||
import type { Chain, WeakChain, SyncChain, AsyncChain, AsyncWeakChain } from './types'; | ||
export interface ChainCall { | ||
<V1, V2 = V1, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1: Chain<V1, V2, 'sync'>, element2?: Chain<V2, V3, 'sync'>, element3?: Chain<V3, V4, 'sync'>, element4?: Chain<V4, V5, 'sync'>, element5?: Chain<V5, V6, 'sync'>, element6?: Chain<V6, V7, 'sync'>, element7?: Chain<V7, V8, 'sync'>, element8?: Chain<V8, V9, 'sync'>, element9?: Chain<V9, V10, 'sync'>, element10?: Chain<V10, V11, 'sync'>, element11?: Chain<V11, V12, 'sync'>, element12?: Chain<V12, V13, 'sync'>, element13?: Chain<V13, V14, 'sync'>, element14?: Chain<V14, V15, 'sync'>, element15?: Chain<V15, V16, 'sync'>, element16?: Chain<V16, V17, 'sync'>, element17?: Chain<V17, V18, 'sync'>, element18?: Chain<V18, V19, 'sync'>, element19?: Chain<V19, V20, 'sync'>): SyncChain<V1, V20>; | ||
<V1, V2 = V1, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1: Chain<V1, V2, 'async'>, element2?: Chain<V2, V3, 'async'>, element3?: Chain<V3, V4, 'async'>, element4?: Chain<V4, V5, 'async'>, element5?: Chain<V5, V6, 'async'>, element6?: Chain<V6, V7, 'async'>, element7?: Chain<V7, V8, 'async'>, element8?: Chain<V8, V9, 'async'>, element9?: Chain<V9, V10, 'async'>, element10?: Chain<V10, V11, 'async'>, element11?: Chain<V11, V12, 'async'>, element12?: Chain<V12, V13, 'async'>, element13?: Chain<V13, V14, 'async'>, element14?: Chain<V14, V15, 'async'>, element15?: Chain<V15, V16, 'async'>, element16?: Chain<V16, V17, 'async'>, element17?: Chain<V17, V18, 'async'>, element18?: Chain<V18, V19, 'async'>, element19?: Chain<V19, V20, 'async'>): AsyncChain<V1, V20>; | ||
<V1, V2 = V1, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1: Chain<V1, V2, 'incomplete'>, element2?: Chain<V2, V3, 'incomplete'>, element3?: Chain<V3, V4, 'incomplete'>, element4?: Chain<V4, V5, 'incomplete'>, element5?: Chain<V5, V6, 'incomplete'>, element6?: Chain<V6, V7, 'incomplete'>, element7?: Chain<V7, V8, 'incomplete'>, element8?: Chain<V8, V9, 'incomplete'>, element9?: Chain<V9, V10, 'incomplete'>, element10?: Chain<V10, V11, 'incomplete'>, element11?: Chain<V11, V12, 'incomplete'>, element12?: Chain<V12, V13, 'incomplete'>, element13?: Chain<V13, V14, 'incomplete'>, element14?: Chain<V14, V15, 'incomplete'>, element15?: Chain<V15, V16, 'incomplete'>, element16?: Chain<V16, V17, 'incomplete'>, element17?: Chain<V17, V18, 'incomplete'>, element18?: Chain<V18, V19, 'incomplete'>, element19?: Chain<V19, V20, 'incomplete'>): WeakChain<V1, V20>; | ||
<V1, V2 = V1, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1: Chain<V1, V2, 'async-incomplete'>, element2?: Chain<V2, V3, 'async-incomplete'>, element3?: Chain<V3, V4, 'async-incomplete'>, element4?: Chain<V4, V5, 'async-incomplete'>, element5?: Chain<V5, V6, 'async-incomplete'>, element6?: Chain<V6, V7, 'async-incomplete'>, element7?: Chain<V7, V8, 'async-incomplete'>, element8?: Chain<V8, V9, 'async-incomplete'>, element9?: Chain<V9, V10, 'async-incomplete'>, element10?: Chain<V10, V11, 'async-incomplete'>, element11?: Chain<V11, V12, 'async-incomplete'>, element12?: Chain<V12, V13, 'async-incomplete'>, element13?: Chain<V13, V14, 'async-incomplete'>, element14?: Chain<V14, V15, 'async-incomplete'>, element15?: Chain<V15, V16, 'async-incomplete'>, element16?: Chain<V16, V17, 'async-incomplete'>, element17?: Chain<V17, V18, 'async-incomplete'>, element18?: Chain<V18, V19, 'async-incomplete'>, element19?: Chain<V19, V20, 'async-incomplete'>): AsyncWeakChain<V1, V20>; | ||
} | ||
export declare const chain: ChainCall; | ||
export interface SideChainCall { | ||
<V1, V2>(element1: Chain<V1, V2>): Chain<V1, [V1, V2]>; | ||
<V1, V2, V3>(element1: Chain<V1, V2>, element2: Chain<V2, V3>): Chain<V1, [V1, V3]>; | ||
<V1, V2, V3, V4>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>): Chain<V1, [V1, V4]>; | ||
<V1, V2, V3, V4, V5>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>): Chain<V1, [V1, V5]>; | ||
<V1, V2, V3, V4, V5, V6>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>): Chain<V1, [V1, V6]>; | ||
<V1, V2, V3, V4, V5, V6, V7>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>): Chain<V1, [V1, V7]>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>): Chain<V1, [V1, V8]>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>): Chain<V1, [V1, V9]>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>): Chain<V1, [V1, V10]>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>): Chain<V1, [V1, V11]>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>): Chain<V1, [V1, V12]>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>, element12: Chain<V12, V13>): Chain<V1, [V1, V13]>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>, element12: Chain<V12, V13>, element13: Chain<V13, V14>): Chain<V1, [V1, V14]>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>, element12: Chain<V12, V13>, element13: Chain<V13, V14>, element14: Chain<V14, V15>): Chain<V1, [V1, V15]>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>, element12: Chain<V12, V13>, element13: Chain<V13, V14>, element14: Chain<V14, V15>, element15: Chain<V15, V16>): Chain<V1, [V1, V16]>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>, element12: Chain<V12, V13>, element13: Chain<V13, V14>, element14: Chain<V14, V15>, element15: Chain<V15, V16>, element16: Chain<V16, V17>): Chain<V1, [V1, V17]>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>, element12: Chain<V12, V13>, element13: Chain<V13, V14>, element14: Chain<V14, V15>, element15: Chain<V15, V16>, element16: Chain<V16, V17>, element17: Chain<V17, V18>): Chain<V1, [V1, V18]>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>, element12: Chain<V12, V13>, element13: Chain<V13, V14>, element14: Chain<V14, V15>, element15: Chain<V15, V16>, element16: Chain<V16, V17>, element17: Chain<V17, V18>, element18: Chain<V18, V19>): Chain<V1, [V1, V19]>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>, element12: Chain<V12, V13>, element13: Chain<V13, V14>, element14: Chain<V14, V15>, element15: Chain<V15, V16>, element16: Chain<V16, V17>, element17: Chain<V17, V18>, element18: Chain<V18, V19>, element19: Chain<V19, V20>): Chain<V1, [V1, V20]>; | ||
(first: Chain<unknown, unknown>, ...elements: Chain<unknown, unknown>[]): Chain<unknown, [unknown, unknown]>; | ||
<V1, V2 = V1, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1?: SyncChain<V1, V2>, element2?: SyncChain<V2, V3>, element3?: SyncChain<V3, V4>, element4?: SyncChain<V4, V5>, element5?: SyncChain<V5, V6>, element6?: SyncChain<V6, V7>, element7?: SyncChain<V7, V8>, element8?: SyncChain<V8, V9>, element9?: SyncChain<V9, V10>, element10?: SyncChain<V10, V11>, element11?: SyncChain<V11, V12>, element12?: SyncChain<V12, V13>, element13?: SyncChain<V13, V14>, element14?: SyncChain<V14, V15>, element15?: SyncChain<V15, V16>, element16?: SyncChain<V16, V17>, element17?: SyncChain<V17, V18>, element18?: SyncChain<V18, V19>, element19?: SyncChain<V19, V20>): SyncChain<V1, [V1, V20]>; | ||
<V1, V2 = V1, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1?: AsyncChain<V1, V2>, element2?: AsyncChain<V2, V3>, element3?: AsyncChain<V3, V4>, element4?: AsyncChain<V4, V5>, element5?: AsyncChain<V5, V6>, element6?: AsyncChain<V6, V7>, element7?: AsyncChain<V7, V8>, element8?: AsyncChain<V8, V9>, element9?: AsyncChain<V9, V10>, element10?: AsyncChain<V10, V11>, element11?: AsyncChain<V11, V12>, element12?: AsyncChain<V12, V13>, element13?: AsyncChain<V13, V14>, element14?: AsyncChain<V14, V15>, element15?: AsyncChain<V15, V16>, element16?: AsyncChain<V16, V17>, element17?: AsyncChain<V17, V18>, element18?: AsyncChain<V18, V19>, element19?: AsyncChain<V19, V20>): AsyncChain<V1, [V1, V20]>; | ||
<V1, V2 = V1, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1?: WeakChain<V1, V2>, element2?: WeakChain<V2, V3>, element3?: WeakChain<V3, V4>, element4?: WeakChain<V4, V5>, element5?: WeakChain<V5, V6>, element6?: WeakChain<V6, V7>, element7?: WeakChain<V7, V8>, element8?: WeakChain<V8, V9>, element9?: WeakChain<V9, V10>, element10?: WeakChain<V10, V11>, element11?: WeakChain<V11, V12>, element12?: WeakChain<V12, V13>, element13?: WeakChain<V13, V14>, element14?: WeakChain<V14, V15>, element15?: WeakChain<V15, V16>, element16?: WeakChain<V16, V17>, element17?: WeakChain<V17, V18>, element18?: WeakChain<V18, V19>, element19?: WeakChain<V19, V20>): WeakChain<V1, [V1, V20]>; | ||
<V1, V2 = V1, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1?: AsyncWeakChain<V1, V2>, element2?: AsyncWeakChain<V2, V3>, element3?: AsyncWeakChain<V3, V4>, element4?: AsyncWeakChain<V4, V5>, element5?: AsyncWeakChain<V5, V6>, element6?: AsyncWeakChain<V6, V7>, element7?: AsyncWeakChain<V7, V8>, element8?: AsyncWeakChain<V8, V9>, element9?: AsyncWeakChain<V9, V10>, element10?: AsyncWeakChain<V10, V11>, element11?: AsyncWeakChain<V11, V12>, element12?: AsyncWeakChain<V12, V13>, element13?: AsyncWeakChain<V13, V14>, element14?: AsyncWeakChain<V14, V15>, element15?: AsyncWeakChain<V15, V16>, element16?: AsyncWeakChain<V16, V17>, element17?: AsyncWeakChain<V17, V18>, element18?: AsyncWeakChain<V18, V19>, element19?: AsyncWeakChain<V19, V20>): AsyncWeakChain<V1, [V1, V20]>; | ||
} | ||
export declare const sidechain: SideChainCall; | ||
export {}; | ||
//# sourceMappingURL=chain.d.ts.map |
@@ -1,4 +0,4 @@ | ||
// @ts-expect-error the function is more general than its type, but 20 arguments should be fine | ||
// @ts-expect-error | ||
export const chain = (first, ...elements) => { | ||
return (next, param, context) => { | ||
return (next, param, context, status) => { | ||
for (let i = 0; i < elements.length + 1; i++) { | ||
@@ -11,5 +11,5 @@ if (!context[`${i}`]) { | ||
return (nextInner, paramInner) => { | ||
return chained((intermediate) => element(nextInner, intermediate, context[`${index + 1}`]), paramInner); | ||
return chained((intermediate) => element(nextInner, intermediate, context[`${index + 1}`], status), paramInner); | ||
}; | ||
}, (nextInner, paramInner) => first(nextInner, paramInner, context[0])); | ||
}, (nextInner, paramInner) => first(nextInner, paramInner, context[0], status)); | ||
// Execute the chained function with the initial next, param, and context | ||
@@ -19,5 +19,6 @@ return chainedFunction(next, param); | ||
}; | ||
// @ts-expect-error | ||
export const sidechain = (first, ...elements) => { | ||
const innerChain = chain(first, ...elements); | ||
return (next, parameter, context) => innerChain((intermediate) => next([parameter, intermediate]), parameter, context); | ||
return (next, parameter, context, status) => innerChain((intermediate) => next([parameter, intermediate]), parameter, context, status); | ||
}; |
@@ -1,2 +0,2 @@ | ||
import type { Chain, Function2 } from './types'; | ||
import type { SyncChain, Function2 } from './types'; | ||
export interface CollectCall { | ||
@@ -6,3 +6,3 @@ /** | ||
*/ | ||
<V1>(): Chain<V1, V1[]>; | ||
<V1>(): SyncChain<V1, V1[]>; | ||
/** | ||
@@ -14,3 +14,3 @@ * Collect values similar to the Array.prototype.reduce function. | ||
*/ | ||
<V1, V2>(keep: Function2<V2, V1, V2>, initial: V2): Chain<V1, V2>; | ||
<V1, V2>(keep: Function2<V2, V1, V2>, initial: V2): SyncChain<V1, V2>; | ||
} | ||
@@ -23,3 +23,3 @@ export declare const collect: CollectCall; | ||
*/ | ||
export declare const buffer: <V>(size: number) => Chain<V, V[]>; | ||
export declare const buffer: <V>(size: number) => SyncChain<V, V[]>; | ||
/** | ||
@@ -30,3 +30,3 @@ * Collects the last [n] values into an array. | ||
*/ | ||
export declare const window: <V>(size: number) => Chain<V, V[]>; | ||
export declare const window: <V>(size: number) => SyncChain<V, V[]>; | ||
//# sourceMappingURL=collect.d.ts.map |
@@ -1,13 +0,9 @@ | ||
import type { Chain } from "./types"; | ||
export declare function combine<V>(): Chain<V, []>; | ||
export declare function combine<From, To>(element1: Chain<From, To>): Chain<From, [To]>; | ||
export declare function combine<From, To1, To2>(element1: Chain<From, To1>, element2: Chain<From, To2>): Chain<From, [To1, To2]>; | ||
export declare function combine<From, To1, To2, To3>(element1: Chain<From, To1>, element2: Chain<From, To2>, element3: Chain<From, To3>): Chain<From, [To1, To2, To3]>; | ||
export declare function combine<From, To1, To2, To3, To4>(element1: Chain<From, To1>, element2: Chain<From, To2>, element3: Chain<From, To3>, element4: Chain<From, To4>): Chain<From, [To1, To2, To3, To4]>; | ||
export declare function combine<From, To1, To2, To3, To4, To5>(element1: Chain<From, To1>, element2: Chain<From, To2>, element3: Chain<From, To3>, element4: Chain<From, To4>, element5: Chain<From, To5>): Chain<From, [To1, To2, To3, To4, To5]>; | ||
export declare function combine<From, To1, To2, To3, To4, To5, To6>(element1: Chain<From, To1>, element2: Chain<From, To2>, element3: Chain<From, To3>, element4: Chain<From, To4>, element5: Chain<From, To5>, element6: Chain<From, To6>): Chain<From, [To1, To2, To3, To4, To5, To6]>; | ||
export declare function combine<From, To1, To2, To3, To4, To5, To6, To7>(element1: Chain<From, To1>, element2: Chain<From, To2>, element3: Chain<From, To3>, element4: Chain<From, To4>, element5: Chain<From, To5>, element6: Chain<From, To6>, element7: Chain<From, To7>): Chain<From, [To1, To2, To3, To4, To5, To6, To7]>; | ||
export declare function combine<From, To1, To2, To3, To4, To5, To6, To7, To8>(element1: Chain<From, To1>, element2: Chain<From, To2>, element3: Chain<From, To3>, element4: Chain<From, To4>, element5: Chain<From, To5>, element6: Chain<From, To6>, element7: Chain<From, To7>, element8: Chain<From, To8>): Chain<From, [To1, To2, To3, To4, To5, To6, To7, To8]>; | ||
export declare function combine<From, To1, To2, To3, To4, To5, To6, To7, To8, To9>(element1: Chain<From, To1>, element2: Chain<From, To2>, element3: Chain<From, To3>, element4: Chain<From, To4>, element5: Chain<From, To5>, element6: Chain<From, To6>, element7: Chain<From, To7>, element8: Chain<From, To8>, element9: Chain<From, To9>): Chain<From, [To1, To2, To3, To4, To5, To6, To7, To8, To9]>; | ||
export declare function combine<From, To1, To2, To3, To4, To5, To6, To7, To8, To9, To10>(element1: Chain<From, To1>, element2: Chain<From, To2>, element3: Chain<From, To3>, element4: Chain<From, To4>, element5: Chain<From, To5>, element6: Chain<From, To6>, element7: Chain<From, To7>, element8: Chain<From, To8>, element9: Chain<From, To9>, element10: Chain<From, To10>): Chain<From, [To1, To2, To3, To4, To5, To6, To7, To8, To9, To10]>; | ||
import type { SyncChain, AsyncChain, WeakChain, AsyncWeakChain } from "./types"; | ||
export interface CombineCall { | ||
<From, To1 = never, To2 = never, To3 = never, To4 = never, To5 = never, To6 = never, To7 = never, To8 = never, To9 = never, To10 = never, To11 = never, To12 = never, To13 = never, To14 = never, To15 = never, To16 = never, To17 = never, To18 = never, To19 = never, To20 = never>(element1?: SyncChain<From, To1>, element2?: SyncChain<From, To2>, element3?: SyncChain<From, To3>, element4?: SyncChain<From, To4>, element5?: SyncChain<From, To5>, element6?: SyncChain<From, To6>, element7?: SyncChain<From, To7>, element8?: SyncChain<From, To8>, element9?: SyncChain<From, To9>, element10?: SyncChain<From, To10>, element11?: SyncChain<From, To11>, element12?: SyncChain<From, To12>, element13?: SyncChain<From, To13>, element14?: SyncChain<From, To14>, element15?: SyncChain<From, To15>, element16?: SyncChain<From, To16>, element17?: SyncChain<From, To17>, element18?: SyncChain<From, To18>, element19?: SyncChain<From, To19>, element20?: SyncChain<From, To20>): SyncChain<From, [To1, To2, To3, To4, To5, To6, To7, To8, To9, To10, To11, To12, To13, To14, To15, To16, To17, To18, To19, To20]>; | ||
<From, To1 = never, To2 = never, To3 = never, To4 = never, To5 = never, To6 = never, To7 = never, To8 = never, To9 = never, To10 = never, To11 = never, To12 = never, To13 = never, To14 = never, To15 = never, To16 = never, To17 = never, To18 = never, To19 = never, To20 = never>(element1?: AsyncChain<From, To1>, element2?: AsyncChain<From, To2>, element3?: AsyncChain<From, To3>, element4?: AsyncChain<From, To4>, element5?: AsyncChain<From, To5>, element6?: AsyncChain<From, To6>, element7?: AsyncChain<From, To7>, element8?: AsyncChain<From, To8>, element9?: AsyncChain<From, To9>, element10?: AsyncChain<From, To10>, element11?: AsyncChain<From, To11>, element12?: AsyncChain<From, To12>, element13?: AsyncChain<From, To13>, element14?: AsyncChain<From, To14>, element15?: AsyncChain<From, To15>, element16?: AsyncChain<From, To16>, element17?: AsyncChain<From, To17>, element18?: AsyncChain<From, To18>, element19?: AsyncChain<From, To19>, element20?: AsyncChain<From, To20>): AsyncChain<From, [To1, To2, To3, To4, To5, To6, To7, To8, To9, To10, To11, To12, To13, To14, To15, To16, To17, To18, To19, To20]>; | ||
<From, To1 = never, To2 = never, To3 = never, To4 = never, To5 = never, To6 = never, To7 = never, To8 = never, To9 = never, To10 = never, To11 = never, To12 = never, To13 = never, To14 = never, To15 = never, To16 = never, To17 = never, To18 = never, To19 = never, To20 = never>(element1?: WeakChain<From, To1>, element2?: WeakChain<From, To2>, element3?: WeakChain<From, To3>, element4?: WeakChain<From, To4>, element5?: WeakChain<From, To5>, element6?: WeakChain<From, To6>, element7?: WeakChain<From, To7>, element8?: WeakChain<From, To8>, element9?: WeakChain<From, To9>, element10?: WeakChain<From, To10>, element11?: WeakChain<From, To11>, element12?: WeakChain<From, To12>, element13?: WeakChain<From, To13>, element14?: WeakChain<From, To14>, element15?: WeakChain<From, To15>, element16?: WeakChain<From, To16>, element17?: WeakChain<From, To17>, element18?: WeakChain<From, To18>, element19?: WeakChain<From, To19>, element20?: WeakChain<From, To20>): WeakChain<From, [To1, To2, To3, To4, To5, To6, To7, To8, To9, To10, To11, To12, To13, To14, To15, To16, To17, To18, To19, To20]>; | ||
<From, To1 = never, To2 = never, To3 = never, To4 = never, To5 = never, To6 = never, To7 = never, To8 = never, To9 = never, To10 = never, To11 = never, To12 = never, To13 = never, To14 = never, To15 = never, To16 = never, To17 = never, To18 = never, To19 = never, To20 = never>(element1?: AsyncWeakChain<From, To1>, element2?: AsyncWeakChain<From, To2>, element3?: AsyncWeakChain<From, To3>, element4?: AsyncWeakChain<From, To4>, element5?: AsyncWeakChain<From, To5>, element6?: AsyncWeakChain<From, To6>, element7?: AsyncWeakChain<From, To7>, element8?: AsyncWeakChain<From, To8>, element9?: AsyncWeakChain<From, To9>, element10?: AsyncWeakChain<From, To10>, element11?: AsyncWeakChain<From, To11>, element12?: AsyncWeakChain<From, To12>, element13?: AsyncWeakChain<From, To13>, element14?: AsyncWeakChain<From, To14>, element15?: AsyncWeakChain<From, To15>, element16?: AsyncWeakChain<From, To16>, element17?: AsyncWeakChain<From, To17>, element18?: AsyncWeakChain<From, To18>, element19?: AsyncWeakChain<From, To19>, element20?: AsyncWeakChain<From, To20>): AsyncWeakChain<From, [To1, To2, To3, To4, To5, To6, To7, To8, To9, To10, To11, To12, To13, To14, To15, To16, To17, To18, To19, To20]>; | ||
} | ||
export declare const combine: CombineCall; | ||
//# sourceMappingURL=combine.d.ts.map |
import { execute } from "./util"; | ||
export function combine(...listens) { | ||
// @ts-expect-error | ||
export const combine = (...listens) => { | ||
if (listens.length === 0) { | ||
return (resolve, value) => resolve([value]); | ||
} | ||
return (resolve, parameter, context) => { | ||
return (resolve, parameter, context, status) => { | ||
for (let i = 0; i < listens.length; i++) { | ||
@@ -29,3 +30,3 @@ if (!context[i]) { | ||
}; | ||
const unsubscribe = listens.map((listener, i) => listener(value => updateItem(value, i), parameter, context[i])); | ||
const unsubscribe = listens.map((listener, i) => listener(value => updateItem(value, i), parameter, context[i], status)); | ||
updateReady = true; | ||
@@ -35,2 +36,2 @@ pendingCleanup = resolve(values); | ||
}; | ||
} | ||
}; |
@@ -1,5 +0,5 @@ | ||
import type { Chain, FunctionVoid } from "./types"; | ||
type ConnectCall = <V1, V2 = V1, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1: Chain<V1, V2>, element2?: Chain<V2, V3>, element3?: Chain<V3, V4>, element4?: Chain<V4, V5>, element5?: Chain<V5, V6>, element6?: Chain<V6, V7>, element7?: Chain<V7, V8>, element8?: Chain<V8, V9>, element9?: Chain<V9, V10>, element10?: Chain<V10, V11>, element11?: Chain<V11, V12>, element12?: Chain<V12, V13>, element13?: Chain<V13, V14>, element14?: Chain<V14, V15>, element15?: Chain<V15, V16>, element16?: Chain<V16, V17>, element17?: Chain<V17, V18>, element18?: Chain<V18, V19>, element19?: Chain<V19, V20>) => FunctionVoid; | ||
import type { AnyChain, FunctionVoid } from "./types"; | ||
type ConnectCall = <V1, V2 = V1, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1: AnyChain<V1, V2>, element2?: AnyChain<V2, V3>, element3?: AnyChain<V3, V4>, element4?: AnyChain<V4, V5>, element5?: AnyChain<V5, V6>, element6?: AnyChain<V6, V7>, element7?: AnyChain<V7, V8>, element8?: AnyChain<V8, V9>, element9?: AnyChain<V9, V10>, element10?: AnyChain<V10, V11>, element11?: AnyChain<V11, V12>, element12?: AnyChain<V12, V13>, element13?: AnyChain<V13, V14>, element14?: AnyChain<V14, V15>, element15?: AnyChain<V15, V16>, element16?: AnyChain<V16, V17>, element17?: AnyChain<V17, V18>, element18?: AnyChain<V18, V19>, element19?: AnyChain<V19, V20>) => FunctionVoid; | ||
export declare const connect: ConnectCall; | ||
export {}; | ||
//# sourceMappingURL=connect.d.ts.map |
@@ -6,4 +6,5 @@ import { chain } from "./chain"; | ||
const chained = chain(listen1, ...additionalListeners); | ||
const unsubscribe = chained(() => { }, undefined, {}); | ||
const status = { is: 'sync' }; | ||
const unsubscribe = chained(() => { }, undefined, {}, status); | ||
return () => { execute(unsubscribe, true); }; | ||
}; |
@@ -1,26 +0,9 @@ | ||
import type { Chain } from './types'; | ||
import type { Chain, SyncChain, AsyncChain, WeakChain, AsyncWeakChain } from './types'; | ||
export interface EachCall { | ||
<V>(): Chain<V[]>; | ||
<V1, V2>(element1: Chain<V1, V2>): Chain<V1[], V2[]>; | ||
<V1, V2, V3>(element1: Chain<V1, V2>, element2: Chain<V2, V3>): Chain<V1[], V3[]>; | ||
<V1, V2, V3, V4>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>): Chain<V1[], V4[]>; | ||
<V1, V2, V3, V4, V5>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>): Chain<V1[], V5[]>; | ||
<V1, V2, V3, V4, V5, V6>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>): Chain<V1[], V6[]>; | ||
<V1, V2, V3, V4, V5, V6, V7>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>): Chain<V1[], V7[]>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>): Chain<V1[], V8[]>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>): Chain<V1[], V9[]>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>): Chain<V1[], V10[]>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>): Chain<V1[], V11[]>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>): Chain<V1[], V12[]>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>, element12: Chain<V12, V13>): Chain<V1[], V13[]>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>, element12: Chain<V12, V13>, element13: Chain<V13, V14>): Chain<V1[], V14[]>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>, element12: Chain<V12, V13>, element13: Chain<V13, V14>, element14: Chain<V14, V15>): Chain<V1[], V15[]>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>, element12: Chain<V12, V13>, element13: Chain<V13, V14>, element14: Chain<V14, V15>, element15: Chain<V15, V16>): Chain<V1[], V16[]>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>, element12: Chain<V12, V13>, element13: Chain<V13, V14>, element14: Chain<V14, V15>, element15: Chain<V15, V16>, element16: Chain<V16, V17>): Chain<V1[], V17[]>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>, element12: Chain<V12, V13>, element13: Chain<V13, V14>, element14: Chain<V14, V15>, element15: Chain<V15, V16>, element16: Chain<V16, V17>, element17: Chain<V17, V18>): Chain<V1[], V18[]>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>, element12: Chain<V12, V13>, element13: Chain<V13, V14>, element14: Chain<V14, V15>, element15: Chain<V15, V16>, element16: Chain<V16, V17>, element17: Chain<V17, V18>, element18: Chain<V18, V19>): Chain<V1[], V19[]>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>, element12: Chain<V12, V13>, element13: Chain<V13, V14>, element14: Chain<V14, V15>, element15: Chain<V15, V16>, element16: Chain<V16, V17>, element17: Chain<V17, V18>, element18: Chain<V18, V19>, element19: Chain<V19, V20>): Chain<V1[], V20[]>; | ||
(first: Chain<unknown, unknown>, ...elements: Chain<unknown, unknown>[]): Chain<unknown[], unknown[]>; | ||
<V1, V2 = V1, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1: Chain<V1, V2, 'sync'>, element2?: Chain<V2, V3, 'sync'>, element3?: Chain<V3, V4, 'sync'>, element4?: Chain<V4, V5, 'sync'>, element5?: Chain<V5, V6, 'sync'>, element6?: Chain<V6, V7, 'sync'>, element7?: Chain<V7, V8, 'sync'>, element8?: Chain<V8, V9, 'sync'>, element9?: Chain<V9, V10, 'sync'>, element10?: Chain<V10, V11, 'sync'>, element11?: Chain<V11, V12, 'sync'>, element12?: Chain<V12, V13, 'sync'>, element13?: Chain<V13, V14, 'sync'>, element14?: Chain<V14, V15, 'sync'>, element15?: Chain<V15, V16, 'sync'>, element16?: Chain<V16, V17, 'sync'>, element17?: Chain<V17, V18, 'sync'>, element18?: Chain<V18, V19, 'sync'>, element19?: Chain<V19, V20, 'sync'>): SyncChain<V1[], V20[]>; | ||
<V1, V2 = V1, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1: Chain<V1, V2, 'async'>, element2?: Chain<V2, V3, 'async'>, element3?: Chain<V3, V4, 'async'>, element4?: Chain<V4, V5, 'async'>, element5?: Chain<V5, V6, 'async'>, element6?: Chain<V6, V7, 'async'>, element7?: Chain<V7, V8, 'async'>, element8?: Chain<V8, V9, 'async'>, element9?: Chain<V9, V10, 'async'>, element10?: Chain<V10, V11, 'async'>, element11?: Chain<V11, V12, 'async'>, element12?: Chain<V12, V13, 'async'>, element13?: Chain<V13, V14, 'async'>, element14?: Chain<V14, V15, 'async'>, element15?: Chain<V15, V16, 'async'>, element16?: Chain<V16, V17, 'async'>, element17?: Chain<V17, V18, 'async'>, element18?: Chain<V18, V19, 'async'>, element19?: Chain<V19, V20, 'async'>): AsyncChain<V1[], V20[]>; | ||
<V1, V2 = V1, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1: Chain<V1, V2, 'incomplete'>, element2?: Chain<V2, V3, 'incomplete'>, element3?: Chain<V3, V4, 'incomplete'>, element4?: Chain<V4, V5, 'incomplete'>, element5?: Chain<V5, V6, 'incomplete'>, element6?: Chain<V6, V7, 'incomplete'>, element7?: Chain<V7, V8, 'incomplete'>, element8?: Chain<V8, V9, 'incomplete'>, element9?: Chain<V9, V10, 'incomplete'>, element10?: Chain<V10, V11, 'incomplete'>, element11?: Chain<V11, V12, 'incomplete'>, element12?: Chain<V12, V13, 'incomplete'>, element13?: Chain<V13, V14, 'incomplete'>, element14?: Chain<V14, V15, 'incomplete'>, element15?: Chain<V15, V16, 'incomplete'>, element16?: Chain<V16, V17, 'incomplete'>, element17?: Chain<V17, V18, 'incomplete'>, element18?: Chain<V18, V19, 'incomplete'>, element19?: Chain<V19, V20, 'incomplete'>): WeakChain<V1[], V20[]>; | ||
<V1, V2 = V1, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1: Chain<V1, V2, 'async-incomplete'>, element2?: Chain<V2, V3, 'async-incomplete'>, element3?: Chain<V3, V4, 'async-incomplete'>, element4?: Chain<V4, V5, 'async-incomplete'>, element5?: Chain<V5, V6, 'async-incomplete'>, element6?: Chain<V6, V7, 'async-incomplete'>, element7?: Chain<V7, V8, 'async-incomplete'>, element8?: Chain<V8, V9, 'async-incomplete'>, element9?: Chain<V9, V10, 'async-incomplete'>, element10?: Chain<V10, V11, 'async-incomplete'>, element11?: Chain<V11, V12, 'async-incomplete'>, element12?: Chain<V12, V13, 'async-incomplete'>, element13?: Chain<V13, V14, 'async-incomplete'>, element14?: Chain<V14, V15, 'async-incomplete'>, element15?: Chain<V15, V16, 'async-incomplete'>, element16?: Chain<V16, V17, 'async-incomplete'>, element17?: Chain<V17, V18, 'async-incomplete'>, element18?: Chain<V18, V19, 'async-incomplete'>, element19?: Chain<V19, V20, 'async-incomplete'>): AsyncWeakChain<V1[], V20[]>; | ||
} | ||
export declare const each: EachCall; | ||
//# sourceMappingURL=each.d.ts.map |
import { chain } from './chain'; | ||
import { through } from './tools'; | ||
import { execute } from './util'; | ||
// @ts-expect-error | ||
export const each = (listen1, ...additionalListeners) => { | ||
@@ -9,3 +10,3 @@ if (!listen1) { | ||
const listen = chain(listen1, ...additionalListeners); | ||
return (resolve, parameters, context) => { | ||
return (resolve, parameters, context, status) => { | ||
if (!parameters) { | ||
@@ -37,3 +38,3 @@ return resolve(parameters); | ||
}; | ||
const unsubscribe = parameters.map((item, i) => listen((value) => updateItem(value, i), item, context[i])); | ||
const unsubscribe = parameters.map((item, i) => listen((value) => updateItem(value, i), item, context[i], status)); | ||
updateReady = true; | ||
@@ -40,0 +41,0 @@ pendingCleanup = resolve(values); |
@@ -1,4 +0,4 @@ | ||
import type { NextFn, Chain } from './types'; | ||
export declare function effect<V>(sideEffect: NextFn<V>): Chain<V>; | ||
export declare const log: <V>(message?: string) => Chain<V>; | ||
import type { NextFn, SyncChain } from './types'; | ||
export declare function effect<V>(sideEffect: NextFn<V>): SyncChain<V>; | ||
export declare const log: <V>(message?: string) => SyncChain<V>; | ||
//# sourceMappingURL=effect.d.ts.map |
@@ -1,11 +0,16 @@ | ||
import type { Chain, Function1 } from "./types"; | ||
type EvaluateSyncCall = <V1, V2 = V1, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1: Chain<V1, V2>, element2?: Chain<V2, V3>, element3?: Chain<V3, V4>, element4?: Chain<V4, V5>, element5?: Chain<V5, V6>, element6?: Chain<V6, V7>, element7?: Chain<V7, V8>, element8?: Chain<V8, V9>, element9?: Chain<V9, V10>, element10?: Chain<V10, V11>, element11?: Chain<V11, V12>, element12?: Chain<V12, V13>, element13?: Chain<V13, V14>, element14?: Chain<V14, V15>, element15?: Chain<V15, V16>, element16?: Chain<V16, V17>, element17?: Chain<V17, V18>, element18?: Chain<V18, V19>, element19?: Chain<V19, V20>) => Chain<V1, V20 | Error>; | ||
export declare const evaluateSync: EvaluateSyncCall; | ||
type EvaluateAsyncCall = <V1, V2 = V1, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1: Chain<V1, V2>, element2?: Chain<V2, V3>, element3?: Chain<V3, V4>, element4?: Chain<V4, V5>, element5?: Chain<V5, V6>, element6?: Chain<V6, V7>, element7?: Chain<V7, V8>, element8?: Chain<V8, V9>, element9?: Chain<V9, V10>, element10?: Chain<V10, V11>, element11?: Chain<V11, V12>, element12?: Chain<V12, V13>, element13?: Chain<V13, V14>, element14?: Chain<V14, V15>, element15?: Chain<V15, V16>, element16?: Chain<V16, V17>, element17?: Chain<V17, V18>, element18?: Chain<V18, V19>, element19?: Chain<V19, V20>) => Chain<V1, Promise<V20>>; | ||
export declare const evaluateAsync: EvaluateAsyncCall; | ||
type ToFunctionSyncCall = <V1, V2 = V1, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1: Chain<V1, V2>, element2?: Chain<V2, V3>, element3?: Chain<V3, V4>, element4?: Chain<V4, V5>, element5?: Chain<V5, V6>, element6?: Chain<V6, V7>, element7?: Chain<V7, V8>, element8?: Chain<V8, V9>, element9?: Chain<V9, V10>, element10?: Chain<V10, V11>, element11?: Chain<V11, V12>, element12?: Chain<V12, V13>, element13?: Chain<V13, V14>, element14?: Chain<V14, V15>, element15?: Chain<V15, V16>, element16?: Chain<V16, V17>, element17?: Chain<V17, V18>, element18?: Chain<V18, V19>, element19?: Chain<V19, V20>) => Function1<V1, V20 | Error>; | ||
export declare const toFunctionSync: ToFunctionSyncCall; | ||
type ToFunctionAsyncCall = <V1, V2 = V1, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1: Chain<V1, V2>, element2?: Chain<V2, V3>, element3?: Chain<V3, V4>, element4?: Chain<V4, V5>, element5?: Chain<V5, V6>, element6?: Chain<V6, V7>, element7?: Chain<V7, V8>, element8?: Chain<V8, V9>, element9?: Chain<V9, V10>, element10?: Chain<V10, V11>, element11?: Chain<V11, V12>, element12?: Chain<V12, V13>, element13?: Chain<V13, V14>, element14?: Chain<V14, V15>, element15?: Chain<V15, V16>, element16?: Chain<V16, V17>, element17?: Chain<V17, V18>, element18?: Chain<V18, V19>, element19?: Chain<V19, V20>) => Function1<V1, Promise<V20>>; | ||
export declare const toFunctionAsync: ToFunctionAsyncCall; | ||
export {}; | ||
import type { SyncChain, AsyncChain, WeakChain, AsyncWeakChain, Function1 } from "./types"; | ||
export interface EvaluateCall { | ||
<V1, V2 = V1, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1: SyncChain<V1, V2>, element2?: SyncChain<V2, V3>, element3?: SyncChain<V3, V4>, element4?: SyncChain<V4, V5>, element5?: SyncChain<V5, V6>, element6?: SyncChain<V6, V7>, element7?: SyncChain<V7, V8>, element8?: SyncChain<V8, V9>, element9?: SyncChain<V9, V10>, element10?: SyncChain<V10, V11>, element11?: SyncChain<V11, V12>, element12?: SyncChain<V12, V13>, element13?: SyncChain<V13, V14>, element14?: SyncChain<V14, V15>, element15?: SyncChain<V15, V16>, element16?: SyncChain<V16, V17>, element17?: SyncChain<V17, V18>, element18?: SyncChain<V18, V19>, element19?: SyncChain<V19, V20>): V20; | ||
<V1, V2 = V1, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1: AsyncChain<V1, V2>, element2?: AsyncChain<V2, V3>, element3?: AsyncChain<V3, V4>, element4?: AsyncChain<V4, V5>, element5?: AsyncChain<V5, V6>, element6?: AsyncChain<V6, V7>, element7?: AsyncChain<V7, V8>, element8?: AsyncChain<V8, V9>, element9?: AsyncChain<V9, V10>, element10?: AsyncChain<V10, V11>, element11?: AsyncChain<V11, V12>, element12?: AsyncChain<V12, V13>, element13?: AsyncChain<V13, V14>, element14?: AsyncChain<V14, V15>, element15?: AsyncChain<V15, V16>, element16?: AsyncChain<V16, V17>, element17?: AsyncChain<V17, V18>, element18?: AsyncChain<V18, V19>, element19?: AsyncChain<V19, V20>): Promise<V20>; | ||
<V1, V2 = V1, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1: WeakChain<V1, V2>, element2?: WeakChain<V2, V3>, element3?: WeakChain<V3, V4>, element4?: WeakChain<V4, V5>, element5?: WeakChain<V5, V6>, element6?: WeakChain<V6, V7>, element7?: WeakChain<V7, V8>, element8?: WeakChain<V8, V9>, element9?: WeakChain<V9, V10>, element10?: WeakChain<V10, V11>, element11?: WeakChain<V11, V12>, element12?: WeakChain<V12, V13>, element13?: WeakChain<V13, V14>, element14?: WeakChain<V14, V15>, element15?: WeakChain<V15, V16>, element16?: WeakChain<V16, V17>, element17?: WeakChain<V17, V18>, element18?: WeakChain<V18, V19>, element19?: WeakChain<V19, V20>): V20 | undefined; | ||
<V1, V2 = V1, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1: AsyncWeakChain<V1, V2>, element2?: AsyncWeakChain<V2, V3>, element3?: AsyncWeakChain<V3, V4>, element4?: AsyncWeakChain<V4, V5>, element5?: AsyncWeakChain<V5, V6>, element6?: AsyncWeakChain<V6, V7>, element7?: AsyncWeakChain<V7, V8>, element8?: AsyncWeakChain<V8, V9>, element9?: AsyncWeakChain<V9, V10>, element10?: AsyncWeakChain<V10, V11>, element11?: AsyncWeakChain<V11, V12>, element12?: AsyncWeakChain<V12, V13>, element13?: AsyncWeakChain<V13, V14>, element14?: AsyncWeakChain<V14, V15>, element15?: AsyncWeakChain<V15, V16>, element16?: AsyncWeakChain<V16, V17>, element17?: AsyncWeakChain<V17, V18>, element18?: AsyncWeakChain<V18, V19>, element19?: AsyncWeakChain<V19, V20>): undefined | Promise<V20 | undefined>; | ||
} | ||
export declare const evaluate: EvaluateCall; | ||
export interface FunctionCall { | ||
<V1, V2 = V1, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1: SyncChain<V1, V2>, element2?: SyncChain<V2, V3>, element3?: SyncChain<V3, V4>, element4?: SyncChain<V4, V5>, element5?: SyncChain<V5, V6>, element6?: SyncChain<V6, V7>, element7?: SyncChain<V7, V8>, element8?: SyncChain<V8, V9>, element9?: SyncChain<V9, V10>, element10?: SyncChain<V10, V11>, element11?: SyncChain<V11, V12>, element12?: SyncChain<V12, V13>, element13?: SyncChain<V13, V14>, element14?: SyncChain<V14, V15>, element15?: SyncChain<V15, V16>, element16?: SyncChain<V16, V17>, element17?: SyncChain<V17, V18>, element18?: SyncChain<V18, V19>, element19?: SyncChain<V19, V20>): Function1<V1, V20>; | ||
<V1, V2 = V1, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1: AsyncChain<V1, V2>, element2?: AsyncChain<V2, V3>, element3?: AsyncChain<V3, V4>, element4?: AsyncChain<V4, V5>, element5?: AsyncChain<V5, V6>, element6?: AsyncChain<V6, V7>, element7?: AsyncChain<V7, V8>, element8?: AsyncChain<V8, V9>, element9?: AsyncChain<V9, V10>, element10?: AsyncChain<V10, V11>, element11?: AsyncChain<V11, V12>, element12?: AsyncChain<V12, V13>, element13?: AsyncChain<V13, V14>, element14?: AsyncChain<V14, V15>, element15?: AsyncChain<V15, V16>, element16?: AsyncChain<V16, V17>, element17?: AsyncChain<V17, V18>, element18?: AsyncChain<V18, V19>, element19?: AsyncChain<V19, V20>): Function1<V1, Promise<V20>>; | ||
<V1, V2 = V1, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1: WeakChain<V1, V2>, element2?: WeakChain<V2, V3>, element3?: WeakChain<V3, V4>, element4?: WeakChain<V4, V5>, element5?: WeakChain<V5, V6>, element6?: WeakChain<V6, V7>, element7?: WeakChain<V7, V8>, element8?: WeakChain<V8, V9>, element9?: WeakChain<V9, V10>, element10?: WeakChain<V10, V11>, element11?: WeakChain<V11, V12>, element12?: WeakChain<V12, V13>, element13?: WeakChain<V13, V14>, element14?: WeakChain<V14, V15>, element15?: WeakChain<V15, V16>, element16?: WeakChain<V16, V17>, element17?: WeakChain<V17, V18>, element18?: WeakChain<V18, V19>, element19?: WeakChain<V19, V20>): Function1<V1, V20 | undefined>; | ||
<V1, V2 = V1, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1: AsyncWeakChain<V1, V2>, element2?: AsyncWeakChain<V2, V3>, element3?: AsyncWeakChain<V3, V4>, element4?: AsyncWeakChain<V4, V5>, element5?: AsyncWeakChain<V5, V6>, element6?: AsyncWeakChain<V6, V7>, element7?: AsyncWeakChain<V7, V8>, element8?: AsyncWeakChain<V8, V9>, element9?: AsyncWeakChain<V9, V10>, element10?: AsyncWeakChain<V10, V11>, element11?: AsyncWeakChain<V11, V12>, element12?: AsyncWeakChain<V12, V13>, element13?: AsyncWeakChain<V13, V14>, element14?: AsyncWeakChain<V14, V15>, element15?: AsyncWeakChain<V15, V16>, element16?: AsyncWeakChain<V16, V17>, element17?: AsyncWeakChain<V17, V18>, element18?: AsyncWeakChain<V18, V19>, element19?: AsyncWeakChain<V19, V20>): Function1<V1, undefined | Promise<V20 | undefined>>; | ||
} | ||
export declare const toFunction: FunctionCall; | ||
//# sourceMappingURL=evaluate.d.ts.map |
@@ -5,32 +5,28 @@ import { chain } from "./chain"; | ||
// @ts-expect-error | ||
export const evaluateSync = (listen1, ...additionalListeners) => { | ||
export const evaluate = (listen1, ...additionalListeners) => { | ||
const chained = chain(listen1, ...additionalListeners); | ||
let currentValue = Error("Chain did not complete"); | ||
const unsubscribe = chained(value => { | ||
currentValue = value; | ||
}, undefined, {}); | ||
execute(unsubscribe); | ||
return currentValue; | ||
}; | ||
// @ts-expect-error | ||
export const evaluateAsync = (listen1, ...additionalListeners) => { | ||
const chained = chain(listen1, ...additionalListeners); | ||
let unsubscribe; | ||
const result = new Promise(resolve => { | ||
const status = { is: 'sync' }; | ||
let result = undefined; | ||
const promise = new Promise(resolve => { | ||
unsubscribe = chained(value => { | ||
result = value; | ||
resolve(value); | ||
}, undefined, {}); | ||
}, undefined, {}, status); | ||
}); | ||
result.then(() => { | ||
if (status.is === 'sync' || status.is === 'incomplete') { | ||
execute(unsubscribe); | ||
}); | ||
return result; | ||
return result; | ||
} | ||
if (status.is === 'async') { | ||
promise.then(() => { | ||
execute(unsubscribe); | ||
}); | ||
return promise; | ||
} | ||
console.error('Invalid status', status); | ||
}; | ||
// @ts-expect-error | ||
export const toFunctionSync = (listen1, ...additionalListeners) => { | ||
return (value) => evaluateSync(emit(value), listen1, ...additionalListeners); | ||
export const toFunction = (listen1, ...additionalListeners) => { | ||
return (value) => evaluate(emit(value), listen1, ...additionalListeners); | ||
}; | ||
// @ts-expect-error | ||
export const toFunctionAsync = (listen1, ...additionalListeners) => { | ||
return (value) => evaluateAsync(emit(value), listen1, ...additionalListeners); | ||
}; |
@@ -1,6 +0,6 @@ | ||
import { Chain } from './types'; | ||
import { AsyncChain } from './types'; | ||
export interface HasAddEventListener { | ||
addEventListener(event: string, listener: (event: Event) => void): void; | ||
} | ||
export declare const listenToEvent: <Target extends void | HasAddEventListener, EventName extends "dblclick" | "mousedown" | "mouseenter" | "mouseleave" | "mousemove" | "mouseout" | "mouseover" | "mouseup" | "click" | "contextmenu" | "auxclick" | "keydown" | "keypress" | "keyup" | "beforeinput" | "input" | "focus" | "blur" | "focusin" | "focusout" | "change" | "submit" | "reset" | "resize" | "scroll" | "wheel" | "drag" | "dragend" | "dragenter" | "dragleave" | "dragover" | "dragstart" | "drop" | "animationstart" | "animationend" | "animationiteration" | "transitionend" | "toggle" | "error" | "load" | "unload" | "loadeddata" | "loadedmetadata" | "canplay" | "canplaythrough" | "play" | "pause" | "seeked" | "seeking" | "timeupdate" | "ended" | "volumechange" | "ratechange" | "durationchange" | "stalled" | "suspend" | "emptied" | "progress" | "abort">(event: EventName) => Chain<Target, InferEventType<EventName>>; | ||
export declare const listenToEvent: <Target extends void | HasAddEventListener, EventName extends string>(event: EventName) => AsyncChain<Target, InferEventType<EventName>>; | ||
type InferEventType<Name extends EventList['name']> = (EventList & { | ||
@@ -94,4 +94,7 @@ name: Name; | ||
type: UIEvent; | ||
} | { | ||
name: string; | ||
type: CustomEvent; | ||
}; | ||
export {}; | ||
//# sourceMappingURL=event.d.ts.map |
import { execute } from './util'; | ||
export const listenToEvent = (event) => { | ||
return (resolve, target) => { | ||
return (next, target) => { | ||
let cleanup; | ||
const listener = (e) => { | ||
execute(cleanup); | ||
cleanup = resolve(e); | ||
cleanup = next(e); | ||
}; | ||
@@ -9,0 +9,0 @@ (target ?? window).addEventListener(event, listener); |
@@ -1,4 +0,14 @@ | ||
import { Function1, Chain } from "./types"; | ||
type IfCallFallback<Range, Fallback> = <V1 extends Range, V2, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1?: Chain<V1, V2>, element2?: Chain<V2, V3>, element3?: Chain<V3, V4>, element4?: Chain<V4, V5>, element5?: Chain<V5, V6>, element6?: Chain<V6, V7>, element7?: Chain<V7, V8>, element8?: Chain<V8, V9>, element9?: Chain<V9, V10>, element10?: Chain<V10, V11>, element11?: Chain<V11, V12>, element12?: Chain<V12, V13>, element13?: Chain<V13, V14>, element14?: Chain<V14, V15>, element15?: Chain<V15, V16>, element16?: Chain<V16, V17>, element17?: Chain<V17, V18>, element18?: Chain<V18, V19>, element19?: Chain<V19, V20>) => Chain<V1, Fallback | V20>; | ||
type IfCall<Range> = <V1 extends Range, V2, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1?: Chain<V1, V2>, element2?: Chain<V2, V3>, element3?: Chain<V3, V4>, element4?: Chain<V4, V5>, element5?: Chain<V5, V6>, element6?: Chain<V6, V7>, element7?: Chain<V7, V8>, element8?: Chain<V8, V9>, element9?: Chain<V9, V10>, element10?: Chain<V10, V11>, element11?: Chain<V11, V12>, element12?: Chain<V12, V13>, element13?: Chain<V13, V14>, element14?: Chain<V14, V15>, element15?: Chain<V15, V16>, element16?: Chain<V16, V17>, element17?: Chain<V17, V18>, element18?: Chain<V18, V19>, element19?: Chain<V19, V20>) => Chain<V1, V1 | V20>; | ||
import { Function1, SyncChain, AsyncChain, WeakChain, AsyncWeakChain } from "./types"; | ||
export interface IfCallFallback<Range, Fallback> { | ||
<V1 extends Range, V2, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1?: SyncChain<V1, V2>, element2?: SyncChain<V2, V3>, element3?: SyncChain<V3, V4>, element4?: SyncChain<V4, V5>, element5?: SyncChain<V5, V6>, element6?: SyncChain<V6, V7>, element7?: SyncChain<V7, V8>, element8?: SyncChain<V8, V9>, element9?: SyncChain<V9, V10>, element10?: SyncChain<V10, V11>, element11?: SyncChain<V11, V12>, element12?: SyncChain<V12, V13>, element13?: SyncChain<V13, V14>, element14?: SyncChain<V14, V15>, element15?: SyncChain<V15, V16>, element16?: SyncChain<V16, V17>, element17?: SyncChain<V17, V18>, element18?: SyncChain<V18, V19>, element19?: SyncChain<V19, V20>): SyncChain<V1, Fallback | V20>; | ||
<V1 extends Range, V2, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1?: AsyncChain<V1, V2>, element2?: AsyncChain<V2, V3>, element3?: AsyncChain<V3, V4>, element4?: AsyncChain<V4, V5>, element5?: AsyncChain<V5, V6>, element6?: AsyncChain<V6, V7>, element7?: AsyncChain<V7, V8>, element8?: AsyncChain<V8, V9>, element9?: AsyncChain<V9, V10>, element10?: AsyncChain<V10, V11>, element11?: AsyncChain<V11, V12>, element12?: AsyncChain<V12, V13>, element13?: AsyncChain<V13, V14>, element14?: AsyncChain<V14, V15>, element15?: AsyncChain<V15, V16>, element16?: AsyncChain<V16, V17>, element17?: AsyncChain<V17, V18>, element18?: AsyncChain<V18, V19>, element19?: AsyncChain<V19, V20>): AsyncChain<V1, Fallback | V20>; | ||
<V1 extends Range, V2, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1?: WeakChain<V1, V2>, element2?: WeakChain<V2, V3>, element3?: WeakChain<V3, V4>, element4?: WeakChain<V4, V5>, element5?: WeakChain<V5, V6>, element6?: WeakChain<V6, V7>, element7?: WeakChain<V7, V8>, element8?: WeakChain<V8, V9>, element9?: WeakChain<V9, V10>, element10?: WeakChain<V10, V11>, element11?: WeakChain<V11, V12>, element12?: WeakChain<V12, V13>, element13?: WeakChain<V13, V14>, element14?: WeakChain<V14, V15>, element15?: WeakChain<V15, V16>, element16?: WeakChain<V16, V17>, element17?: WeakChain<V17, V18>, element18?: WeakChain<V18, V19>, element19?: WeakChain<V19, V20>): WeakChain<V1, Fallback | V20>; | ||
<V1 extends Range, V2, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1?: AsyncWeakChain<V1, V2>, element2?: AsyncWeakChain<V2, V3>, element3?: AsyncWeakChain<V3, V4>, element4?: AsyncWeakChain<V4, V5>, element5?: AsyncWeakChain<V5, V6>, element6?: AsyncWeakChain<V6, V7>, element7?: AsyncWeakChain<V7, V8>, element8?: AsyncWeakChain<V8, V9>, element9?: AsyncWeakChain<V9, V10>, element10?: AsyncWeakChain<V10, V11>, element11?: AsyncWeakChain<V11, V12>, element12?: AsyncWeakChain<V12, V13>, element13?: AsyncWeakChain<V13, V14>, element14?: AsyncWeakChain<V14, V15>, element15?: AsyncWeakChain<V15, V16>, element16?: AsyncWeakChain<V16, V17>, element17?: AsyncWeakChain<V17, V18>, element18?: AsyncWeakChain<V18, V19>, element19?: AsyncWeakChain<V19, V20>): AsyncWeakChain<V1, Fallback | V20>; | ||
} | ||
export interface IfCall<Range> { | ||
<V1 extends Range, V2, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1?: SyncChain<V1, V2>, element2?: SyncChain<V2, V3>, element3?: SyncChain<V3, V4>, element4?: SyncChain<V4, V5>, element5?: SyncChain<V5, V6>, element6?: SyncChain<V6, V7>, element7?: SyncChain<V7, V8>, element8?: SyncChain<V8, V9>, element9?: SyncChain<V9, V10>, element10?: SyncChain<V10, V11>, element11?: SyncChain<V11, V12>, element12?: SyncChain<V12, V13>, element13?: SyncChain<V13, V14>, element14?: SyncChain<V14, V15>, element15?: SyncChain<V15, V16>, element16?: SyncChain<V16, V17>, element17?: SyncChain<V17, V18>, element18?: SyncChain<V18, V19>, element19?: SyncChain<V19, V20>): SyncChain<V1, V1 | V20>; | ||
<V1 extends Range, V2, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1?: AsyncChain<V1, V2>, element2?: AsyncChain<V2, V3>, element3?: AsyncChain<V3, V4>, element4?: AsyncChain<V4, V5>, element5?: AsyncChain<V5, V6>, element6?: AsyncChain<V6, V7>, element7?: AsyncChain<V7, V8>, element8?: AsyncChain<V8, V9>, element9?: AsyncChain<V9, V10>, element10?: AsyncChain<V10, V11>, element11?: AsyncChain<V11, V12>, element12?: AsyncChain<V12, V13>, element13?: AsyncChain<V13, V14>, element14?: AsyncChain<V14, V15>, element15?: AsyncChain<V15, V16>, element16?: AsyncChain<V16, V17>, element17?: AsyncChain<V17, V18>, element18?: AsyncChain<V18, V19>, element19?: AsyncChain<V19, V20>): AsyncChain<V1, V1 | V20>; | ||
<V1 extends Range, V2, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1?: WeakChain<V1, V2>, element2?: WeakChain<V2, V3>, element3?: WeakChain<V3, V4>, element4?: WeakChain<V4, V5>, element5?: WeakChain<V5, V6>, element6?: WeakChain<V6, V7>, element7?: WeakChain<V7, V8>, element8?: WeakChain<V8, V9>, element9?: WeakChain<V9, V10>, element10?: WeakChain<V10, V11>, element11?: WeakChain<V11, V12>, element12?: WeakChain<V12, V13>, element13?: WeakChain<V13, V14>, element14?: WeakChain<V14, V15>, element15?: WeakChain<V15, V16>, element16?: WeakChain<V16, V17>, element17?: WeakChain<V17, V18>, element18?: WeakChain<V18, V19>, element19?: WeakChain<V19, V20>): WeakChain<V1, V1 | V20>; | ||
<V1 extends Range, V2, V3 = V2, V4 = V3, V5 = V4, V6 = V5, V7 = V6, V8 = V7, V9 = V8, V10 = V9, V11 = V10, V12 = V11, V13 = V12, V14 = V13, V15 = V14, V16 = V15, V17 = V16, V18 = V17, V19 = V18, V20 = V19>(element1?: AsyncWeakChain<V1, V2>, element2?: AsyncWeakChain<V2, V3>, element3?: AsyncWeakChain<V3, V4>, element4?: AsyncWeakChain<V4, V5>, element5?: AsyncWeakChain<V5, V6>, element6?: AsyncWeakChain<V6, V7>, element7?: AsyncWeakChain<V7, V8>, element8?: AsyncWeakChain<V8, V9>, element9?: AsyncWeakChain<V9, V10>, element10?: AsyncWeakChain<V10, V11>, element11?: AsyncWeakChain<V11, V12>, element12?: AsyncWeakChain<V12, V13>, element13?: AsyncWeakChain<V13, V14>, element14?: AsyncWeakChain<V14, V15>, element15?: AsyncWeakChain<V15, V16>, element16?: AsyncWeakChain<V16, V17>, element17?: AsyncWeakChain<V17, V18>, element18?: AsyncWeakChain<V18, V19>, element19?: AsyncWeakChain<V19, V20>): AsyncWeakChain<V1, V1 | V20>; | ||
} | ||
export interface IfFn { | ||
@@ -10,3 +20,2 @@ <Range>(condition: Function1<Range, boolean>): IfCall<Range>; | ||
export declare const ifNot: <V1>(condition: Function1<V1, boolean>) => IfCall<V1>; | ||
export {}; | ||
//# sourceMappingURL=if.d.ts.map |
@@ -7,5 +7,5 @@ import { chain } from "./chain"; | ||
const chained = chain(first, ...elements); | ||
return (next, parameter, context) => { | ||
return (next, parameter, context, status) => { | ||
if (condition(parameter)) { | ||
return chained(next, parameter, context); | ||
return chained(next, parameter, context, status); | ||
} | ||
@@ -12,0 +12,0 @@ return hasFallback ? args[0] : next(parameter); |
@@ -1,12 +0,12 @@ | ||
import { Maybe, Function1, Chain } from './types'; | ||
import { Maybe, Function1, ConnectedChain } from './types'; | ||
export interface MaybeKeyCall { | ||
<O extends Object, Key extends keyof O>(keyOf: Key): Chain<undefined, undefined>; | ||
<O extends Object, Key extends keyof O>(keyOf: Key): Chain<null, null>; | ||
<O extends Object, Key extends keyof O>(keyOf: Key): Chain<O | undefined, O[Key] | undefined>; | ||
<O extends Object, Key extends keyof O>(keyOf: Key): Chain<O | null, O[Key] | null>; | ||
<O extends Object, Key extends keyof O>(keyOf: Key): Chain<Maybe<O>, Maybe<O[Key]>>; | ||
<O extends Object, Key extends keyof O>(keyOf: Key): Chain<O, O[Key]>; | ||
<O extends Object, Key extends keyof O>(keyOf: Key): ConnectedChain<undefined, undefined>; | ||
<O extends Object, Key extends keyof O>(keyOf: Key): ConnectedChain<null, null>; | ||
<O extends Object, Key extends keyof O>(keyOf: Key): ConnectedChain<O | undefined, O[Key] | undefined>; | ||
<O extends Object, Key extends keyof O>(keyOf: Key): ConnectedChain<O | null, O[Key] | null>; | ||
<O extends Object, Key extends keyof O>(keyOf: Key): ConnectedChain<Maybe<O>, Maybe<O[Key]>>; | ||
<O extends Object, Key extends keyof O>(keyOf: Key): ConnectedChain<O, O[Key]>; | ||
} | ||
export declare const maybeKey: MaybeKeyCall; | ||
export declare const maybeSelect: <V1, Filter extends V1 & (null | undefined), From extends Exclude<V1, Filter>, To>(mapping: Function1<From, To>) => Chain<From | V1, To | Filter>; | ||
export declare const maybeSelect: <V1, Filter extends V1 & (null | undefined), From extends Exclude<V1, Filter>, To>(mapping: Function1<From, To>) => ConnectedChain<From | V1, To | Filter>; | ||
//# sourceMappingURL=maybe.d.ts.map |
@@ -1,23 +0,9 @@ | ||
import { Chain } from "./types"; | ||
export declare function merge<V>(): Chain<V, never>; | ||
export declare function merge<From, To>(element1: Chain<From, To>): Chain<From, To>; | ||
export declare function merge<From, To1, To2>(element1: Chain<From, To1>, element2: Chain<From, To2>): Chain<From, To1 | To2>; | ||
export declare function merge<From, To1, To2, To3>(element1: Chain<From, To1>, element2: Chain<From, To2>, element3: Chain<From, To3>): Chain<From, To1 | To2 | To3>; | ||
export declare function merge<From, To1, To2, To3, To4>(element1: Chain<From, To1>, element2: Chain<From, To2>, element3: Chain<From, To3>, element4: Chain<From, To4>): Chain<From, To1 | To2 | To3 | To4>; | ||
export declare function merge<From, To1, To2, To3, To4, To5>(element1: Chain<From, To1>, element2: Chain<From, To2>, element3: Chain<From, To3>, element4: Chain<From, To4>, element5: Chain<From, To5>): Chain<From, To1 | To2 | To3 | To4 | To5>; | ||
export declare function merge<From, To1, To2, To3, To4, To5, To6>(element1: Chain<From, To1>, element2: Chain<From, To2>, element3: Chain<From, To3>, element4: Chain<From, To4>, element5: Chain<From, To5>, element6: Chain<From, To6>): Chain<From, To1 | To2 | To3 | To4 | To5 | To6>; | ||
export declare function merge<From, To1, To2, To3, To4, To5, To6, To7>(element1: Chain<From, To1>, element2: Chain<From, To2>, element3: Chain<From, To3>, element4: Chain<From, To4>, element5: Chain<From, To5>, element6: Chain<From, To6>, element7: Chain<From, To7>): Chain<From, To1 | To2 | To3 | To4 | To5 | To6 | To7>; | ||
export declare function merge<From, To1, To2, To3, To4, To5, To6, To7, To8>(element1: Chain<From, To1>, element2: Chain<From, To2>, element3: Chain<From, To3>, element4: Chain<From, To4>, element5: Chain<From, To5>, element6: Chain<From, To6>, element7: Chain<From, To7>, element8: Chain<From, To8>): Chain<From, To1 | To2 | To3 | To4 | To5 | To6 | To7 | To8>; | ||
export declare function merge<From, To1, To2, To3, To4, To5, To6, To7, To8, To9>(element1: Chain<From, To1>, element2: Chain<From, To2>, element3: Chain<From, To3>, element4: Chain<From, To4>, element5: Chain<From, To5>, element6: Chain<From, To6>, element7: Chain<From, To7>, element8: Chain<From, To8>, element9: Chain<From, To9>): Chain<From, To1 | To2 | To3 | To4 | To5 | To6 | To7 | To8 | To9>; | ||
export declare function merge<From, To1, To2, To3, To4, To5, To6, To7, To8, To9, To10>(element1: Chain<From, To1>, element2: Chain<From, To2>, element3: Chain<From, To3>, element4: Chain<From, To4>, element5: Chain<From, To5>, element6: Chain<From, To6>, element7: Chain<From, To7>, element8: Chain<From, To8>, element9: Chain<From, To9>, element10: Chain<From, To10>): Chain<From, To1 | To2 | To3 | To4 | To5 | To6 | To7 | To8 | To9 | To10>; | ||
export declare function merge<From, To1, To2, To3, To4, To5, To6, To7, To8, To9, To10, To11>(element1: Chain<From, To1>, element2: Chain<From, To2>, element3: Chain<From, To3>, element4: Chain<From, To4>, element5: Chain<From, To5>, element6: Chain<From, To6>, element7: Chain<From, To7>, element8: Chain<From, To8>, element9: Chain<From, To9>, element10: Chain<From, To10>, element11: Chain<From, To11>): Chain<From, To1 | To2 | To3 | To4 | To5 | To6 | To7 | To8 | To9 | To10 | To11>; | ||
export declare function merge<From, To1, To2, To3, To4, To5, To6, To7, To8, To9, To10, To11, To12>(element1: Chain<From, To1>, element2: Chain<From, To2>, element3: Chain<From, To3>, element4: Chain<From, To4>, element5: Chain<From, To5>, element6: Chain<From, To6>, element7: Chain<From, To7>, element8: Chain<From, To8>, element9: Chain<From, To9>, element10: Chain<From, To10>, element11: Chain<From, To11>, element12: Chain<From, To12>): Chain<From, To1 | To2 | To3 | To4 | To5 | To6 | To7 | To8 | To9 | To10 | To11 | To12>; | ||
export declare function merge<From, To1, To2, To3, To4, To5, To6, To7, To8, To9, To10, To11, To12, To13>(element1: Chain<From, To1>, element2: Chain<From, To2>, element3: Chain<From, To3>, element4: Chain<From, To4>, element5: Chain<From, To5>, element6: Chain<From, To6>, element7: Chain<From, To7>, element8: Chain<From, To8>, element9: Chain<From, To9>, element10: Chain<From, To10>, element11: Chain<From, To11>, element12: Chain<From, To12>, element13: Chain<From, To13>): Chain<From, To1 | To2 | To3 | To4 | To5 | To6 | To7 | To8 | To9 | To10 | To11 | To12 | To13>; | ||
export declare function merge<From, To1, To2, To3, To4, To5, To6, To7, To8, To9, To10, To11, To12, To13, To14>(element1: Chain<From, To1>, element2: Chain<From, To2>, element3: Chain<From, To3>, element4: Chain<From, To4>, element5: Chain<From, To5>, element6: Chain<From, To6>, element7: Chain<From, To7>, element8: Chain<From, To8>, element9: Chain<From, To9>, element10: Chain<From, To10>, element11: Chain<From, To11>, element12: Chain<From, To12>, element13: Chain<From, To13>, element14: Chain<From, To14>): Chain<From, To1 | To2 | To3 | To4 | To5 | To6 | To7 | To8 | To9 | To10 | To11 | To12 | To13 | To14>; | ||
export declare function merge<From, To1, To2, To3, To4, To5, To6, To7, To8, To9, To10, To11, To12, To13, To14, To15>(element1: Chain<From, To1>, element2: Chain<From, To2>, element3: Chain<From, To3>, element4: Chain<From, To4>, element5: Chain<From, To5>, element6: Chain<From, To6>, element7: Chain<From, To7>, element8: Chain<From, To8>, element9: Chain<From, To9>, element10: Chain<From, To10>, element11: Chain<From, To11>, element12: Chain<From, To12>, element13: Chain<From, To13>, element14: Chain<From, To14>, element15: Chain<From, To15>): Chain<From, To1 | To2 | To3 | To4 | To5 | To6 | To7 | To8 | To9 | To10 | To11 | To12 | To13 | To14 | To15>; | ||
export declare function merge<From, To1, To2, To3, To4, To5, To6, To7, To8, To9, To10, To11, To12, To13, To14, To15, To16>(element1: Chain<From, To1>, element2: Chain<From, To2>, element3: Chain<From, To3>, element4: Chain<From, To4>, element5: Chain<From, To5>, element6: Chain<From, To6>, element7: Chain<From, To7>, element8: Chain<From, To8>, element9: Chain<From, To9>, element10: Chain<From, To10>, element11: Chain<From, To11>, element12: Chain<From, To12>, element13: Chain<From, To13>, element14: Chain<From, To14>, element15: Chain<From, To15>, element16: Chain<From, To16>): Chain<From, To1 | To2 | To3 | To4 | To5 | To6 | To7 | To8 | To9 | To10 | To11 | To12 | To13 | To14 | To15 | To16>; | ||
export declare function merge<From, To1, To2, To3, To4, To5, To6, To7, To8, To9, To10, To11, To12, To13, To14, To15, To16, To17>(element1: Chain<From, To1>, element2: Chain<From, To2>, element3: Chain<From, To3>, element4: Chain<From, To4>, element5: Chain<From, To5>, element6: Chain<From, To6>, element7: Chain<From, To7>, element8: Chain<From, To8>, element9: Chain<From, To9>, element10: Chain<From, To10>, element11: Chain<From, To11>, element12: Chain<From, To12>, element13: Chain<From, To13>, element14: Chain<From, To14>, element15: Chain<From, To15>, element16: Chain<From, To16>, element17: Chain<From, To17>): Chain<From, To1 | To2 | To3 | To4 | To5 | To6 | To7 | To8 | To9 | To10 | To11 | To12 | To13 | To14 | To15 | To16 | To17>; | ||
export declare function merge<From, To1, To2, To3, To4, To5, To6, To7, To8, To9, To10, To11, To12, To13, To14, To15, To16, To17, To18>(element1: Chain<From, To1>, element2: Chain<From, To2>, element3: Chain<From, To3>, element4: Chain<From, To4>, element5: Chain<From, To5>, element6: Chain<From, To6>, element7: Chain<From, To7>, element8: Chain<From, To8>, element9: Chain<From, To9>, element10: Chain<From, To10>, element11: Chain<From, To11>, element12: Chain<From, To12>, element13: Chain<From, To13>, element14: Chain<From, To14>, element15: Chain<From, To15>, element16: Chain<From, To16>, element17: Chain<From, To17>, element18: Chain<From, To18>): Chain<From, To1 | To2 | To3 | To4 | To5 | To6 | To7 | To8 | To9 | To10 | To11 | To12 | To13 | To14 | To15 | To16 | To17 | To18>; | ||
export declare function merge<From, To1, To2, To3, To4, To5, To6, To7, To8, To9, To10, To11, To12, To13, To14, To15, To16, To17, To18, To19>(element1: Chain<From, To1>, element2: Chain<From, To2>, element3: Chain<From, To3>, element4: Chain<From, To4>, element5: Chain<From, To5>, element6: Chain<From, To6>, element7: Chain<From, To7>, element8: Chain<From, To8>, element9: Chain<From, To9>, element10: Chain<From, To10>, element11: Chain<From, To11>, element12: Chain<From, To12>, element13: Chain<From, To13>, element14: Chain<From, To14>, element15: Chain<From, To15>, element16: Chain<From, To16>, element17: Chain<From, To17>, element18: Chain<From, To18>, element19: Chain<From, To19>): Chain<From, To1 | To2 | To3 | To4 | To5 | To6 | To7 | To8 | To9 | To10 | To11 | To12 | To13 | To14 | To15 | To16 | To17 | To18 | To19>; | ||
export declare function merge<From, To1, To2, To3, To4, To5, To6, To7, To8, To9, To10, To11, To12, To13, To14, To15, To16, To17, To18, To19, To20>(element1: Chain<From, To1>, element2: Chain<From, To2>, element3: Chain<From, To3>, element4: Chain<From, To4>, element5: Chain<From, To5>, element6: Chain<From, To6>, element7: Chain<From, To7>, element8: Chain<From, To8>, element9: Chain<From, To9>, element10: Chain<From, To10>, element11: Chain<From, To11>, element12: Chain<From, To12>, element13: Chain<From, To13>, element14: Chain<From, To14>, element15: Chain<From, To15>, element16: Chain<From, To16>, element17: Chain<From, To17>, element18: Chain<From, To18>, element19: Chain<From, To19>, element20: Chain<From, To20>): Chain<From, To1 | To2 | To3 | To4 | To5 | To6 | To7 | To8 | To9 | To10 | To11 | To12 | To13 | To14 | To15 | To16 | To17 | To18 | To19 | To20>; | ||
import { SyncChain, AsyncChain, WeakChain, AsyncWeakChain } from "./types"; | ||
export interface MergeCall { | ||
<From, To1 = never, To2 = never, To3 = never, To4 = never, To5 = never, To6 = never, To7 = never, To8 = never, To9 = never, To10 = never, To11 = never, To12 = never, To13 = never, To14 = never, To15 = never, To16 = never, To17 = never, To18 = never, To19 = never, To20 = never>(element1?: SyncChain<From, To1>, element2?: SyncChain<From, To2>, element3?: SyncChain<From, To3>, element4?: SyncChain<From, To4>, element5?: SyncChain<From, To5>, element6?: SyncChain<From, To6>, element7?: SyncChain<From, To7>, element8?: SyncChain<From, To8>, element9?: SyncChain<From, To9>, element10?: SyncChain<From, To10>, element11?: SyncChain<From, To11>, element12?: SyncChain<From, To12>, element13?: SyncChain<From, To13>, element14?: SyncChain<From, To14>, element15?: SyncChain<From, To15>, element16?: SyncChain<From, To16>, element17?: SyncChain<From, To17>, element18?: SyncChain<From, To18>, element19?: SyncChain<From, To19>, element20?: SyncChain<From, To20>): SyncChain<From, To1 | To2 | To3 | To4 | To5 | To6 | To7 | To8 | To9 | To10 | To11 | To12 | To13 | To14 | To15 | To16 | To17 | To18 | To19 | To20>; | ||
<From, To1 = never, To2 = never, To3 = never, To4 = never, To5 = never, To6 = never, To7 = never, To8 = never, To9 = never, To10 = never, To11 = never, To12 = never, To13 = never, To14 = never, To15 = never, To16 = never, To17 = never, To18 = never, To19 = never, To20 = never>(element1?: AsyncChain<From, To1>, element2?: AsyncChain<From, To2>, element3?: AsyncChain<From, To3>, element4?: AsyncChain<From, To4>, element5?: AsyncChain<From, To5>, element6?: AsyncChain<From, To6>, element7?: AsyncChain<From, To7>, element8?: AsyncChain<From, To8>, element9?: AsyncChain<From, To9>, element10?: AsyncChain<From, To10>, element11?: AsyncChain<From, To11>, element12?: AsyncChain<From, To12>, element13?: AsyncChain<From, To13>, element14?: AsyncChain<From, To14>, element15?: AsyncChain<From, To15>, element16?: AsyncChain<From, To16>, element17?: AsyncChain<From, To17>, element18?: AsyncChain<From, To18>, element19?: AsyncChain<From, To19>, element20?: AsyncChain<From, To20>): AsyncChain<From, To1 | To2 | To3 | To4 | To5 | To6 | To7 | To8 | To9 | To10 | To11 | To12 | To13 | To14 | To15 | To16 | To17 | To18 | To19 | To20>; | ||
<From, To1 = never, To2 = never, To3 = never, To4 = never, To5 = never, To6 = never, To7 = never, To8 = never, To9 = never, To10 = never, To11 = never, To12 = never, To13 = never, To14 = never, To15 = never, To16 = never, To17 = never, To18 = never, To19 = never, To20 = never>(element1?: WeakChain<From, To1>, element2?: WeakChain<From, To2>, element3?: WeakChain<From, To3>, element4?: WeakChain<From, To4>, element5?: WeakChain<From, To5>, element6?: WeakChain<From, To6>, element7?: WeakChain<From, To7>, element8?: WeakChain<From, To8>, element9?: WeakChain<From, To9>, element10?: WeakChain<From, To10>, element11?: WeakChain<From, To11>, element12?: WeakChain<From, To12>, element13?: WeakChain<From, To13>, element14?: WeakChain<From, To14>, element15?: WeakChain<From, To15>, element16?: WeakChain<From, To16>, element17?: WeakChain<From, To17>, element18?: WeakChain<From, To18>, element19?: WeakChain<From, To19>, element20?: WeakChain<From, To20>): WeakChain<From, To1 | To2 | To3 | To4 | To5 | To6 | To7 | To8 | To9 | To10 | To11 | To12 | To13 | To14 | To15 | To16 | To17 | To18 | To19 | To20>; | ||
<From, To1 = never, To2 = never, To3 = never, To4 = never, To5 = never, To6 = never, To7 = never, To8 = never, To9 = never, To10 = never, To11 = never, To12 = never, To13 = never, To14 = never, To15 = never, To16 = never, To17 = never, To18 = never, To19 = never, To20 = never>(element1?: AsyncWeakChain<From, To1>, element2?: AsyncWeakChain<From, To2>, element3?: AsyncWeakChain<From, To3>, element4?: AsyncWeakChain<From, To4>, element5?: AsyncWeakChain<From, To5>, element6?: AsyncWeakChain<From, To6>, element7?: AsyncWeakChain<From, To7>, element8?: AsyncWeakChain<From, To8>, element9?: AsyncWeakChain<From, To9>, element10?: AsyncWeakChain<From, To10>, element11?: AsyncWeakChain<From, To11>, element12?: AsyncWeakChain<From, To12>, element13?: AsyncWeakChain<From, To13>, element14?: AsyncWeakChain<From, To14>, element15?: AsyncWeakChain<From, To15>, element16?: AsyncWeakChain<From, To16>, element17?: AsyncWeakChain<From, To17>, element18?: AsyncWeakChain<From, To18>, element19?: AsyncWeakChain<From, To19>, element20?: AsyncWeakChain<From, To20>): AsyncWeakChain<From, To1 | To2 | To3 | To4 | To5 | To6 | To7 | To8 | To9 | To10 | To11 | To12 | To13 | To14 | To15 | To16 | To17 | To18 | To19 | To20>; | ||
} | ||
export declare const merge: MergeCall; | ||
//# sourceMappingURL=merge.d.ts.map |
@@ -1,3 +0,4 @@ | ||
export function merge(...elements) { | ||
return (next, parameter, context) => { | ||
// @ts-expect-error | ||
export const merge = (...elements) => { | ||
return (next, parameter, context, status) => { | ||
for (let i = 0; i < elements.length; i++) { | ||
@@ -8,4 +9,4 @@ if (!context[i]) { | ||
} | ||
return elements.map((listen, i) => listen(next, parameter, context[i])); | ||
return elements.map((listen, i) => listen(next, parameter, context[i], status)); | ||
}; | ||
} | ||
}; |
@@ -1,23 +0,23 @@ | ||
import type { PrimitiveSignal, PrimitiveReadonly, Chain } from './types'; | ||
import type { PrimitiveSignal, PrimitiveReadonly, AnyChain } from './types'; | ||
export interface ConnectCall { | ||
<V1, V2>(element1: Chain<V1, V2>): PrimitiveReadonly<V2>; | ||
<V1, V2, V3>(element1: Chain<V1, V2>, element2: Chain<V2, V3>): PrimitiveReadonly<V3>; | ||
<V1, V2, V3, V4>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>): PrimitiveReadonly<V4>; | ||
<V1, V2, V3, V4, V5>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>): PrimitiveReadonly<V5>; | ||
<V1, V2, V3, V4, V5, V6>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>): PrimitiveReadonly<V6>; | ||
<V1, V2, V3, V4, V5, V6, V7>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>): PrimitiveReadonly<V7>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>): PrimitiveReadonly<V8>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>): PrimitiveReadonly<V9>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>): PrimitiveReadonly<V10>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>): PrimitiveReadonly<V11>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>): PrimitiveReadonly<V12>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>, element12: Chain<V12, V13>): PrimitiveReadonly<V13>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>, element12: Chain<V12, V13>, element13: Chain<V13, V14>): PrimitiveReadonly<V14>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>, element12: Chain<V12, V13>, element13: Chain<V13, V14>, element14: Chain<V14, V15>): PrimitiveReadonly<V15>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>, element12: Chain<V12, V13>, element13: Chain<V13, V14>, element14: Chain<V14, V15>, element15: Chain<V15, V16>): PrimitiveReadonly<V16>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>, element12: Chain<V12, V13>, element13: Chain<V13, V14>, element14: Chain<V14, V15>, element15: Chain<V15, V16>, element16: Chain<V16, V17>): PrimitiveReadonly<V17>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>, element12: Chain<V12, V13>, element13: Chain<V13, V14>, element14: Chain<V14, V15>, element15: Chain<V15, V16>, element16: Chain<V16, V17>, element17: Chain<V17, V18>): PrimitiveReadonly<V18>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>, element12: Chain<V12, V13>, element13: Chain<V13, V14>, element14: Chain<V14, V15>, element15: Chain<V15, V16>, element16: Chain<V16, V17>, element17: Chain<V17, V18>, element18: Chain<V18, V19>): PrimitiveReadonly<V19>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20>(element1: Chain<V1, V2>, element2: Chain<V2, V3>, element3: Chain<V3, V4>, element4: Chain<V4, V5>, element5: Chain<V5, V6>, element6: Chain<V6, V7>, element7: Chain<V7, V8>, element8: Chain<V8, V9>, element9: Chain<V9, V10>, element10: Chain<V10, V11>, element11: Chain<V11, V12>, element12: Chain<V12, V13>, element13: Chain<V13, V14>, element14: Chain<V14, V15>, element15: Chain<V15, V16>, element16: Chain<V16, V17>, element17: Chain<V17, V18>, element18: Chain<V18, V19>, element19: Chain<V19, V20>): PrimitiveReadonly<V20>; | ||
(listen1: Chain<unknown, unknown>, ...additionalListeners: Chain<unknown, unknown>[]): PrimitiveReadonly<unknown>; | ||
<V1, V2>(element1: AnyChain<V1, V2>): PrimitiveReadonly<V2>; | ||
<V1, V2, V3>(element1: AnyChain<V1, V2>, element2: AnyChain<V2, V3>): PrimitiveReadonly<V3>; | ||
<V1, V2, V3, V4>(element1: AnyChain<V1, V2>, element2: AnyChain<V2, V3>, element3: AnyChain<V3, V4>): PrimitiveReadonly<V4>; | ||
<V1, V2, V3, V4, V5>(element1: AnyChain<V1, V2>, element2: AnyChain<V2, V3>, element3: AnyChain<V3, V4>, element4: AnyChain<V4, V5>): PrimitiveReadonly<V5>; | ||
<V1, V2, V3, V4, V5, V6>(element1: AnyChain<V1, V2>, element2: AnyChain<V2, V3>, element3: AnyChain<V3, V4>, element4: AnyChain<V4, V5>, element5: AnyChain<V5, V6>): PrimitiveReadonly<V6>; | ||
<V1, V2, V3, V4, V5, V6, V7>(element1: AnyChain<V1, V2>, element2: AnyChain<V2, V3>, element3: AnyChain<V3, V4>, element4: AnyChain<V4, V5>, element5: AnyChain<V5, V6>, element6: AnyChain<V6, V7>): PrimitiveReadonly<V7>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8>(element1: AnyChain<V1, V2>, element2: AnyChain<V2, V3>, element3: AnyChain<V3, V4>, element4: AnyChain<V4, V5>, element5: AnyChain<V5, V6>, element6: AnyChain<V6, V7>, element7: AnyChain<V7, V8>): PrimitiveReadonly<V8>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9>(element1: AnyChain<V1, V2>, element2: AnyChain<V2, V3>, element3: AnyChain<V3, V4>, element4: AnyChain<V4, V5>, element5: AnyChain<V5, V6>, element6: AnyChain<V6, V7>, element7: AnyChain<V7, V8>, element8: AnyChain<V8, V9>): PrimitiveReadonly<V9>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10>(element1: AnyChain<V1, V2>, element2: AnyChain<V2, V3>, element3: AnyChain<V3, V4>, element4: AnyChain<V4, V5>, element5: AnyChain<V5, V6>, element6: AnyChain<V6, V7>, element7: AnyChain<V7, V8>, element8: AnyChain<V8, V9>, element9: AnyChain<V9, V10>): PrimitiveReadonly<V10>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11>(element1: AnyChain<V1, V2>, element2: AnyChain<V2, V3>, element3: AnyChain<V3, V4>, element4: AnyChain<V4, V5>, element5: AnyChain<V5, V6>, element6: AnyChain<V6, V7>, element7: AnyChain<V7, V8>, element8: AnyChain<V8, V9>, element9: AnyChain<V9, V10>, element10: AnyChain<V10, V11>): PrimitiveReadonly<V11>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12>(element1: AnyChain<V1, V2>, element2: AnyChain<V2, V3>, element3: AnyChain<V3, V4>, element4: AnyChain<V4, V5>, element5: AnyChain<V5, V6>, element6: AnyChain<V6, V7>, element7: AnyChain<V7, V8>, element8: AnyChain<V8, V9>, element9: AnyChain<V9, V10>, element10: AnyChain<V10, V11>, element11: AnyChain<V11, V12>): PrimitiveReadonly<V12>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13>(element1: AnyChain<V1, V2>, element2: AnyChain<V2, V3>, element3: AnyChain<V3, V4>, element4: AnyChain<V4, V5>, element5: AnyChain<V5, V6>, element6: AnyChain<V6, V7>, element7: AnyChain<V7, V8>, element8: AnyChain<V8, V9>, element9: AnyChain<V9, V10>, element10: AnyChain<V10, V11>, element11: AnyChain<V11, V12>, element12: AnyChain<V12, V13>): PrimitiveReadonly<V13>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14>(element1: AnyChain<V1, V2>, element2: AnyChain<V2, V3>, element3: AnyChain<V3, V4>, element4: AnyChain<V4, V5>, element5: AnyChain<V5, V6>, element6: AnyChain<V6, V7>, element7: AnyChain<V7, V8>, element8: AnyChain<V8, V9>, element9: AnyChain<V9, V10>, element10: AnyChain<V10, V11>, element11: AnyChain<V11, V12>, element12: AnyChain<V12, V13>, element13: AnyChain<V13, V14>): PrimitiveReadonly<V14>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15>(element1: AnyChain<V1, V2>, element2: AnyChain<V2, V3>, element3: AnyChain<V3, V4>, element4: AnyChain<V4, V5>, element5: AnyChain<V5, V6>, element6: AnyChain<V6, V7>, element7: AnyChain<V7, V8>, element8: AnyChain<V8, V9>, element9: AnyChain<V9, V10>, element10: AnyChain<V10, V11>, element11: AnyChain<V11, V12>, element12: AnyChain<V12, V13>, element13: AnyChain<V13, V14>, element14: AnyChain<V14, V15>): PrimitiveReadonly<V15>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16>(element1: AnyChain<V1, V2>, element2: AnyChain<V2, V3>, element3: AnyChain<V3, V4>, element4: AnyChain<V4, V5>, element5: AnyChain<V5, V6>, element6: AnyChain<V6, V7>, element7: AnyChain<V7, V8>, element8: AnyChain<V8, V9>, element9: AnyChain<V9, V10>, element10: AnyChain<V10, V11>, element11: AnyChain<V11, V12>, element12: AnyChain<V12, V13>, element13: AnyChain<V13, V14>, element14: AnyChain<V14, V15>, element15: AnyChain<V15, V16>): PrimitiveReadonly<V16>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17>(element1: AnyChain<V1, V2>, element2: AnyChain<V2, V3>, element3: AnyChain<V3, V4>, element4: AnyChain<V4, V5>, element5: AnyChain<V5, V6>, element6: AnyChain<V6, V7>, element7: AnyChain<V7, V8>, element8: AnyChain<V8, V9>, element9: AnyChain<V9, V10>, element10: AnyChain<V10, V11>, element11: AnyChain<V11, V12>, element12: AnyChain<V12, V13>, element13: AnyChain<V13, V14>, element14: AnyChain<V14, V15>, element15: AnyChain<V15, V16>, element16: AnyChain<V16, V17>): PrimitiveReadonly<V17>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18>(element1: AnyChain<V1, V2>, element2: AnyChain<V2, V3>, element3: AnyChain<V3, V4>, element4: AnyChain<V4, V5>, element5: AnyChain<V5, V6>, element6: AnyChain<V6, V7>, element7: AnyChain<V7, V8>, element8: AnyChain<V8, V9>, element9: AnyChain<V9, V10>, element10: AnyChain<V10, V11>, element11: AnyChain<V11, V12>, element12: AnyChain<V12, V13>, element13: AnyChain<V13, V14>, element14: AnyChain<V14, V15>, element15: AnyChain<V15, V16>, element16: AnyChain<V16, V17>, element17: AnyChain<V17, V18>): PrimitiveReadonly<V18>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19>(element1: AnyChain<V1, V2>, element2: AnyChain<V2, V3>, element3: AnyChain<V3, V4>, element4: AnyChain<V4, V5>, element5: AnyChain<V5, V6>, element6: AnyChain<V6, V7>, element7: AnyChain<V7, V8>, element8: AnyChain<V8, V9>, element9: AnyChain<V9, V10>, element10: AnyChain<V10, V11>, element11: AnyChain<V11, V12>, element12: AnyChain<V12, V13>, element13: AnyChain<V13, V14>, element14: AnyChain<V14, V15>, element15: AnyChain<V15, V16>, element16: AnyChain<V16, V17>, element17: AnyChain<V17, V18>, element18: AnyChain<V18, V19>): PrimitiveReadonly<V19>; | ||
<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20>(element1: AnyChain<V1, V2>, element2: AnyChain<V2, V3>, element3: AnyChain<V3, V4>, element4: AnyChain<V4, V5>, element5: AnyChain<V5, V6>, element6: AnyChain<V6, V7>, element7: AnyChain<V7, V8>, element8: AnyChain<V8, V9>, element9: AnyChain<V9, V10>, element10: AnyChain<V10, V11>, element11: AnyChain<V11, V12>, element12: AnyChain<V12, V13>, element13: AnyChain<V13, V14>, element14: AnyChain<V14, V15>, element15: AnyChain<V15, V16>, element16: AnyChain<V16, V17>, element17: AnyChain<V17, V18>, element18: AnyChain<V18, V19>, element19: AnyChain<V19, V20>): PrimitiveReadonly<V20>; | ||
(listen1: AnyChain<unknown, unknown>, ...additionalListeners: AnyChain<unknown, unknown>[]): PrimitiveReadonly<unknown>; | ||
} | ||
@@ -24,0 +24,0 @@ export declare const connect: ConnectCall; |
@@ -26,2 +26,3 @@ import { chain } from './chain'; | ||
const context = {}; | ||
const status = { is: 'sync' }; | ||
let unsubscribe = [ | ||
@@ -31,3 +32,3 @@ chained((value) => { | ||
applyListeners(); | ||
}, undefined, context) | ||
}, undefined, context, status) | ||
]; | ||
@@ -34,0 +35,0 @@ const disconnect = () => { |
@@ -1,6 +0,6 @@ | ||
import type { Chain, Function1 } from './types'; | ||
import type { SyncChain, WeakChain, Chain, Function1 } from './types'; | ||
/** | ||
* Count the number of times a signal has passed | ||
*/ | ||
export declare function count<V>(): Chain<V, number>; | ||
export declare function count<V>(): SyncChain<V, number>; | ||
/** | ||
@@ -11,3 +11,3 @@ * Emits a value | ||
*/ | ||
export declare function emit<V, Input = void>(parameter: V): Chain<Input, V>; | ||
export declare function emit<V, Input = void>(parameter: V): SyncChain<Input, V>; | ||
/** | ||
@@ -18,3 +18,3 @@ * Passes the value if the condition is met | ||
*/ | ||
export declare function passIf<V>(condition: Function1<V, boolean>): Chain<V>; | ||
export declare function passIf<V>(condition: Function1<V, boolean>): WeakChain<V>; | ||
/** | ||
@@ -25,15 +25,15 @@ * Stops the chain if the condition is met | ||
*/ | ||
export declare function stopIf<V>(condition: Function1<V, boolean>): Chain<V>; | ||
export declare function stopIf<V>(condition: Function1<V, boolean>): WeakChain<V>; | ||
/** | ||
* Passes the value if it is different from the last value | ||
*/ | ||
export declare function passUnique<V>(): Chain<V>; | ||
export declare function passUnique<V>(): SyncChain<V>; | ||
/** | ||
* Stops the chain | ||
*/ | ||
export declare function stop<V>(): Chain<V, never>; | ||
export declare function stop<V>(): WeakChain<V, never>; | ||
/** | ||
* Passes the value on | ||
*/ | ||
export declare function through<V>(): Chain<V>; | ||
export declare function through<V>(): SyncChain<V>; | ||
/** | ||
@@ -44,4 +44,4 @@ * Select a value from the input. | ||
*/ | ||
export declare function select<V>(): Chain<V>; | ||
export declare function select<V>(): SyncChain<V>; | ||
export declare function select<From, To = From>(mapping: Function1<From, To>): Chain<From, To>; | ||
//# sourceMappingURL=tools.d.ts.map |
@@ -24,6 +24,7 @@ /** | ||
export function passIf(condition) { | ||
return (next, parameter) => { | ||
return (next, parameter, _, status) => { | ||
if (condition(parameter)) { | ||
return next(parameter); | ||
} | ||
status.is = 'incomplete'; | ||
}; | ||
@@ -37,6 +38,7 @@ } | ||
export function stopIf(condition) { | ||
return (next, parameter) => { | ||
return (next, parameter, _, status) => { | ||
if (!condition(parameter)) { | ||
return next(parameter); | ||
} | ||
status.is = 'incomplete'; | ||
}; | ||
@@ -48,3 +50,3 @@ } | ||
export function passUnique() { | ||
return (next, parameter, context) => { | ||
return (next, parameter, context, status) => { | ||
if (context.last !== parameter) { | ||
@@ -54,2 +56,3 @@ context.last = parameter; | ||
} | ||
status.is = 'incomplete'; | ||
}; | ||
@@ -61,3 +64,5 @@ } | ||
export function stop() { | ||
return () => { }; | ||
return (_, __, ___, status) => { | ||
status.is = 'incomplete'; | ||
}; | ||
} | ||
@@ -64,0 +69,0 @@ /** |
@@ -32,5 +32,14 @@ export type FunctionVoid = () => void; | ||
}; | ||
export type Chain<From, To = From> = (next: NextFn<To>, parameter: From, context: Context) => CleanupExec; | ||
export type ChainType = 'sync' | 'async' | 'incomplete' | 'async-incomplete'; | ||
export type ChainStatus<CT extends ChainType = ChainType> = { | ||
is: CT; | ||
}; | ||
export type Chain<From, To = From, CT extends ChainType = ChainType> = (next: NextFn<To>, parameter: From, context: Context, status: ChainStatus<CT>) => CleanupExec; | ||
export type SyncChain<From, To = From> = Chain<From, To>; | ||
export type AsyncChain<From, To = From> = Chain<From, To, 'async' | 'async-incomplete'>; | ||
export type WeakChain<From, To = From> = Chain<From, To, 'incomplete' | 'async-incomplete'>; | ||
export type AsyncWeakChain<From, To = From> = Chain<From, To, 'async-incomplete'>; | ||
export type AnyChain<From, To = From> = Chain<From, To, any>; | ||
export type ConnectedChain<From, To> = (next: NextFn<To>, parameter: From) => CleanupExec; | ||
export {}; | ||
//# sourceMappingURL=types.d.ts.map |
{ | ||
"name": "signal-chain", | ||
"version": "0.9.0", | ||
"version": "0.10.0", | ||
"author": "Christoph Franke", | ||
@@ -5,0 +5,0 @@ "description": "Declarative Reactive Programming Library", |
@@ -99,2 +99,10 @@  | ||
The *Chain* is broken down into multiple subtypes: | ||
- `SyncChain`: This *Chain* executes **synchronously** and will **complete** | ||
- `AsyncChain`: This *Chain* executes **asynchronously** and will **complete** | ||
- `WeakChain`: This *Chain* executes **synchronously**, but may **not complete** | ||
- `AsyncWeakChain`: This *Chain* executes **asynchronously** and may **not complete** | ||
These types give static hints about the behaviour of the *Chain* and when used with `$.evaluate` or `$.function` will produce slightly different results. | ||
Once we connect the chain, it will start listening to the counter. Note that it executes immediately and synchronously on connection. | ||
@@ -385,10 +393,33 @@ ```typescript | ||
### Breaking out of the Chain | ||
**Signal-Chain** also includes a few utility functions: | ||
- `$.evaluate.sync`: Evaluates a chain synchronously. | ||
- `$.evaluate.async`: Evaluates a chain asynchronously. | ||
- `$.function.sync`: Creates a synchronous function from a chain. | ||
- `$.function.async`: Creates an asynchronous function from a chain. | ||
- `$.config`: Configures the update behaviour of the library. | ||
For compatibility with the rest of the Javascript world, there are two utility functions: | ||
- `$.evaluate`: Evaluates a chain. | ||
- `$.function`: Creates a function from a chain. | ||
`$.evaluate` is creates a one-shot evaluation of a *Chain*. | ||
```typescript | ||
const counter = $.primitive.create(0) | ||
console.log($.evaluate(counter.listen)) // logs: 0 | ||
counter.value = 10 | ||
console.log($.evaluate(counter.listen)) // logs: 10 | ||
``` | ||
While `$.function` creates a function that internally evaluates the *Chain*. | ||
```typescript | ||
const double = $.chain( | ||
$.select(x => x * 2) | ||
) | ||
const doubleFunction = $.function(double) | ||
console.log(doubleFunction(5)) // logs: 10 | ||
``` | ||
Depending on the type of the chain, the result of `$.evaluate` and `$.function` will be slightly different: | ||
- `SyncChain`: Will return the value of the chain. | ||
- `AsyncChain`: Will return a promise that resolves to the value of the chain. | ||
- `WeakChain`: Will return the value of the chain, or `undefined` if the chain did not complete. | ||
- `AsyncWeakChain`: Will return a promise that resolves to the value or `undefined`, or `undefined` if the chain did not complete. This is because the chain may or may not complete before or after it becomes asynchronous. | ||
### Controlling Update Behaviour | ||
@@ -457,5 +488,5 @@ | ||
- Some quality of life utilities like `$.throttle` | ||
- Update `$.buffer` to only fire when full | ||
- Operator `$.while` to repeat a chain until a condition is met (e.g. retry failed http request). | ||
- A `$.listen.select`, that is automatically reactive. | ||
- Break down `Chain` type into `SyncChain`, `AsyncChain`, `WeakChain`, `AsyncWeakChain`, which allows to merge `$.evaluate.sync` and `$.evaluate.async` into a single `$.evaluate` and statically predict the possible outcome types. | ||
- Add integration wrappers for VueJS and React. | ||
@@ -462,0 +493,0 @@ - `$.await.select` operator for more intuitive promise chaining. |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
297963
1913
493