From 8617e7b3c94a8354e37ebd6cdc3e4eab6f59d8f0 Mon Sep 17 00:00:00 2001 From: Makis Maropoulos Date: Sat, 29 Aug 2015 09:19:39 +0300 Subject: [PATCH] Update node-mysql-wrapper.d.ts --- node-mysql-wrapper/node-mysql-wrapper.d.ts | 208 ++++++++++----------- 1 file changed, 104 insertions(+), 104 deletions(-) diff --git a/node-mysql-wrapper/node-mysql-wrapper.d.ts b/node-mysql-wrapper/node-mysql-wrapper.d.ts index 55cd039e8..6f792d96d 100644 --- a/node-mysql-wrapper/node-mysql-wrapper.d.ts +++ b/node-mysql-wrapper/node-mysql-wrapper.d.ts @@ -3,129 +3,129 @@ // Definitions by: Makis Maropoulos // Definitions: https://github.com/borisyankov/DefinitelyTyped -/// +/// /// declare module "node-mysql-wrapper" { - import Mysql = require("mysql"); + import * as Mysql from 'mysql'; + import * as Promise from 'bluebird'; + import {EventEmitter} from 'events'; - function MySQLWrapperBuilder(connection: string | Mysql.IConnection, ...useOnlyTables: string[]): MySQLWrapper; + var EQUAL_TO_PROPERTY_SYMBOL: string; - enum EVENT_TYPES { - INSERT, UPDATE, DELETE, SAVE + interface Map { + [index: string]: T; } - interface MySQLConnection { - new (connection: string | Mysql.IConnection): MySQLConnection; + class MysqlUtil { + constructor(); + static copyObject(object: T): T; + static toObjectProperty(columnKey: string): string; + static toRowProperty(objectKey: string): string; + static forEachValue(map: Map, callback: (value: T) => U): U; + static forEachKey(map: Map, callback: (key: string) => U): U; + } - create(connectionUri: string): void; - create(connection: Mysql.IConnection): void; + interface ICriteria { + rawCriteriaObject: any; + tables: string[]; + noDatabaseProperties: string[]; + whereClause: string; + } + + class Criteria implements ICriteria { + rawCriteriaObject: any; + tables: string[]; + noDatabaseProperties: string[]; + whereClause: string; + constructor(rawCriteriaObject: any, tables: string[], noDatabaseProperties: string[], whereClause: string); + } + + class CriteriaBuilder { + private _table; + constructor(table: MysqlTable); + build(rawCriteriaObject: any): Criteria; + } + + class MysqlConnection extends EventEmitter { + connection: Mysql.IConnection; + eventTypes: string[]; + tableNamesToUseOnly: any[]; + tables: MysqlTable[]; + constructor(connection: string | Mysql.IConnection); + create(connection: string | Mysql.IConnection): void; attach(connection: Mysql.IConnection): void; - end(callback: () => void): void; + end(callback?: (error: any) => void): void; destroy(): void; - link(callback?: () => void): Promise; - connect(callback?: () => void): Promise; - - useOnly(...useOnlyTables: string[]): void; - - fetchDatabaseInfornation(): Promise; - + link(readyCallback?: () => void): Promise; + useOnly(...tables: any[]): void; + fetchDatabaseInfornation(): Promise; escape(val: string): string; - notice(tableWhichCalled: string, queryStr: string, parsedResults: Object[]): void; - fireEvent(tableWhichCalled: string, queryStr: string, parsedResults: Object[]): void; - - watch(tableName: string, evtType: EVENT_TYPES | string, callback: (parsedResults: Object[]) => void): void; - on(tableName: string, evtType: EVENT_TYPES | string, callback: (parsedResults: Object[]) => void): void; - unwatch(tableName: string, evtType: EVENT_TYPES | string, callbackToRemove: () => void): void; - off(tableName: string, evtType: EVENT_TYPES | string, callbackToRemove: () => void): void; - - query(mysqlQuery: Mysql.IQueryFunction): void; - - table(tableName: string): MySQLTable; + notice(tableWhichCalled: string, queryStr: string, parsedResults: any[]): void; + watch(tableName: string, evtType: any, callback: (parsedResults: any[]) => void): void; + unwatch(tableName: string, evtType: string, callbackToRemove: (parsedResults: any[]) => void): void; + query(queryStr: string, callback: (err: Mysql.IError, results: any) => any, queryArguments?: any[]): void; + table(tableName: string): MysqlTable; } - - interface MySQLTable { - new (tableName: string, connection: MySQLConnection): MySQLTable; - - setColumns(columns: string[]): void; - - setPrimaryKey(primaryKeyColumnName: string): void; - - toString(): string; - - model(jsObject: Object): MySQLModel; - - watch(evtType: EVENT_TYPES | string, callback: (parsedResults: Object[]) => void): void; - on(evtType: EVENT_TYPES | string, callback: (parsedResults: Object[]) => void): void; - unwatch(evtType: EVENT_TYPES|string, callbackToRemove: () => void): void; - off(evtType: EVENT_TYPES|string, callbackToRemove: () => void): void; - - ///START DYNAMIC METHODS FOR TABLES CANNOT BE PRE-DEFINED WITH DYNAMIC WAY, YET, SO: - find(jsObject: Object, callback?: (results: Object[]) => void): Promise; - save(jsObject: Object, callback?: (results: Object[]) => void): Promise; - remove(jsObject: Object, callback?: (results: Object[]) => void): Promise; - delete(jsObject: Object, callback?: (results: Object[]) => void): Promise; - safeDelete(jsObject: Object, callback?: (results: Object[]) => void): Promise; - ///END - findAll(callback?: (results: Object[]) => void): Promise; - - extend(functionName: string, functionToBeSupported: () => any): void; - + + class MysqlTable { + private _name; + private _connection; + private _columns; + private _primaryKey; + private _criteriaBuilder; + constructor(tableName: string, connection: MysqlConnection); + columns: string[]; + primaryKey: string; + connection: MysqlConnection; + name: string; + on(evtType: string, callback: (parsedResults: any[]) => void): void; + off(evtType: string, callbackToRemove: (parsedResults: any[]) => void): void; has(extendedFunctionName: string): boolean; - + extend(functionName: string, theFunction: (...args: any[]) => any): void; + objectFromRow(row: any): any; + rowFromObject(obj: any): any; + getRowAsArray(jsObject: any): Array; + getPrimaryKeyValue(jsObject: any): number | string; + parseQueryResult(result: any, criteria: ICriteria): Promise; + find(criteriaRawJsObject: any, callback?: (_results: T[]) => any): Promise; + findById(id: number | string, callback?: (result: T) => any): Promise; + findAll(callback?: (_results: T[]) => any): Promise; + save(criteriaRawJsObject: any, callback?: (_result: any) => any): Promise; + safeRemove(id: number | string, callback?: (_result: { + affectedRows: number; + table: string; + }) => any): Promise<{ + affectedRows: number; + table: string; + }>; + remove(criteriaRawJsObject: any, callback?: (_result: { + affectedRows: number; + table: string; + }) => any): Promise<{ + affectedRows: number; + table: string; + }>; } - interface MySQLModel { - - new (table: MySQLTable, jsObject: Object): MySQLModel; - - toObjectProperty(columnKey: string): string; - toRowProperty(objectKey: string): string; - - create(jsObject: Object): MySQLModel; - reUse(jsObject: Object): MySQLModel; - - toRow(): void; - getRawObject(): Object; - - parseTable(mysqlTableToSearch: String, parentObject: Object): Promise; - parseResult(result: Object, tablesToSearch: string[]): Promise; - - find(parentObj?: Object): Promise; - findAll(): Promise; - save(): Promise; - safeDelete(): Promise; - remove(): Promise; - delete(): Promise; - - } - - interface MySQLWrapper { - new (connection?: MySQLConnection): MySQLWrapper; - - setConnection(connection: MySQLConnection): void; - - useOnly(...useOnlyTables: string[]): void; - - has(tableName: string): boolean; - has(tableName: string, methodName: string): boolean; - + class MysqlWrapper { + connection: MysqlConnection; + readyListenerCallbacks: Function[]; + constructor(connection?: MysqlConnection); + static when(..._promises: Promise[]): Promise; + setConnection(connection: MysqlConnection): void; + useOnly(...useTables: any[]): void; + has(tableName: string, functionName?: string): boolean; ready(callback: () => void): void; + table(tableName: string): MysqlTable; noticeReady(): void; - removeReadyListener(callback: () => any): void; - - query: Mysql.IQueryFunction; - + removeReadyListener(callback: () => void): void; + query(queryStr: string, callback: (err: Mysql.IError, results: any) => any, queryArguments?: any[]): void; destroy(): void; - end(callback?: () => void): void; - - when(): Promise; - - ///START: WE CANNOT PRE-DEFINE THE DYNAMIC TABLES INTO PROPERTIES, SO WE USE INDEX(STRING-TABLENAME) TO GET A TABLE - table(tableName: string): MySQLTable; - ///END + end(maybeAcallbackError: (err: any) => void): void; } - export = MySQLWrapperBuilder; + function wrap(mysqlUrlOrObjectOrMysqlAlreadyConnection: Mysql.IConnection | string, ...useTables: any[]): MysqlWrapper; + }