signal-chain
Advanced tools
Comparing version 0.10.6 to 0.11.0
export * from './signal/types'; | ||
import { emit, select, stopIf, stop, passIf, count } from './signal/tools'; | ||
import { passUnique } from './signal/unique'; | ||
import { passUnique, selectUnique } from './signal/unique'; | ||
import { key } from './signal/object'; | ||
@@ -152,4 +152,7 @@ import { effect } from './signal/effect'; | ||
}; | ||
evaluate: import("./signal/evaluate").EvaluateCall; | ||
function: import("./signal/evaluate").FunctionCall; | ||
unique: { | ||
chain: import("./signal/chain").ChainCall; | ||
pass: typeof passUnique; | ||
select: typeof selectUnique; | ||
}; | ||
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; | ||
@@ -181,3 +184,2 @@ emit: typeof emit; | ||
ifNot: <V1_2>(condition: import("./signal/types").Function1<V1_2, boolean>) => import("./signal/if").IfCall<V1_2>; | ||
uniqueValue: import("./signal/chain").ChainCall; | ||
log: <V_1>(message?: string | undefined) => import("./signal/types").SyncChain<V_1>; | ||
@@ -187,6 +189,7 @@ buffer: <V_2>(size: number) => import("./signal/types").WeakChain<V_2, V_2[]>; | ||
sidechain: import("./signal/chain").SideChainCall; | ||
passUnique: typeof passUnique; | ||
debounce: <V_4>(ms: number) => import("./signal/types").AsyncChain<V_4, Exclude<V_4, Error> | Exclude<V_4, Exclude<V_4, Error>>>; | ||
evaluate: import("./signal/evaluate").EvaluateCall; | ||
function: import("./signal/evaluate").FunctionCall; | ||
}; | ||
export default _default; | ||
//# sourceMappingURL=signal-ts.d.ts.map |
export * from './signal/types'; | ||
import { emit, select, stopIf, stop, passIf, count } from './signal/tools'; | ||
import { passUnique, uniqueValue } from './signal/unique'; | ||
import { passUnique, uniqueValue, selectUnique } from './signal/unique'; | ||
import { ifFn, ifNot } from './signal/if'; | ||
@@ -65,2 +65,7 @@ import { chain, sidechain } from './signal/chain'; | ||
}; | ||
const unique = { | ||
chain: uniqueValue, | ||
pass: passUnique, | ||
select: selectUnique, | ||
}; | ||
const debounce = (ms) => chain(select(), type.not.isError(awaitFns.latest(select(v => new Promise(resolve => setTimeout(() => resolve(v), ms)))), type.not.isError())); | ||
@@ -75,4 +80,3 @@ export default { | ||
maybe, | ||
evaluate, | ||
function: toFunction, | ||
unique, | ||
// adapters | ||
@@ -108,3 +112,2 @@ // solid, | ||
ifNot, | ||
uniqueValue, | ||
// missing: | ||
@@ -118,3 +121,2 @@ // while | ||
sidechain, | ||
passUnique, | ||
debounce, | ||
@@ -124,2 +126,5 @@ // missing: | ||
// interval | ||
// util | ||
evaluate, | ||
function: toFunction, | ||
}; |
@@ -7,3 +7,4 @@ import { ChainCall } from "./chain"; | ||
export declare function passUnique<V>(): SyncChain<V>; | ||
export declare function selectUnique<V, U>(mapping: (value: V) => U): SyncChain<V, U>; | ||
export declare const uniqueValue: ChainCall; | ||
//# sourceMappingURL=unique.d.ts.map |
@@ -21,2 +21,18 @@ import { chain } from "./chain"; | ||
} | ||
export function selectUnique(mapping) { | ||
return (next, parameter, context, status) => { | ||
const mappedValue = mapping(parameter); | ||
if (context.last !== mappedValue) { | ||
context.last = mappedValue; | ||
execute(context.cleanup); | ||
next(mappedValue); | ||
} | ||
status.is = 'incomplete'; | ||
return final => { | ||
if (final) { | ||
execute(context.cleanup); | ||
} | ||
}; | ||
}; | ||
} | ||
// @ts-expect-error | ||
@@ -23,0 +39,0 @@ export const uniqueValue = (first, ...elements) => { |
{ | ||
"name": "signal-chain", | ||
"version": "0.10.6", | ||
"version": "0.11.0", | ||
"author": "Christoph Franke", | ||
@@ -5,0 +5,0 @@ "description": "Declarative Reactive Programming Library", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
303084
1976