mysql-live
Version:
Brings the server.publish and client.subscribe for live updates on mysql database. The only one Live Collections.
41 lines (40 loc) • 1.96 kB
TypeScript
/// <reference path="../../typings/socket.io/socket.io.d.ts" />
/// <reference path="../../typings/lodash/lodash.d.ts" />
import { Cursor } from "./LiveStore";
import { CriteriaBuilder } from "node-mysql-wrapper";
export declare type AllowOptionsType = {
subscribe?: (socket: SocketIO.Socket, subscriptionName: string) => boolean;
insert?: (socket: SocketIO.Socket, object: any) => boolean;
update?: (socket: SocketIO.Socket, object: any) => boolean;
remove?: (socket: SocketIO.Socket, primaryKey: string | number) => boolean;
};
export declare class Collection {
name: string;
table: string;
primaryKeyColumn: string;
options: AllowOptionsType;
disallowOptions: string[];
private databaseTable;
private __single_item_collection__;
lastFindCriteria: any;
constructor(collectionName: string, tableName: string, isJustOneObject?: boolean);
isObject(): boolean;
setDatabaseTable(table: NodeMysqlWrapper.Table<any>): void;
allow(options: AllowOptionsType): void;
deny(options: AllowOptionsType): void;
disallow(options: AllowOptionsType): void;
private processCriteria(criteria, single?);
find(criteria?: any): Cursor;
findSingle(criteria?: any): Cursor;
noop(): Cursor;
selector(): CriteriaBuilder<any>;
fetch(criteriaRawJsObject?: any, callback?: (_results: any[]) => any): Promise<any[]>;
fetchSingle(criteriaRawJsObject: any, callback?: (_result: any) => any): Promise<any>;
save(criteriaRawJsObject: any, callback?: (_result: any) => any): Promise<any>;
insert(criteriaRawJsObject: any, callback?: (_result: any) => any): Promise<any>;
update(criteriaRawJsObject: any, callback?: (_result: any) => any): Promise<any>;
remove(criteriaOrID: any | number | string, callback?: (_result: NodeMysqlWrapper.DeleteAnswer) => any): Promise<NodeMysqlWrapper.DeleteAnswer>;
}
export interface CollectionDictionary {
[name: string]: Collection;
}