@derivesome/core
Advanced tools
| import { SubscribeOptions, Subscription, VoidFunction } from "./common"; | ||
| import { Effect } from "./effect"; | ||
| import { Observable, OBSERVABLE } from "./observable"; | ||
| export declare class MapProxy<K extends PropertyKey = PropertyKey, V extends any = any> extends Map<K, V> implements Observable<Record<K, V>> { | ||
| [OBSERVABLE]: true; | ||
| ps: import("./pubsub").PubSub<Record<K, V>>; | ||
| subscribers: Set<Subscription<Record<K, V>>>; | ||
| effects: Set<import("./common").VoidSyncOrAsyncFunction>; | ||
| publish: (value: Record<K, V>) => void; | ||
| publishAsync: (value: Record<K, V>) => Promise<void>; | ||
| subscribe: (fn: Subscription<Record<K, V>>, cleanup?: VoidFunction) => VoidFunction; | ||
| addEffect: (effect: VoidFunction, cleanup?: VoidFunction) => VoidFunction; | ||
| dispose: () => void; | ||
| constructor(...args: ConstructorParameters<typeof Map<K, V>>); | ||
| private getState; | ||
| addEffectDependency(fx: Effect): void; | ||
| observe(fn: Subscription<Record<K, V>>, options?: SubscribeOptions): VoidFunction; | ||
| set(key: K, value: V): this; | ||
| get(key: K): V | undefined; | ||
| delete(key: K): boolean; | ||
| entries(): MapIterator<[K, V]>; | ||
| keys(): MapIterator<K>; | ||
| values(): MapIterator<V>; | ||
| } | ||
| //# sourceMappingURL=map-proxy.d.ts.map |
| {"version":3,"file":"map-proxy.d.ts","sourceRoot":"","sources":["../../src/map-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACb,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAGtD,qBAAa,QAAQ,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,CAAC,SAAS,GAAG,GAAG,GAAG,CAC5E,SAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAChB,YAAW,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEnC,CAAC,UAAU,CAAC,EAAE,IAAI,CAAQ;IAC1B,EAAE,0CAA0B;IAC5B,WAAW,kCAAuB;IAClC,OAAO,kDAAmB;IAC1B,OAAO,gCAAmB;IAC1B,YAAY,yCAAwB;IACpC,SAAS,2EAAqB;IAC9B,SAAS,iEAAqB;IAC9B,OAAO,aAAmB;gBAEd,GAAG,IAAI,EAAE,qBAAqB,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAI5D,OAAO,CAAC,QAAQ;IAOhB,mBAAmB,CAAC,EAAE,EAAE,MAAM;IAI9B,OAAO,CACL,EAAE,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAC9B,OAAO,GAAE,gBAAqB,GAC7B,YAAY;IAOf,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;IAapB,GAAG,CAAC,GAAG,EAAE,CAAC;IAMV,MAAM,CAAC,GAAG,EAAE,CAAC;IASb,OAAO;IAMP,IAAI;IAMJ,MAAM;CAKP"} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.MapProxy = void 0; | ||
| const common_1 = require("./common"); | ||
| const context_1 = require("./context"); | ||
| const observable_1 = require("./observable"); | ||
| const pubsub_1 = require("./pubsub"); | ||
| class MapProxy extends Map { | ||
| [observable_1.OBSERVABLE] = true; | ||
| ps = (0, pubsub_1.pubsub)(); | ||
| subscribers = this.ps.subscribers; | ||
| effects = this.ps.effects; | ||
| publish = this.ps.publish; | ||
| publishAsync = this.ps.publishAsync; | ||
| subscribe = this.ps.subscribe; | ||
| addEffect = this.ps.addEffect; | ||
| dispose = this.ps.dispose; | ||
| constructor(...args) { | ||
| super(...args); | ||
| } | ||
| getState() { | ||
| const state = { | ||
| ...Object.fromEntries(Array.from(super.entries())), | ||
| }; | ||
| return state; | ||
| } | ||
| addEffectDependency(fx) { | ||
| this.ps.addEffect(fx.run, fx.cleanup); | ||
| } | ||
| observe(fn, options = {}) { | ||
| if (options.immediate) { | ||
| fn(this.getState()); | ||
| } | ||
| return this.ps.subscribe(fn, options.cleanup); | ||
| } | ||
| set(key, value) { | ||
| const prev = super.get(key); | ||
| const next = value; | ||
| const result = super.set(key, value); | ||
| if (!(0, common_1.compare)(next, prev)) { | ||
| const state = { ...this.getState(), [key]: value }; | ||
| this.ps.publish(state); | ||
| } | ||
| return result; | ||
| } | ||
| get(key) { | ||
| const fx = context_1.Context.scope.current.effect; | ||
| if (fx) | ||
| this.addEffectDependency(fx); | ||
| return super.get(key); | ||
| } | ||
| delete(key) { | ||
| const didHave = super.has(key); | ||
| const result = super.delete(key); | ||
| if (didHave) { | ||
| this.ps.publish(this.getState()); | ||
| } | ||
| return result; | ||
| } | ||
| entries() { | ||
| const fx = context_1.Context.scope.current.effect; | ||
| if (fx) | ||
| this.addEffectDependency(fx); | ||
| return super.entries(); | ||
| } | ||
| keys() { | ||
| const fx = context_1.Context.scope.current.effect; | ||
| if (fx) | ||
| this.addEffectDependency(fx); | ||
| return super.keys(); | ||
| } | ||
| values() { | ||
| const fx = context_1.Context.scope.current.effect; | ||
| if (fx) | ||
| this.addEffectDependency(fx); | ||
| return super.values(); | ||
| } | ||
| } | ||
| exports.MapProxy = MapProxy; | ||
| //# sourceMappingURL=map-proxy.js.map |
| {"version":3,"file":"map-proxy.js","sourceRoot":"","sources":["../../src/map-proxy.ts"],"names":[],"mappings":";;;AAAA,qCAKkB;AAClB,uCAAoC;AAEpC,6CAAsD;AACtD,qCAAkC;AAElC,MAAa,QACX,SAAQ,GAAS;IAGjB,CAAC,uBAAU,CAAC,GAAS,IAAI,CAAC;IAC1B,EAAE,GAAG,IAAA,eAAM,GAAgB,CAAC;IAC5B,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC;IAClC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;IAC1B,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;IAC1B,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC;IACpC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC;IAC9B,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC;IAC9B,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;IAE1B,YAAY,GAAG,IAA6C;QAC1D,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IACjB,CAAC;IAEO,QAAQ;QACd,MAAM,KAAK,GAAG;YACZ,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;SACnC,CAAC;QAClB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,mBAAmB,CAAC,EAAU;QAC5B,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,CACL,EAA8B,EAC9B,UAA4B,EAAE;QAE9B,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtB,CAAC;QACD,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,GAAG,CAAC,GAAM,EAAE,KAAQ;QAClB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC;QACnB,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAErC,IAAI,CAAC,IAAA,gBAAO,EAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAkB,CAAC;YACnE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,GAAG,CAAC,GAAM;QACR,MAAM,EAAE,GAAG,iBAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QACxC,IAAI,EAAE;YAAE,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;QACrC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,MAAM,CAAC,GAAM;QACX,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO;QACL,MAAM,EAAE,GAAG,iBAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QACxC,IAAI,EAAE;YAAE,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;QACrC,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC;IAED,IAAI;QACF,MAAM,EAAE,GAAG,iBAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QACxC,IAAI,EAAE;YAAE,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;QACrC,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,MAAM;QACJ,MAAM,EAAE,GAAG,iBAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QACxC,IAAI,EAAE;YAAE,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;QACrC,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;IACxB,CAAC;CACF;AApFD,4BAoFC"} |
| import { SubscribeOptions, Subscription, VoidFunction } from "./common"; | ||
| import { Effect } from "./effect"; | ||
| import { Observable, OBSERVABLE } from "./observable"; | ||
| export declare class SetProxy<V = any> extends Set<V> implements Observable<Set<V>> { | ||
| [OBSERVABLE]: true; | ||
| ps: import("./pubsub").PubSub<Set<V>>; | ||
| subscribers: Set<Subscription<Set<V>>>; | ||
| effects: Set<import("./common").VoidSyncOrAsyncFunction>; | ||
| publish: (value: Set<V>) => void; | ||
| publishAsync: (value: Set<V>) => Promise<void>; | ||
| subscribe: (fn: Subscription<Set<V>>, cleanup?: VoidFunction) => VoidFunction; | ||
| addEffect: (effect: VoidFunction, cleanup?: VoidFunction) => VoidFunction; | ||
| dispose: () => void; | ||
| constructor(...args: ConstructorParameters<typeof Set<V>>); | ||
| private getState; | ||
| addEffectDependency(fx: Effect): void; | ||
| observe(fn: Subscription<Set<V>>, options?: SubscribeOptions): VoidFunction; | ||
| get size(): number; | ||
| add(value: V): this; | ||
| delete(value: V): boolean; | ||
| has(value: V): boolean; | ||
| values(): SetIterator<V>; | ||
| keys(): SetIterator<V>; | ||
| entries(): SetIterator<[V, V]>; | ||
| } | ||
| //# sourceMappingURL=set-proxy.d.ts.map |
| {"version":3,"file":"set-proxy.d.ts","sourceRoot":"","sources":["../../src/set-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAGtD,qBAAa,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,GAAG,CAAC,CAAC,CAAE,YAAW,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC,UAAU,CAAC,EAAE,IAAI,CAAQ;IAC1B,EAAE,oCAAoB;IACtB,WAAW,4BAAuB;IAClC,OAAO,kDAAmB;IAC1B,OAAO,0BAAmB;IAC1B,YAAY,mCAAwB;IACpC,SAAS,qEAAqB;IAC9B,SAAS,iEAAqB;IAC9B,OAAO,aAAmB;gBAEd,GAAG,IAAI,EAAE,qBAAqB,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;IAIzD,OAAO,CAAC,QAAQ;IAIhB,mBAAmB,CAAC,EAAE,EAAE,MAAM;IAI9B,OAAO,CACL,EAAE,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EACxB,OAAO,GAAE,gBAAqB,GAC7B,YAAY;IAOf,IAAI,IAAI,WAIP;IAED,GAAG,CAAC,KAAK,EAAE,CAAC;IASZ,MAAM,CAAC,KAAK,EAAE,CAAC;IASf,GAAG,CAAC,KAAK,EAAE,CAAC;IAMZ,MAAM;IAMN,IAAI;IAMJ,OAAO;CAKR"} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.SetProxy = void 0; | ||
| const context_1 = require("./context"); | ||
| const observable_1 = require("./observable"); | ||
| const pubsub_1 = require("./pubsub"); | ||
| class SetProxy extends Set { | ||
| [observable_1.OBSERVABLE] = true; | ||
| ps = (0, pubsub_1.pubsub)(); | ||
| subscribers = this.ps.subscribers; | ||
| effects = this.ps.effects; | ||
| publish = this.ps.publish; | ||
| publishAsync = this.ps.publishAsync; | ||
| subscribe = this.ps.subscribe; | ||
| addEffect = this.ps.addEffect; | ||
| dispose = this.ps.dispose; | ||
| constructor(...args) { | ||
| super(...args); | ||
| } | ||
| getState() { | ||
| return new Set(super.values()); | ||
| } | ||
| addEffectDependency(fx) { | ||
| this.ps.addEffect(fx.run, fx.cleanup); | ||
| } | ||
| observe(fn, options = {}) { | ||
| if (options.immediate) { | ||
| fn(this.getState()); | ||
| } | ||
| return this.ps.subscribe(fn, options.cleanup); | ||
| } | ||
| get size() { | ||
| const fx = context_1.Context.scope.current.effect; | ||
| if (fx) | ||
| this.addEffectDependency(fx); | ||
| return super.size; | ||
| } | ||
| add(value) { | ||
| const hadValue = super.has(value); | ||
| const result = super.add(value); | ||
| if (!hadValue) { | ||
| this.ps.publish(this.getState()); | ||
| } | ||
| return result; | ||
| } | ||
| delete(value) { | ||
| const didHave = super.has(value); | ||
| const result = super.delete(value); | ||
| if (didHave) { | ||
| this.ps.publish(this.getState()); | ||
| } | ||
| return result; | ||
| } | ||
| has(value) { | ||
| const fx = context_1.Context.scope.current.effect; | ||
| if (fx) | ||
| this.addEffectDependency(fx); | ||
| return super.has(value); | ||
| } | ||
| values() { | ||
| const fx = context_1.Context.scope.current.effect; | ||
| if (fx) | ||
| this.addEffectDependency(fx); | ||
| return super.values(); | ||
| } | ||
| keys() { | ||
| const fx = context_1.Context.scope.current.effect; | ||
| if (fx) | ||
| this.addEffectDependency(fx); | ||
| return super.keys(); | ||
| } | ||
| entries() { | ||
| const fx = context_1.Context.scope.current.effect; | ||
| if (fx) | ||
| this.addEffectDependency(fx); | ||
| return super.entries(); | ||
| } | ||
| } | ||
| exports.SetProxy = SetProxy; | ||
| //# sourceMappingURL=set-proxy.js.map |
| {"version":3,"file":"set-proxy.js","sourceRoot":"","sources":["../../src/set-proxy.ts"],"names":[],"mappings":"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"} |
| export declare const maybeProxy: <T>(x: T) => T; | ||
| //# sourceMappingURL=maybeProxy.d.ts.map |
| {"version":3,"file":"maybeProxy.d.ts","sourceRoot":"","sources":["../../../src/utils/maybeProxy.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,UAAU,GAAI,CAAC,EAAE,GAAG,CAAC,KAAG,CAMpC,CAAC"} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.maybeProxy = void 0; | ||
| const map_proxy_1 = require("../map-proxy"); | ||
| const set_proxy_1 = require("../set-proxy"); | ||
| const maybeProxy = (x) => { | ||
| if (x instanceof map_proxy_1.MapProxy) | ||
| return x; | ||
| if (x instanceof Map) | ||
| return new map_proxy_1.MapProxy(Array.from(x.entries())); | ||
| if (x instanceof set_proxy_1.SetProxy) | ||
| return x; | ||
| if (x instanceof Set) | ||
| return new set_proxy_1.SetProxy(Array.from(x.values())); | ||
| return x; | ||
| }; | ||
| exports.maybeProxy = maybeProxy; | ||
| //# sourceMappingURL=maybeProxy.js.map |
| {"version":3,"file":"maybeProxy.js","sourceRoot":"","sources":["../../../src/utils/maybeProxy.ts"],"names":[],"mappings":";;;AAAA,4CAAwC;AACxC,4CAAwC;AAEjC,MAAM,UAAU,GAAG,CAAI,CAAI,EAAK,EAAE;IACvC,IAAI,CAAC,YAAY,oBAAQ;QAAE,OAAO,CAAC,CAAC;IACpC,IAAI,CAAC,YAAY,GAAG;QAAE,OAAO,IAAI,oBAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAM,CAAC;IACxE,IAAI,CAAC,YAAY,oBAAQ;QAAE,OAAO,CAAC,CAAC;IACpC,IAAI,CAAC,YAAY,GAAG;QAAE,OAAO,IAAI,oBAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAM,CAAC;IACvE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AANW,QAAA,UAAU,cAMrB"} |
| import { SubscribeOptions, Subscription, VoidFunction } from "./common"; | ||
| import { Effect } from "./effect"; | ||
| import { Observable, OBSERVABLE } from "./observable"; | ||
| export declare class MapProxy<K extends PropertyKey = PropertyKey, V extends any = any> extends Map<K, V> implements Observable<Record<K, V>> { | ||
| [OBSERVABLE]: true; | ||
| ps: import("./pubsub").PubSub<Record<K, V>>; | ||
| subscribers: Set<Subscription<Record<K, V>>>; | ||
| effects: Set<import("./common").VoidSyncOrAsyncFunction>; | ||
| publish: (value: Record<K, V>) => void; | ||
| publishAsync: (value: Record<K, V>) => Promise<void>; | ||
| subscribe: (fn: Subscription<Record<K, V>>, cleanup?: VoidFunction) => VoidFunction; | ||
| addEffect: (effect: VoidFunction, cleanup?: VoidFunction) => VoidFunction; | ||
| dispose: () => void; | ||
| constructor(...args: ConstructorParameters<typeof Map<K, V>>); | ||
| private getState; | ||
| addEffectDependency(fx: Effect): void; | ||
| observe(fn: Subscription<Record<K, V>>, options?: SubscribeOptions): VoidFunction; | ||
| set(key: K, value: V): this; | ||
| get(key: K): V | undefined; | ||
| delete(key: K): boolean; | ||
| entries(): MapIterator<[K, V]>; | ||
| keys(): MapIterator<K>; | ||
| values(): MapIterator<V>; | ||
| } | ||
| //# sourceMappingURL=map-proxy.d.ts.map |
| {"version":3,"file":"map-proxy.d.ts","sourceRoot":"","sources":["../../src/map-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACb,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAGtD,qBAAa,QAAQ,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,CAAC,SAAS,GAAG,GAAG,GAAG,CAC5E,SAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAChB,YAAW,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEnC,CAAC,UAAU,CAAC,EAAE,IAAI,CAAQ;IAC1B,EAAE,0CAA0B;IAC5B,WAAW,kCAAuB;IAClC,OAAO,kDAAmB;IAC1B,OAAO,gCAAmB;IAC1B,YAAY,yCAAwB;IACpC,SAAS,2EAAqB;IAC9B,SAAS,iEAAqB;IAC9B,OAAO,aAAmB;gBAEd,GAAG,IAAI,EAAE,qBAAqB,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAI5D,OAAO,CAAC,QAAQ;IAOhB,mBAAmB,CAAC,EAAE,EAAE,MAAM;IAI9B,OAAO,CACL,EAAE,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAC9B,OAAO,GAAE,gBAAqB,GAC7B,YAAY;IAOf,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;IAapB,GAAG,CAAC,GAAG,EAAE,CAAC;IAMV,MAAM,CAAC,GAAG,EAAE,CAAC;IASb,OAAO;IAMP,IAAI;IAMJ,MAAM;CAKP"} |
| import { compare, } from "./common"; | ||
| import { Context } from "./context"; | ||
| import { OBSERVABLE } from "./observable"; | ||
| import { pubsub } from "./pubsub"; | ||
| export class MapProxy extends Map { | ||
| [OBSERVABLE] = true; | ||
| ps = pubsub(); | ||
| subscribers = this.ps.subscribers; | ||
| effects = this.ps.effects; | ||
| publish = this.ps.publish; | ||
| publishAsync = this.ps.publishAsync; | ||
| subscribe = this.ps.subscribe; | ||
| addEffect = this.ps.addEffect; | ||
| dispose = this.ps.dispose; | ||
| constructor(...args) { | ||
| super(...args); | ||
| } | ||
| getState() { | ||
| const state = { | ||
| ...Object.fromEntries(Array.from(super.entries())), | ||
| }; | ||
| return state; | ||
| } | ||
| addEffectDependency(fx) { | ||
| this.ps.addEffect(fx.run, fx.cleanup); | ||
| } | ||
| observe(fn, options = {}) { | ||
| if (options.immediate) { | ||
| fn(this.getState()); | ||
| } | ||
| return this.ps.subscribe(fn, options.cleanup); | ||
| } | ||
| set(key, value) { | ||
| const prev = super.get(key); | ||
| const next = value; | ||
| const result = super.set(key, value); | ||
| if (!compare(next, prev)) { | ||
| const state = { ...this.getState(), [key]: value }; | ||
| this.ps.publish(state); | ||
| } | ||
| return result; | ||
| } | ||
| get(key) { | ||
| const fx = Context.scope.current.effect; | ||
| if (fx) | ||
| this.addEffectDependency(fx); | ||
| return super.get(key); | ||
| } | ||
| delete(key) { | ||
| const didHave = super.has(key); | ||
| const result = super.delete(key); | ||
| if (didHave) { | ||
| this.ps.publish(this.getState()); | ||
| } | ||
| return result; | ||
| } | ||
| entries() { | ||
| const fx = Context.scope.current.effect; | ||
| if (fx) | ||
| this.addEffectDependency(fx); | ||
| return super.entries(); | ||
| } | ||
| keys() { | ||
| const fx = Context.scope.current.effect; | ||
| if (fx) | ||
| this.addEffectDependency(fx); | ||
| return super.keys(); | ||
| } | ||
| values() { | ||
| const fx = Context.scope.current.effect; | ||
| if (fx) | ||
| this.addEffectDependency(fx); | ||
| return super.values(); | ||
| } | ||
| } | ||
| //# sourceMappingURL=map-proxy.js.map |
| {"version":3,"file":"map-proxy.js","sourceRoot":"","sources":["../../src/map-proxy.ts"],"names":[],"mappings":"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"} |
| import { SubscribeOptions, Subscription, VoidFunction } from "./common"; | ||
| import { Effect } from "./effect"; | ||
| import { Observable, OBSERVABLE } from "./observable"; | ||
| export declare class SetProxy<V = any> extends Set<V> implements Observable<Set<V>> { | ||
| [OBSERVABLE]: true; | ||
| ps: import("./pubsub").PubSub<Set<V>>; | ||
| subscribers: Set<Subscription<Set<V>>>; | ||
| effects: Set<import("./common").VoidSyncOrAsyncFunction>; | ||
| publish: (value: Set<V>) => void; | ||
| publishAsync: (value: Set<V>) => Promise<void>; | ||
| subscribe: (fn: Subscription<Set<V>>, cleanup?: VoidFunction) => VoidFunction; | ||
| addEffect: (effect: VoidFunction, cleanup?: VoidFunction) => VoidFunction; | ||
| dispose: () => void; | ||
| constructor(...args: ConstructorParameters<typeof Set<V>>); | ||
| private getState; | ||
| addEffectDependency(fx: Effect): void; | ||
| observe(fn: Subscription<Set<V>>, options?: SubscribeOptions): VoidFunction; | ||
| get size(): number; | ||
| add(value: V): this; | ||
| delete(value: V): boolean; | ||
| has(value: V): boolean; | ||
| values(): SetIterator<V>; | ||
| keys(): SetIterator<V>; | ||
| entries(): SetIterator<[V, V]>; | ||
| } | ||
| //# sourceMappingURL=set-proxy.d.ts.map |
| {"version":3,"file":"set-proxy.d.ts","sourceRoot":"","sources":["../../src/set-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAGtD,qBAAa,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,GAAG,CAAC,CAAC,CAAE,YAAW,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC,UAAU,CAAC,EAAE,IAAI,CAAQ;IAC1B,EAAE,oCAAoB;IACtB,WAAW,4BAAuB;IAClC,OAAO,kDAAmB;IAC1B,OAAO,0BAAmB;IAC1B,YAAY,mCAAwB;IACpC,SAAS,qEAAqB;IAC9B,SAAS,iEAAqB;IAC9B,OAAO,aAAmB;gBAEd,GAAG,IAAI,EAAE,qBAAqB,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;IAIzD,OAAO,CAAC,QAAQ;IAIhB,mBAAmB,CAAC,EAAE,EAAE,MAAM;IAI9B,OAAO,CACL,EAAE,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EACxB,OAAO,GAAE,gBAAqB,GAC7B,YAAY;IAOf,IAAI,IAAI,WAIP;IAED,GAAG,CAAC,KAAK,EAAE,CAAC;IASZ,MAAM,CAAC,KAAK,EAAE,CAAC;IASf,GAAG,CAAC,KAAK,EAAE,CAAC;IAMZ,MAAM;IAMN,IAAI;IAMJ,OAAO;CAKR"} |
| import { Context } from "./context"; | ||
| import { OBSERVABLE } from "./observable"; | ||
| import { pubsub } from "./pubsub"; | ||
| export class SetProxy extends Set { | ||
| [OBSERVABLE] = true; | ||
| ps = pubsub(); | ||
| subscribers = this.ps.subscribers; | ||
| effects = this.ps.effects; | ||
| publish = this.ps.publish; | ||
| publishAsync = this.ps.publishAsync; | ||
| subscribe = this.ps.subscribe; | ||
| addEffect = this.ps.addEffect; | ||
| dispose = this.ps.dispose; | ||
| constructor(...args) { | ||
| super(...args); | ||
| } | ||
| getState() { | ||
| return new Set(super.values()); | ||
| } | ||
| addEffectDependency(fx) { | ||
| this.ps.addEffect(fx.run, fx.cleanup); | ||
| } | ||
| observe(fn, options = {}) { | ||
| if (options.immediate) { | ||
| fn(this.getState()); | ||
| } | ||
| return this.ps.subscribe(fn, options.cleanup); | ||
| } | ||
| get size() { | ||
| const fx = Context.scope.current.effect; | ||
| if (fx) | ||
| this.addEffectDependency(fx); | ||
| return super.size; | ||
| } | ||
| add(value) { | ||
| const hadValue = super.has(value); | ||
| const result = super.add(value); | ||
| if (!hadValue) { | ||
| this.ps.publish(this.getState()); | ||
| } | ||
| return result; | ||
| } | ||
| delete(value) { | ||
| const didHave = super.has(value); | ||
| const result = super.delete(value); | ||
| if (didHave) { | ||
| this.ps.publish(this.getState()); | ||
| } | ||
| return result; | ||
| } | ||
| has(value) { | ||
| const fx = Context.scope.current.effect; | ||
| if (fx) | ||
| this.addEffectDependency(fx); | ||
| return super.has(value); | ||
| } | ||
| values() { | ||
| const fx = Context.scope.current.effect; | ||
| if (fx) | ||
| this.addEffectDependency(fx); | ||
| return super.values(); | ||
| } | ||
| keys() { | ||
| const fx = Context.scope.current.effect; | ||
| if (fx) | ||
| this.addEffectDependency(fx); | ||
| return super.keys(); | ||
| } | ||
| entries() { | ||
| const fx = Context.scope.current.effect; | ||
| if (fx) | ||
| this.addEffectDependency(fx); | ||
| return super.entries(); | ||
| } | ||
| } | ||
| //# sourceMappingURL=set-proxy.js.map |
| {"version":3,"file":"set-proxy.js","sourceRoot":"","sources":["../../src/set-proxy.ts"],"names":[],"mappings":"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"} |
| export declare const maybeProxy: <T>(x: T) => T; | ||
| //# sourceMappingURL=maybeProxy.d.ts.map |
| {"version":3,"file":"maybeProxy.d.ts","sourceRoot":"","sources":["../../../src/utils/maybeProxy.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,UAAU,GAAI,CAAC,EAAE,GAAG,CAAC,KAAG,CAMpC,CAAC"} |
| import { MapProxy } from "../map-proxy"; | ||
| import { SetProxy } from "../set-proxy"; | ||
| export const maybeProxy = (x) => { | ||
| if (x instanceof MapProxy) | ||
| return x; | ||
| if (x instanceof Map) | ||
| return new MapProxy(Array.from(x.entries())); | ||
| if (x instanceof SetProxy) | ||
| return x; | ||
| if (x instanceof Set) | ||
| return new SetProxy(Array.from(x.values())); | ||
| return x; | ||
| }; | ||
| //# sourceMappingURL=maybeProxy.js.map |
| {"version":3,"file":"maybeProxy.js","sourceRoot":"","sources":["../../../src/utils/maybeProxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAI,CAAI,EAAK,EAAE;IACvC,IAAI,CAAC,YAAY,QAAQ;QAAE,OAAO,CAAC,CAAC;IACpC,IAAI,CAAC,YAAY,GAAG;QAAE,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAM,CAAC;IACxE,IAAI,CAAC,YAAY,QAAQ;QAAE,OAAO,CAAC,CAAC;IACpC,IAAI,CAAC,YAAY,GAAG;QAAE,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAM,CAAC;IACvE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC"} |
@@ -7,3 +7,5 @@ export * from "./common"; | ||
| export * from "./derived"; | ||
| export * from "./map-proxy"; | ||
| export * from "./set-proxy"; | ||
| export * from "./utils"; | ||
| //# sourceMappingURL=index.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"} | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"} |
@@ -23,3 +23,5 @@ "use strict"; | ||
| __exportStar(require("./derived"), exports); | ||
| __exportStar(require("./map-proxy"), exports); | ||
| __exportStar(require("./set-proxy"), exports); | ||
| __exportStar(require("./utils"), exports); | ||
| //# sourceMappingURL=index.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,4CAA0B;AAC1B,2CAAyB;AACzB,2CAAyB;AACzB,8CAA4B;AAC5B,4CAA0B;AAC1B,0CAAwB"} | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,4CAA0B;AAC1B,2CAAyB;AACzB,2CAAyB;AACzB,8CAA4B;AAC5B,4CAA0B;AAC1B,8CAA4B;AAC5B,8CAA4B;AAC5B,0CAAwB"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"reference.d.ts","sourceRoot":"","sources":["../../src/reference.ts"],"names":[],"mappings":"AAGA,OAAO,EAAS,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGxE,OAAO,EAAc,UAAU,EAAE,MAAM,cAAc,CAAC;AAGtD,eAAO,MAAM,SAAS,eAAsB,CAAC;AAC7C,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC;AAEzC,MAAM,WAAW,SAAS,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAC;IACjD,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC,CAAC;IACb,GAAG,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC,CAAC;CACf;AAED,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAoC7C;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;AAC7D,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;AACjE,wBAAgB,WAAW,CAAC,CAAC,SAAS,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC"} | ||
| {"version":3,"file":"reference.d.ts","sourceRoot":"","sources":["../../src/reference.ts"],"names":[],"mappings":"AAGA,OAAO,EAAS,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGxE,OAAO,EAAc,UAAU,EAAE,MAAM,cAAc,CAAC;AAItD,eAAO,MAAM,SAAS,eAAsB,CAAC;AAC7C,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC;AAEzC,MAAM,WAAW,SAAS,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAC;IACjD,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC,CAAC;IACb,GAAG,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC,CAAC;CACf;AAED,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAoC7C;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;AAC7D,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;AACjE,wBAAgB,WAAW,CAAC,CAAC,SAAS,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC"} |
@@ -12,6 +12,7 @@ "use strict"; | ||
| const pubsub_1 = require("./pubsub"); | ||
| const maybeProxy_1 = require("./utils/maybeProxy"); | ||
| exports.REFERENCE = Symbol("Reference"); | ||
| function ref(value) { | ||
| const ps = (0, pubsub_1.pubsub)(); | ||
| const state = { value }; | ||
| const state = { value: (0, maybeProxy_1.maybeProxy)(value) }; | ||
| const obs = (0, observable_1.observable)(state, ps); | ||
@@ -29,3 +30,3 @@ const addEffectDependency = (fx) => { | ||
| const prev = state.value; | ||
| const next = (0, is_1.isFunction)(fn) ? fn(state.value) : fn; | ||
| const next = (0, maybeProxy_1.maybeProxy)((0, is_1.isFunction)(fn) ? fn(state.value) : fn); | ||
| if (!(0, compare_1.compare)(next, prev)) { | ||
@@ -32,0 +33,0 @@ state.value = next; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"reference.js","sourceRoot":"","sources":["../../src/reference.ts"],"names":[],"mappings":";;;AAmBA,kBAoCC;AAKD,kCAEC;AA9DD,qCAA+B;AAC/B,8CAA2C;AAC3C,oCAAyC;AAEzC,uCAAoC;AAEpC,6CAAsD;AACtD,qCAAkC;AAErB,QAAA,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAU7C,SAAgB,GAAG,CAAI,KAAQ;IAC7B,MAAM,EAAE,GAAG,IAAA,eAAM,GAAK,CAAC;IACvB,MAAM,KAAK,GAAa,EAAE,KAAK,EAAE,CAAC;IAClC,MAAM,GAAG,GAAG,IAAA,uBAAU,EAAI,KAAK,EAAE,EAAE,CAAC,CAAC;IAErC,MAAM,mBAAmB,GAAG,CAAC,EAAU,EAAE,EAAE;QACzC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC;IAEF,MAAM,GAAG,GAAG,GAAM,EAAE;QAClB,MAAM,EAAE,GAAG,iBAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QACxC,IAAI,EAAE;YAAE,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAChC,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC,CAAC;IAEF,MAAM,GAAG,GAAgC,CAAC,EAAE,EAAE,EAAE;QAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,MAAM,IAAI,GAAG,IAAA,eAAU,EAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,IAAI,CAAC,IAAA,iBAAO,EAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;YACnB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,GAAM,EAAE;QACnB,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC,CAAC;IAEF,OAAO;QACL,CAAC,iBAAS,CAAC,EAAE,IAAI;QACjB,GAAG,EAAE;QACL,GAAG,GAAG;QACN,GAAG;QACH,GAAG;QACH,IAAI;KACL,CAAC;AACJ,CAAC;AAKD,SAAgB,WAAW,CAAC,CAAU;IACpC,OAAO,IAAA,YAAG,EAAC,CAAC,EAAE,iBAAS,CAAC,CAAC;AAC3B,CAAC"} | ||
| {"version":3,"file":"reference.js","sourceRoot":"","sources":["../../src/reference.ts"],"names":[],"mappings":";;;AAoBA,kBAoCC;AAKD,kCAEC;AA/DD,qCAA+B;AAC/B,8CAA2C;AAC3C,oCAAyC;AAEzC,uCAAoC;AAEpC,6CAAsD;AACtD,qCAAkC;AAClC,mDAAgD;AAEnC,QAAA,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAU7C,SAAgB,GAAG,CAAI,KAAQ;IAC7B,MAAM,EAAE,GAAG,IAAA,eAAM,GAAK,CAAC;IACvB,MAAM,KAAK,GAAa,EAAE,KAAK,EAAE,IAAA,uBAAU,EAAC,KAAK,CAAC,EAAE,CAAC;IACrD,MAAM,GAAG,GAAG,IAAA,uBAAU,EAAI,KAAK,EAAE,EAAE,CAAC,CAAC;IAErC,MAAM,mBAAmB,GAAG,CAAC,EAAU,EAAE,EAAE;QACzC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC;IAEF,MAAM,GAAG,GAAG,GAAM,EAAE;QAClB,MAAM,EAAE,GAAG,iBAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QACxC,IAAI,EAAE;YAAE,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAChC,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC,CAAC;IAEF,MAAM,GAAG,GAAgC,CAAC,EAAE,EAAE,EAAE;QAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,MAAM,IAAI,GAAG,IAAA,uBAAU,EAAC,IAAA,eAAU,EAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAA,iBAAO,EAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;YACnB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,GAAM,EAAE;QACnB,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC,CAAC;IAEF,OAAO;QACL,CAAC,iBAAS,CAAC,EAAE,IAAI;QACjB,GAAG,EAAE;QACL,GAAG,GAAG;QACN,GAAG;QACH,GAAG;QACH,IAAI;KACL,CAAC;AACJ,CAAC;AAKD,SAAgB,WAAW,CAAC,CAAU;IACpC,OAAO,IAAA,YAAG,EAAC,CAAC,EAAE,iBAAS,CAAC,CAAC;AAC3B,CAAC"} |
@@ -1,2 +0,2 @@ | ||
| export declare const onNextTick: (fn: () => (void | Promise<void>)) => void; | ||
| export declare const onNextTick: (fn: () => void | Promise<void>) => void; | ||
| //# sourceMappingURL=nextTick.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"nextTick.d.ts","sourceRoot":"","sources":["../../../src/utils/nextTick.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,GAAI,IAAI,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,SAM1D,CAAA"} | ||
| {"version":3,"file":"nextTick.d.ts","sourceRoot":"","sources":["../../../src/utils/nextTick.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,GAAI,IAAI,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,SAMxD,CAAC"} |
@@ -5,3 +5,3 @@ "use strict"; | ||
| const onNextTick = (fn) => { | ||
| if (typeof queueMicrotask !== 'undefined') { | ||
| if (typeof queueMicrotask !== "undefined") { | ||
| queueMicrotask(fn); | ||
@@ -8,0 +8,0 @@ } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"nextTick.js","sourceRoot":"","sources":["../../../src/utils/nextTick.ts"],"names":[],"mappings":";;;AAAO,MAAM,UAAU,GAAG,CAAC,EAAgC,EAAE,EAAE;IAC7D,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE,CAAC;QAC1C,cAAc,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC,CAAA;AANY,QAAA,UAAU,cAMtB"} | ||
| {"version":3,"file":"nextTick.js","sourceRoot":"","sources":["../../../src/utils/nextTick.ts"],"names":[],"mappings":";;;AAAO,MAAM,UAAU,GAAG,CAAC,EAA8B,EAAE,EAAE;IAC3D,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE,CAAC;QAC1C,cAAc,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC,CAAC;AANW,QAAA,UAAU,cAMrB"} |
@@ -7,3 +7,5 @@ export * from "./common"; | ||
| export * from "./derived"; | ||
| export * from "./map-proxy"; | ||
| export * from "./set-proxy"; | ||
| export * from "./utils"; | ||
| //# sourceMappingURL=index.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"} | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"} |
@@ -7,3 +7,5 @@ export * from "./common"; | ||
| export * from "./derived"; | ||
| export * from "./map-proxy"; | ||
| export * from "./set-proxy"; | ||
| export * from "./utils"; | ||
| //# sourceMappingURL=index.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"} | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"reference.d.ts","sourceRoot":"","sources":["../../src/reference.ts"],"names":[],"mappings":"AAGA,OAAO,EAAS,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGxE,OAAO,EAAc,UAAU,EAAE,MAAM,cAAc,CAAC;AAGtD,eAAO,MAAM,SAAS,eAAsB,CAAC;AAC7C,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC;AAEzC,MAAM,WAAW,SAAS,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAC;IACjD,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC,CAAC;IACb,GAAG,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC,CAAC;CACf;AAED,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAoC7C;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;AAC7D,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;AACjE,wBAAgB,WAAW,CAAC,CAAC,SAAS,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC"} | ||
| {"version":3,"file":"reference.d.ts","sourceRoot":"","sources":["../../src/reference.ts"],"names":[],"mappings":"AAGA,OAAO,EAAS,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGxE,OAAO,EAAc,UAAU,EAAE,MAAM,cAAc,CAAC;AAItD,eAAO,MAAM,SAAS,eAAsB,CAAC;AAC7C,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC;AAEzC,MAAM,WAAW,SAAS,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAC;IACjD,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC,CAAC;IACb,GAAG,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC,CAAC;CACf;AAED,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAoC7C;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;AAC7D,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;AACjE,wBAAgB,WAAW,CAAC,CAAC,SAAS,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC"} |
@@ -7,6 +7,7 @@ import { has } from "./common"; | ||
| import { pubsub } from "./pubsub"; | ||
| import { maybeProxy } from "./utils/maybeProxy"; | ||
| export const REFERENCE = Symbol("Reference"); | ||
| export function ref(value) { | ||
| const ps = pubsub(); | ||
| const state = { value }; | ||
| const state = { value: maybeProxy(value) }; | ||
| const obs = observable(state, ps); | ||
@@ -24,3 +25,3 @@ const addEffectDependency = (fx) => { | ||
| const prev = state.value; | ||
| const next = isFunction(fn) ? fn(state.value) : fn; | ||
| const next = maybeProxy(isFunction(fn) ? fn(state.value) : fn); | ||
| if (!compare(next, prev)) { | ||
@@ -27,0 +28,0 @@ state.value = next; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"reference.js","sourceRoot":"","sources":["../../src/reference.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,UAAU,EAAc,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAU7C,MAAM,UAAU,GAAG,CAAI,KAAQ;IAC7B,MAAM,EAAE,GAAG,MAAM,EAAK,CAAC;IACvB,MAAM,KAAK,GAAa,EAAE,KAAK,EAAE,CAAC;IAClC,MAAM,GAAG,GAAG,UAAU,CAAI,KAAK,EAAE,EAAE,CAAC,CAAC;IAErC,MAAM,mBAAmB,GAAG,CAAC,EAAU,EAAE,EAAE;QACzC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC;IAEF,MAAM,GAAG,GAAG,GAAM,EAAE;QAClB,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QACxC,IAAI,EAAE;YAAE,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAChC,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC,CAAC;IAEF,MAAM,GAAG,GAAgC,CAAC,EAAE,EAAE,EAAE;QAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;YACnB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,GAAM,EAAE;QACnB,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC,CAAC;IAEF,OAAO;QACL,CAAC,SAAS,CAAC,EAAE,IAAI;QACjB,GAAG,EAAE;QACL,GAAG,GAAG;QACN,GAAG;QACH,GAAG;QACH,IAAI;KACL,CAAC;AACJ,CAAC;AAKD,MAAM,UAAU,WAAW,CAAC,CAAU;IACpC,OAAO,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AAC3B,CAAC"} | ||
| {"version":3,"file":"reference.js","sourceRoot":"","sources":["../../src/reference.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,UAAU,EAAc,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAU7C,MAAM,UAAU,GAAG,CAAI,KAAQ;IAC7B,MAAM,EAAE,GAAG,MAAM,EAAK,CAAC;IACvB,MAAM,KAAK,GAAa,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;IACrD,MAAM,GAAG,GAAG,UAAU,CAAI,KAAK,EAAE,EAAE,CAAC,CAAC;IAErC,MAAM,mBAAmB,GAAG,CAAC,EAAU,EAAE,EAAE;QACzC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC;IAEF,MAAM,GAAG,GAAG,GAAM,EAAE;QAClB,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QACxC,IAAI,EAAE;YAAE,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAChC,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC,CAAC;IAEF,MAAM,GAAG,GAAgC,CAAC,EAAE,EAAE,EAAE;QAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;YACnB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,GAAM,EAAE;QACnB,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC,CAAC;IAEF,OAAO;QACL,CAAC,SAAS,CAAC,EAAE,IAAI;QACjB,GAAG,EAAE;QACL,GAAG,GAAG;QACN,GAAG;QACH,GAAG;QACH,IAAI;KACL,CAAC;AACJ,CAAC;AAKD,MAAM,UAAU,WAAW,CAAC,CAAU;IACpC,OAAO,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AAC3B,CAAC"} |
@@ -1,2 +0,2 @@ | ||
| export declare const onNextTick: (fn: () => (void | Promise<void>)) => void; | ||
| export declare const onNextTick: (fn: () => void | Promise<void>) => void; | ||
| //# sourceMappingURL=nextTick.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"nextTick.d.ts","sourceRoot":"","sources":["../../../src/utils/nextTick.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,GAAI,IAAI,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,SAM1D,CAAA"} | ||
| {"version":3,"file":"nextTick.d.ts","sourceRoot":"","sources":["../../../src/utils/nextTick.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,GAAI,IAAI,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,SAMxD,CAAC"} |
| export const onNextTick = (fn) => { | ||
| if (typeof queueMicrotask !== 'undefined') { | ||
| if (typeof queueMicrotask !== "undefined") { | ||
| queueMicrotask(fn); | ||
@@ -4,0 +4,0 @@ } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"nextTick.js","sourceRoot":"","sources":["../../../src/utils/nextTick.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAgC,EAAE,EAAE;IAC7D,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE,CAAC;QAC1C,cAAc,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC,CAAA"} | ||
| {"version":3,"file":"nextTick.js","sourceRoot":"","sources":["../../../src/utils/nextTick.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAA8B,EAAE,EAAE;IAC3D,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE,CAAC;QAC1C,cAAc,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC,CAAC"} |
+1
-1
| { | ||
| "name": "@derivesome/core", | ||
| "version": "1.0.3", | ||
| "version": "1.0.4", | ||
| "description": "", | ||
@@ -5,0 +5,0 @@ "main": "./dist/cjs/index.js", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
1238787
2.66%278
9.45%3772
13.48%