mysql-live-client
Version:
The client side script of mysql-live package.
52 lines (51 loc) • 1.91 kB
TypeScript
import { default as BaseCollection, LoopFn } from "./BaseCollection";
import { Task } from "./tasks/index";
export declare type NextFn = () => void;
export declare type onAcknowledgementType = (result: any) => void;
export declare type onCollectionReceiveEventType = {
name: string;
items?: any[];
};
export declare type onObjectReceiveEventType = {
name: string;
item: any;
};
export declare type onInsertObjectEventType = {
name: string;
newItem?: any;
};
export declare type onUpdateObjectEventType = {
name: string;
newItem?: any;
selector?: any;
};
export declare type onRemoveObjectEventType = {
name: string;
selector?: any;
};
export declare type onAnyChangeEventType = onCollectionReceiveEventType | onObjectReceiveEventType | onInsertObjectEventType | onUpdateObjectEventType | onRemoveObjectEventType;
export declare type onChangeEvent = (evt: onAnyChangeEventType, next?: NextFn | LoopFn, loop?: (_loop: LoopFn) => void) => void;
export default class ObservableCollection extends BaseCollection {
static ON_RECEIVE: string;
static ON_INSERT: string;
static ON_UPDATE: string;
static ON_REMOVE: string;
static ON_CHANGE: string;
static EVENT_ID_START: string;
listeners: onChangeEvent[];
simultaneouslyListeners: onChangeEvent[];
hasReceived: boolean;
protected registerOnceCbIds: string[];
static getRandomEventId(): string;
constructor(name: string);
tasks: Task[];
addTask(task: Task): void;
hasTasks: boolean;
onChange(cb: onChangeEvent, cbId?: string): void;
on(eventName: string, cb: onChangeEvent, cbId?: string): void;
removeOnChange(): void;
fireChange(event: onAnyChangeEventType): void;
runTasks(event: onAnyChangeEventType, finish: () => void, index?: number): void;
fireChangeNow(evt: onAnyChangeEventType, listenerIndex?: number): void;
destroy(): void;
}