realar
Advanced tools
Comparing version 0.6.5 to 0.6.6
import { FC } from 'react'; | ||
import { Contextual, Isolate, Local, Observe, On, PoolEntry, SignalEntry, Sync, Transaction, Untrack, UseJsx, UseLocal, UseScoped, UseValue, UseValues, ValueEntry } from './types'; | ||
import { Contextual, Cycle, Isolate, Local, Observe, On, PoolEntry, SignalEntry, Sync, Transaction, Untrack, UseJsx, UseLocal, UseScoped, UseValue, UseValues, ValueEntry } from './types'; | ||
export { Value, ValueReadonly, Signal, SignalReadonly, Will } from './types'; | ||
@@ -14,3 +14,3 @@ export { value, signal, on, sync, cycle, prop, cache, shared, initial, free, mock, unmock, isolate, un, local, contextual, pool, transaction, untrack, observe, useValue, useValues, useLocal, useScoped, shared as useShared, Scope, useJsx, }; | ||
declare const sync: Sync; | ||
declare const cycle: (body: () => void) => void; | ||
declare const cycle: Cycle; | ||
declare const contextual: Contextual; | ||
@@ -17,0 +17,0 @@ declare const initial: (data: any) => void; |
@@ -213,2 +213,3 @@ "use strict"; | ||
untrack(fn.bind(const_undef, value, const_undef)); | ||
return e[1]; | ||
}; | ||
@@ -479,16 +480,6 @@ const make_trait_ent_pure_fn_untrack = (trait_fn) => (ctx, fn, a, b) => trait_fn(ctx, fn && untracked_function(fn), a, b); | ||
const signal_trigger_flag_resolved = (val) => { | ||
const flag = signal_trigger(!val); | ||
flag(!!val); | ||
const flag = signal_trigger_flag(!val); | ||
flag(); | ||
return flag; | ||
}; | ||
const signal_trigger_flag_from = (get) => { | ||
const flag = signal_trigger_flag(untrack(get[key_get] || get)); | ||
reactionable_subscribe(get, flag); | ||
return flag; | ||
}; | ||
const signal_trigger_from = (get) => { | ||
const ent = signal_trigger(untrack(get[key_get] || get)); | ||
reactionable_subscribe(get, ent); | ||
return ent; | ||
}; | ||
const signal_from = (get, set) => { | ||
@@ -504,6 +495,4 @@ const h = [get[key_get] || get]; | ||
signal_trigger_flag[key_resolved] = signal_trigger_flag_resolved; | ||
signal_trigger_flag[key_from] = signal_trigger_flag_from; | ||
signal_trigger[key_flag] = signal_trigger_flag; | ||
signal_trigger[key_resolved] = signal_trigger_resolved; | ||
signal_trigger[key_from] = signal_trigger_from; | ||
signal[key_trigger] = signal_trigger; | ||
@@ -616,2 +605,3 @@ signal[key_from] = signal_from; | ||
iter(); | ||
return e[1]; | ||
}; | ||
@@ -618,0 +608,0 @@ exports.cycle = cycle; |
import { FC } from 'react'; | ||
export { Value, ValueReadonly, Signal, SignalReadonly, Will, ValueEntry, SignalEntry, Local, Contextual, Observe, UseScoped, UseLocal, UseValue, UseValues, UseJsx, On, Sync, Transaction, Untrack, Isolate, PoolEntry, }; | ||
export { Value, ValueReadonly, Signal, SignalReadonly, Will, ValueEntry, SignalEntry, Local, Contextual, Observe, UseScoped, UseLocal, UseValue, UseValues, UseJsx, On, Sync, Cycle, Transaction, Untrack, Isolate, PoolEntry, }; | ||
declare type Equals<X, Y> = (<T>() => T extends X ? 1 : 2) extends (<T>() => T extends Y ? 1 : 2) ? ([X] extends [Y] ? ([Y] extends [X] ? true : false) : false) : false; | ||
@@ -20,9 +20,16 @@ declare type Re<T> = { | ||
declare type On = { | ||
<T>(target: Re<Will<T>>, fn: (value: T, prev: WillExpand<Will<T>>) => void): void; | ||
<T>(target: Re<T>, fn: (value: T, prev: T) => void): void; | ||
<T>(target: Re<Will<T>>, fn: (value: T, prev: WillExpand<Will<T>>) => void): () => void; | ||
<T>(target: Re<T>, fn: (value: T, prev: T) => void): () => void; | ||
once: { | ||
<T>(target: Re<Will<T>>, fn: (value: T, prev: WillExpand<Will<T>>) => void): () => void; | ||
<T>(target: Re<T>, fn: (value: T, prev: T) => void): () => void; | ||
}; | ||
}; | ||
declare type Sync = { | ||
<T>(target: Re<Will<T>>, fn: (value: T, prev: WillExpand<Will<T>>) => void): void; | ||
<T>(target: Re<T>, fn: (value: T, prev: T) => void): void; | ||
<T>(target: Re<Will<T>>, fn: (value: T, prev: WillExpand<Will<T>>) => void): () => void; | ||
<T>(target: Re<T>, fn: (value: T, prev: T) => void): () => void; | ||
}; | ||
declare type Cycle = { | ||
(body: () => void): () => void; | ||
}; | ||
declare type Local = { | ||
@@ -75,3 +82,3 @@ inject(fn: () => void): void; | ||
interface E_OpPartial<Ret> { | ||
op<R>(func: () => R): R extends void ? Ret : R; | ||
op<R>(func: (context: Ret) => R): R extends void ? Ret : R; | ||
} | ||
@@ -169,3 +176,3 @@ declare type E_SelectMultiple_CfgExemplar<O> = { | ||
} | ||
interface E_UpdatePartial<I, O> { | ||
interface E_UpdatePartial<I, O, Ret> { | ||
update: { | ||
@@ -177,7 +184,7 @@ (func?: (value: O) => I): void; | ||
by: { | ||
<T>(re: Re<Will<T>>, updater?: (state: O, reValue: T, rePrev: WillExpand<Will<T>>) => I): any; | ||
<T>(re: Re<T>, updater?: (state: O, reValue: T, rePrev: T) => I): any; | ||
<T>(re: Re<Will<T>>, updater?: (state: O, reValue: T, rePrev: WillExpand<Will<T>>) => I): Ret; | ||
<T>(re: Re<T>, updater?: (state: O, reValue: T, rePrev: T) => I): Ret; | ||
once: { | ||
<T>(re: Re<Will<T>>, updater?: (state: O, reValue: T, rePrev: WillExpand<Will<T>>) => I): any; | ||
<T>(re: Re<T>, updater?: (state: O, reValue: T, rePrev: T) => I): any; | ||
<T>(re: Re<Will<T>>, updater?: (state: O, reValue: T, rePrev: WillExpand<Will<T>>) => I): Ret; | ||
<T>(re: Re<T>, updater?: (state: O, reValue: T, rePrev: T) => I): Ret; | ||
}; | ||
@@ -228,3 +235,3 @@ }; | ||
} | ||
interface E_Writtable<I, O, Ret> extends E_Readable<O, Ret>, E_UpdatePartial<I, WillExpand<O>>, E_UpdaterPartial<I, WillExpand<O>>, E_ResetPartial { | ||
interface E_Writtable<I, O, Ret> extends E_Readable<O, Ret>, E_UpdatePartial<I, WillExpand<O>, Ret>, E_UpdaterPartial<I, WillExpand<O>>, E_ResetPartial { | ||
} | ||
@@ -378,5 +385,2 @@ interface E_Value<I, O> extends E_Writtable<I, O, Value<I, O>> { | ||
}; | ||
from: { | ||
(get: Re<boolean>): SignalReadonly<boolean>; | ||
}; | ||
}; | ||
@@ -387,5 +391,2 @@ resolved: { | ||
}; | ||
from: { | ||
<O>(get: Re<O>): SignalReadonly<O>; | ||
}; | ||
}; | ||
@@ -392,0 +393,0 @@ from: { |
{ | ||
"name": "realar", | ||
"version": "0.6.5", | ||
"version": "0.6.6", | ||
"description": "Advanced state manager for React", | ||
@@ -91,3 +91,3 @@ "repository": { | ||
}, | ||
"gitHead": "6667680cf2739e8bc1abc94b416326a75ab52a7e" | ||
"gitHead": "58ffa07dd03afe1e44f2c4c262cdbf0ce148fede" | ||
} |
import React, { Context, FC } from 'react'; | ||
import rb from 'reactive-box'; | ||
import { Contextual, Isolate, Local, Observe, On, PoolEntry, SignalEntry, Sync, Transaction, Untrack, UseJsx, UseLocal, UseScoped, UseValue, UseValues, ValueEntry } from './types'; | ||
import { Contextual, Cycle, Isolate, Local, Observe, On, PoolEntry, SignalEntry, Sync, Transaction, Untrack, UseJsx, UseLocal, UseScoped, UseValue, UseValues, ValueEntry } from './types'; | ||
@@ -311,2 +311,3 @@ // | ||
if (is_sync) untrack(fn.bind(const_undef, value, const_undef)); | ||
return e[1]; | ||
} | ||
@@ -803,14 +804,4 @@ | ||
const signal_trigger_flag_resolved = (val) => { | ||
const flag = signal_trigger(!val); flag(!!val); return flag; | ||
const flag = signal_trigger_flag(!val); flag(); return flag; | ||
} | ||
const signal_trigger_flag_from = (get) => { | ||
const flag = signal_trigger_flag(untrack(get[key_get] || get)); | ||
reactionable_subscribe(get, flag); | ||
return flag; | ||
} | ||
const signal_trigger_from = (get) => { | ||
const ent = signal_trigger(untrack(get[key_get] || get)); | ||
reactionable_subscribe(get, ent); | ||
return ent; | ||
} | ||
const signal_from = (get, set?) => { | ||
@@ -826,6 +817,4 @@ const h = [get[key_get] || get]; | ||
signal_trigger_flag[key_resolved] = signal_trigger_flag_resolved; | ||
signal_trigger_flag[key_from] = signal_trigger_flag_from; | ||
signal_trigger[key_flag] = signal_trigger_flag; | ||
signal_trigger[key_resolved] = signal_trigger_resolved; | ||
signal_trigger[key_from] = signal_trigger_from; | ||
signal[key_trigger] = signal_trigger as any; | ||
@@ -916,3 +905,3 @@ signal[key_from] = signal_from; | ||
const cycle = (body: () => void) => { | ||
const cycle: Cycle = (body) => { | ||
const iter = () => { | ||
@@ -929,2 +918,3 @@ const stack = context_contextual_stop; | ||
iter(); | ||
return e[1]; | ||
} | ||
@@ -931,0 +921,0 @@ |
@@ -29,2 +29,3 @@ import { FC } from 'react'; | ||
Sync, | ||
Cycle, | ||
@@ -68,9 +69,17 @@ Transaction, | ||
type On = { | ||
<T>(target: Re<Will<T>>, fn: (value: T, prev: WillExpand<Will<T>>) => void): void | ||
<T>(target: Re<T>, fn: (value: T, prev: T) => void): void | ||
<T>(target: Re<Will<T>>, fn: (value: T, prev: WillExpand<Will<T>>) => void): () => void; | ||
<T>(target: Re<T>, fn: (value: T, prev: T) => void): () => void; | ||
once: { | ||
<T>(target: Re<Will<T>>, fn: (value: T, prev: WillExpand<Will<T>>) => void): () => void; | ||
<T>(target: Re<T>, fn: (value: T, prev: T) => void): () => void; | ||
} | ||
} | ||
type Sync = { | ||
<T>(target: Re<Will<T>>, fn: (value: T, prev: WillExpand<Will<T>>) => void): void | ||
<T>(target: Re<T>, fn: (value: T, prev: T) => void): void | ||
<T>(target: Re<Will<T>>, fn: (value: T, prev: WillExpand<Will<T>>) => void): () => void; | ||
<T>(target: Re<T>, fn: (value: T, prev: T) => void): () => void; | ||
} | ||
type Cycle = { | ||
(body: () => void): () => void; | ||
} | ||
@@ -122,3 +131,3 @@ type Local = { | ||
interface E_OpPartial<Ret> { | ||
op<R>(func: () => R): R extends void ? Ret : R | ||
op<R>(func: (context: Ret) => R): R extends void ? Ret : R | ||
} | ||
@@ -224,3 +233,3 @@ | ||
} | ||
interface E_UpdatePartial<I, O> { | ||
interface E_UpdatePartial<I, O, Ret> { | ||
update: { | ||
@@ -233,7 +242,7 @@ (func?: (value: O) => I): void // untracked by default | ||
by: { | ||
<T>(re: Re<Will<T>>, updater?: (state: O, reValue: T, rePrev: WillExpand<Will<T>>) => I) | ||
<T>(re: Re<T>, updater?: (state: O, reValue: T, rePrev: T) => I) | ||
<T>(re: Re<Will<T>>, updater?: (state: O, reValue: T, rePrev: WillExpand<Will<T>>) => I): Ret | ||
<T>(re: Re<T>, updater?: (state: O, reValue: T, rePrev: T) => I): Ret | ||
once: { | ||
<T>(re: Re<Will<T>>, updater?: (state: O, reValue: T, rePrev: WillExpand<Will<T>>) => I) | ||
<T>(re: Re<T>, updater?: (state: O, reValue: T, rePrev: T) => I) | ||
<T>(re: Re<Will<T>>, updater?: (state: O, reValue: T, rePrev: WillExpand<Will<T>>) => I): Ret | ||
<T>(re: Re<T>, updater?: (state: O, reValue: T, rePrev: T) => I): Ret | ||
} | ||
@@ -292,3 +301,3 @@ } | ||
E_Readable<O, Ret>, | ||
E_UpdatePartial<I, WillExpand<O>>, | ||
E_UpdatePartial<I, WillExpand<O>, Ret>, | ||
E_UpdaterPartial<I, WillExpand<O>>, | ||
@@ -485,5 +494,2 @@ E_ResetPartial {} | ||
} | ||
from: { | ||
(get: Re<boolean>): SignalReadonly<boolean> | ||
} | ||
} | ||
@@ -495,5 +501,2 @@ | ||
} | ||
from: { | ||
<O>(get: Re<O>): SignalReadonly<O> | ||
} | ||
}; | ||
@@ -500,0 +503,0 @@ |
Sorry, the diff of this file is not supported yet
219534
2982