insite-subscriptions-client
Version:
inSite subscriptions client side
37 lines • 1.86 kB
TypeScript
import EventEmitter from "eventemitter3";
import { StatefulPromise } from "@nesvet/n";
import { SubscriptionGroupItem } from "./SubscriptionGroupItem";
import { Definition, ParseValues, SubscriptionType, UnparsedDefinition } from "./types";
type Target = any;
type Options = {
target?: Target;
debounce?: number;
immediately?: boolean;
};
export declare class SubscriptionGroup<DS extends UnparsedDefinition[] = any[]> extends EventEmitter {
#private;
constructor(definitions: DS, { target, debounce: debounceLimit, immediately }?: Options);
target?: Target;
emitUpdate: () => void;
items: Record<string, SubscriptionGroupItem> & SubscriptionGroupItem[];
values: DS extends any ? (any[] & Record<string, any>) : ParseValues<DS>;
isLoaded: boolean;
isInited: boolean;
applyOptions({ target, debounceLimit }: {
target?: Target;
debounceLimit?: number;
}): void;
attach(definitions: DS, shouldReload?: boolean, immediately?: boolean): Promise<SubscriptionGroupItem<SubscriptionType, Definition<SubscriptionType>>[]>;
detach(names: string[], shouldUpdate?: boolean): void;
redefine(definitions: DS): Promise<(SubscriptionGroupItem<SubscriptionType, Definition<SubscriptionType>> | SubscriptionGroupItem<SubscriptionType, Definition<SubscriptionType>>[])[]>;
subscribe(): void[];
unsubscribe(): (void | undefined)[];
loaded(): StatefulPromise<SubscriptionGroup<any[]>>;
inited(): StatefulPromise<SubscriptionGroup<any[]>>;
unloaded(): StatefulPromise<SubscriptionGroup<any[]>>;
valueOf(): DS extends any ? any[] & Record<string, any> : ParseValues<DS>;
[Symbol.iterator](): ArrayIterator<any>;
static debounceLimit: number;
}
export { Options as SubscriptionGroupOptions, Target as SubscriptionGroupTarget };
//# sourceMappingURL=SubscriptionGroup.d.ts.map