surrogate
Version:
Object method hooks made easy
18 lines (17 loc) • 897 B
TypeScript
import type { Surrogate, SurrogateOptions } from '../../interfaces';
import { EventManager } from '../../manager';
import { Context } from '../../context';
export declare class SurrogateProxy<T extends object> implements ProxyHandler<T> {
private readonly targets;
private static instance;
constructor(target: T, { useSingleton, ...globalOptions }?: SurrogateOptions);
get<K extends keyof T>(target: T, event: string, receiver: Surrogate<T>): T[K] | EventManager<T>;
getEventManager(target: T): EventManager<T>;
static wrap<T extends object>(object: T, options?: SurrogateOptions): Surrogate<T>;
static hasTarget<T extends object>(target: T): target is Surrogate<T>;
bindHandler(event: string, target: T, receiver: Surrogate<T>): Function;
surrogateHandler(context: Context<T>): any;
dispose(target: T): T;
private setTarget;
private useInstance;
}