Comparing version 0.5.28 to 0.5.29
@@ -27,2 +27,5 @@ import { FC } from 'react'; | ||
}; | ||
flow: { | ||
filter(fn: (data: T) => any): Value<T, Ensurable<T>>; | ||
}; | ||
}; | ||
@@ -56,2 +59,5 @@ declare type Value<T, K = T> = Callable<T> & { | ||
reset(): void; | ||
flow: { | ||
filter(fn: (data: K) => any): Value<K, Ensurable<T>>; | ||
}; | ||
} & { | ||
@@ -91,2 +97,5 @@ [P in Exclude<keyof Array<void>, number>]: never; | ||
}; | ||
flow: { | ||
filter(fn: (data: K) => any): Signal<K, Ensurable<T>>; | ||
}; | ||
} & E & X & { | ||
@@ -93,0 +102,0 @@ [P in Exclude<keyof Array<void>, number>]: never; |
@@ -151,2 +151,4 @@ "use strict"; | ||
ctx.select = (fn) => selector(fn ? () => fn(get()) : get); | ||
ctx.flow = {}; | ||
ctx.flow.filter = (fn) => flow_filter(ctx, fn); | ||
} | ||
@@ -216,2 +218,10 @@ function def_promisify(ctx) { | ||
} | ||
function flow_filter(target, fn) { | ||
const f = target.then ? signal() : value(); | ||
on(target, (v) => { | ||
if (fn(v)) | ||
f(v); | ||
}); | ||
return f; | ||
} | ||
function loop(body) { | ||
@@ -218,0 +228,0 @@ let running = 1; |
{ | ||
"name": "realar", | ||
"version": "0.5.28", | ||
"version": "0.5.29", | ||
"description": "React state manager", | ||
@@ -88,3 +88,3 @@ "repository": { | ||
}, | ||
"gitHead": "b90287c282105069993b0488211f615c0deb13fc" | ||
"gitHead": "dd12a2af73d3b11530dc0e0ec4325c993577a020" | ||
} |
@@ -110,2 +110,6 @@ import React, { Context, FC } from 'react'; | ||
}; | ||
flow: { | ||
filter(fn: (data: T) => any): Value<T, Ensurable<T>> | ||
} | ||
}; | ||
@@ -143,2 +147,6 @@ | ||
reset(): void; | ||
flow: { | ||
filter(fn: (data: K) => any): Value<K, Ensurable<T>> | ||
} | ||
} & { | ||
@@ -181,2 +189,6 @@ [P in Exclude<keyof Array<void>, number>]: never; | ||
}; | ||
flow: { | ||
filter(fn: (data: K) => any): Signal<K, Ensurable<T>> | ||
} | ||
} & E & | ||
@@ -332,2 +344,5 @@ X & | ||
ctx.select = (fn: any) => selector(fn ? () => fn(get()) : get); | ||
ctx.flow = {}; | ||
ctx.flow.filter = (fn: any) => flow_filter(ctx, fn); | ||
} | ||
@@ -407,2 +422,10 @@ | ||
function flow_filter<T>(target: Reactionable<T>, fn: (data: T) => boolean) { | ||
const f = (target as any).then ? signal<T>() : value<T>(); | ||
on(target, (v) => { | ||
if (fn(v)) f(v); | ||
}); | ||
return f; | ||
} | ||
function loop(body: () => Promise<any>) { | ||
@@ -409,0 +432,0 @@ let running = 1; |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
75417
1382