@difizen/mana-observable
Version:
27 lines • 1.51 kB
TypeScript
import { ObservableSymbol } from './core';
type Act = (...args: any) => void;
export declare function tryInvokeGetter(getter: () => any, proxy: any, origin: any): any;
export type Trackable = {
[ObservableSymbol.Tracker]: Record<string, any>;
[Trackable.activator]?: (() => void) | undefined;
};
export declare namespace Trackable {
const activator: unique symbol;
function is(target: any): target is Trackable;
function getOrigin(target: Trackable): any;
function tryGetOrigin(target: any): any;
}
export declare namespace Tracker {
function set<T extends Record<any, any> = any>(target: T, act: Act, proxy: T): void;
function get<T extends Record<any, any> = any>(target: T, act: Act): (T & Trackable) | undefined;
function has<T extends Record<any, any> = any>(target: T, act: Act): boolean;
function tramsform(toTrack: any, act: Act, activator?: () => void): any;
function transformArray(toTrack: any[], act: Act, activator?: () => void): any;
function transformPlainObject(toTrack: any, act: Act, activator?: () => void): any;
function transformMap(toTrack: Map<any, any>, act: Act, activator?: () => void): any;
function toInstanceTracker<T extends Record<any, any>>(origin: T, act: Act): any;
function toNotifiableTracker<T extends Record<any, any>>(origin: T, act: Act, asProperty: boolean): any;
function track<T extends Record<any, any>>(object: T, act: Act, asProperty?: boolean): T;
}
export {};
//# sourceMappingURL=tracker.d.ts.map