From 53447415f7dd5bb3d72d93bea83ece16129bde9d Mon Sep 17 00:00:00 2001 From: Makis Maropoulos Date: Sun, 16 Aug 2015 09:09:39 +0300 Subject: [PATCH 01/11] Create node-mysql-wrapper-tests.js --- node-mysql-wrapper/node-mysql-wrapper-tests.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 node-mysql-wrapper/node-mysql-wrapper-tests.js diff --git a/node-mysql-wrapper/node-mysql-wrapper-tests.js b/node-mysql-wrapper/node-mysql-wrapper-tests.js new file mode 100644 index 0000000000..8198792fb8 --- /dev/null +++ b/node-mysql-wrapper/node-mysql-wrapper-tests.js @@ -0,0 +1,14 @@ +/// +var wrapper = require("node-mysql-wrapper"); +var db = wrapper("mysql://kataras:pass@127.0.0.1/taglub?debug=false&charset=utf8"); +db.ready(function () { + db.table("users").on("insert", function (parsedResults) { + }); + db.table("users").findAll().then(function (results) { + console.dir(results); + }); + db.table("users").find({ userId: 18 }, function (results) { + console.dir(results[0]); + }); +}); +//# sourceMappingURL=node-mysql-wrapper-tests.js.map From d34d427a6966c6994f4a5e4651c3317d56b8b514 Mon Sep 17 00:00:00 2001 From: Makis Maropoulos Date: Sun, 16 Aug 2015 09:10:16 +0300 Subject: [PATCH 02/11] Type definitions for node-mysql-wrapper --- node-mysql-wrapper/node-mysql-wrapper.d.ts | 134 +++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 node-mysql-wrapper/node-mysql-wrapper.d.ts diff --git a/node-mysql-wrapper/node-mysql-wrapper.d.ts b/node-mysql-wrapper/node-mysql-wrapper.d.ts new file mode 100644 index 0000000000..4285c2f50b --- /dev/null +++ b/node-mysql-wrapper/node-mysql-wrapper.d.ts @@ -0,0 +1,134 @@ +// Type definitions for node-mysql-wrapper +// Project: https://github.com/kataras/node-mysql-wrapper +// Definitions by: Makis Maropoulos +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// +/// + +declare module "node-mysql-wrapper" { + import Mysql = require("mysql"); + + function MySQLWrapperBuilder(connection: string | Mysql.IConnection, ...useOnlyTables: string[]): MySQLWrapper; + + enum EVENT_TYPES { + INSERT, UPDATE, DELETE, SAVE + } + + interface MySQLConnection { + constructor(connection: string | Mysql.IConnection); + + create(connectionUri: string); + create(connection: Mysql.IConnection); + + attach(connection: Mysql.IConnection): void; + end(callback: () => void): void; + destroy(): void; + link(callback?: () => void): Promise; + connect(callback?: () => void): Promise; + + useOnly(...useOnlyTables: string[]): void; + + fetchDatabaseInfornation(): Promise; + + escape(val: string): string; + notice(tableWhichCalled: string, queryStr: string, parsedResults: Object[]); + fireEvent(tableWhichCalled: string, queryStr: string, parsedResults: Object[]); + + 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; + } + + interface MySQLTable { + constructor(tableName: string, connection: MySQLConnection); + + setColumns(columns: string[]); + + setPrimaryKey(primaryKeyColumnName: string); + + toString(): string; + + model(jsObject: Object): MySQLModel; + + watch(evtType: EVENT_TYPES | string, callback: (parsedResults: Object[]) => void); + on(evtType: EVENT_TYPES | string, callback: (parsedResults: Object[]) => void); + unwatch(evtType: EVENT_TYPES|string, callbackToRemove: () => void); + off(evtType: EVENT_TYPES|string, callbackToRemove: () => 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); + + has(extendedFunctionName: string); + + } + + interface MySQLModel { + public EQUAL_TO_PROPERTY_SYMBOL: string; + + constructor(table: MySQLTable, jsObject: Object); + + 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); + parseResult(result: Object, tablesToSearch: string[]); + + find(parentObj?: Object): Promise; + findAll(): Promise; + save(): Promise; + safeDelete(): Promise; + remove(): Promise; + delete(): Promise; + + } + + interface MySQLWrapper { + constructor(connection?: MySQLConnection); + + setConnection(connection: MySQLConnection): void; + + useOnly(...useOnlyTables: string[]): void; + + has(tableName: string): boolean; + has(tableName: string, methodName: string): boolean; + + ready(callback: () => void): void; + noticeReady(): void; + removeReadyListener(callback: () => any): void; + + query: Mysql.IQueryFunction; + + 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 + } + + export = MySQLWrapperBuilder; + + +} From 05063b1f1fa90ed1f21749a9db027fec21f0bb79 Mon Sep 17 00:00:00 2001 From: Makis Maropoulos Date: Sun, 16 Aug 2015 09:17:09 +0300 Subject: [PATCH 03/11] Create node-mysql-wrapper-tests.ts --- .../node-mysql-wrapper-tests.ts | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 node-mysql-wrapper/node-mysql-wrapper-tests.ts diff --git a/node-mysql-wrapper/node-mysql-wrapper-tests.ts b/node-mysql-wrapper/node-mysql-wrapper-tests.ts new file mode 100644 index 0000000000..ab28b22af1 --- /dev/null +++ b/node-mysql-wrapper/node-mysql-wrapper-tests.ts @@ -0,0 +1,22 @@ +/// + +import wrapper = require("node-mysql-wrapper"); +var db = wrapper("mysql://kataras:pass@127.0.0.1/taglub?debug=false&charset=utf8"); + +db.ready(() => { + + db.table("users").on("insert", (parsedResults) => { + + }); + + db.table("users").findAll().then((results) => { + console.dir(results); + }); + + db.table("users").find({ userId: 18 }, (results) => { + console.dir(results[0]); + }); + + + +}); From cbf7ea23a7cb0bf413b4d5a40495d9f7fd8e56e1 Mon Sep 17 00:00:00 2001 From: Makis Maropoulos Date: Sun, 16 Aug 2015 09:19:49 +0300 Subject: [PATCH 04/11] Update node-mysql-wrapper.d.ts --- node-mysql-wrapper/node-mysql-wrapper.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node-mysql-wrapper/node-mysql-wrapper.d.ts b/node-mysql-wrapper/node-mysql-wrapper.d.ts index 4285c2f50b..bc145929c0 100644 --- a/node-mysql-wrapper/node-mysql-wrapper.d.ts +++ b/node-mysql-wrapper/node-mysql-wrapper.d.ts @@ -77,7 +77,7 @@ declare module "node-mysql-wrapper" { } interface MySQLModel { - public EQUAL_TO_PROPERTY_SYMBOL: string; + EQUAL_TO_PROPERTY_SYMBOL: string; constructor(table: MySQLTable, jsObject: Object); From 2e819ab29db8809a1f372fa60d4da990922e02ac Mon Sep 17 00:00:00 2001 From: Makis Maropoulos Date: Sun, 16 Aug 2015 09:22:16 +0300 Subject: [PATCH 05/11] Update node-mysql-wrapper.d.ts --- node-mysql-wrapper/node-mysql-wrapper.d.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/node-mysql-wrapper/node-mysql-wrapper.d.ts b/node-mysql-wrapper/node-mysql-wrapper.d.ts index bc145929c0..a993cd2786 100644 --- a/node-mysql-wrapper/node-mysql-wrapper.d.ts +++ b/node-mysql-wrapper/node-mysql-wrapper.d.ts @@ -77,8 +77,6 @@ declare module "node-mysql-wrapper" { } interface MySQLModel { - EQUAL_TO_PROPERTY_SYMBOL: string; - constructor(table: MySQLTable, jsObject: Object); toObjectProperty(columnKey: string): string; From 6b0625a99c796fb527c3d240844d660b45a3dd5a Mon Sep 17 00:00:00 2001 From: Makis Maropoulos Date: Sun, 16 Aug 2015 09:30:16 +0300 Subject: [PATCH 06/11] Update node-mysql-wrapper.d.ts --- node-mysql-wrapper/node-mysql-wrapper.d.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/node-mysql-wrapper/node-mysql-wrapper.d.ts b/node-mysql-wrapper/node-mysql-wrapper.d.ts index a993cd2786..23a522720d 100644 --- a/node-mysql-wrapper/node-mysql-wrapper.d.ts +++ b/node-mysql-wrapper/node-mysql-wrapper.d.ts @@ -3,8 +3,8 @@ // Definitions by: Makis Maropoulos // Definitions: https://github.com/borisyankov/DefinitelyTyped -/// -/// +/// +/// declare module "node-mysql-wrapper" { import Mysql = require("mysql"); From 9d19d3a5ef2d7ec7317a68606647faf2584f83f0 Mon Sep 17 00:00:00 2001 From: Makis Maropoulos Date: Sun, 16 Aug 2015 09:32:24 +0300 Subject: [PATCH 07/11] Update node-mysql-wrapper.d.ts --- node-mysql-wrapper/node-mysql-wrapper.d.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/node-mysql-wrapper/node-mysql-wrapper.d.ts b/node-mysql-wrapper/node-mysql-wrapper.d.ts index 23a522720d..c8cd3a1035 100644 --- a/node-mysql-wrapper/node-mysql-wrapper.d.ts +++ b/node-mysql-wrapper/node-mysql-wrapper.d.ts @@ -3,8 +3,8 @@ // Definitions by: Makis Maropoulos // Definitions: https://github.com/borisyankov/DefinitelyTyped -/// -/// +/// +/// declare module "node-mysql-wrapper" { import Mysql = require("mysql"); From 91db06ea7c457c8bb3419e1a3656463f658696e7 Mon Sep 17 00:00:00 2001 From: Makis Maropoulos Date: Sun, 16 Aug 2015 09:36:34 +0300 Subject: [PATCH 08/11] Update node-mysql-wrapper.d.ts --- node-mysql-wrapper/node-mysql-wrapper.d.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/node-mysql-wrapper/node-mysql-wrapper.d.ts b/node-mysql-wrapper/node-mysql-wrapper.d.ts index c8cd3a1035..b87872d7dd 100644 --- a/node-mysql-wrapper/node-mysql-wrapper.d.ts +++ b/node-mysql-wrapper/node-mysql-wrapper.d.ts @@ -18,8 +18,8 @@ declare module "node-mysql-wrapper" { interface MySQLConnection { constructor(connection: string | Mysql.IConnection); - create(connectionUri: string); - create(connection: Mysql.IConnection); + create(connectionUri: string): void; + create(connection: Mysql.IConnection): void; attach(connection: Mysql.IConnection): void; end(callback: () => void): void; @@ -32,8 +32,8 @@ declare module "node-mysql-wrapper" { fetchDatabaseInfornation(): Promise; escape(val: string): string; - notice(tableWhichCalled: string, queryStr: string, parsedResults: Object[]); - fireEvent(tableWhichCalled: string, queryStr: string, parsedResults: Object[]); + 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; @@ -77,6 +77,7 @@ declare module "node-mysql-wrapper" { } interface MySQLModel { + constructor(table: MySQLTable, jsObject: Object); toObjectProperty(columnKey: string): string; @@ -88,8 +89,8 @@ declare module "node-mysql-wrapper" { toRow(): void; getRawObject(): Object; - parseTable(mysqlTableToSearch: String, parentObject: Object); - parseResult(result: Object, tablesToSearch: string[]); + parseTable(mysqlTableToSearch: String, parentObject: Object): Promise; + parseResult(result: Object, tablesToSearch: string[]): Promise; find(parentObj?: Object): Promise; findAll(): Promise; From c16108cb1ebcc64da4ba28b7e3e145ef383f00af Mon Sep 17 00:00:00 2001 From: Makis Maropoulos Date: Sun, 16 Aug 2015 09:39:38 +0300 Subject: [PATCH 09/11] Update node-mysql-wrapper.d.ts --- node-mysql-wrapper/node-mysql-wrapper.d.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/node-mysql-wrapper/node-mysql-wrapper.d.ts b/node-mysql-wrapper/node-mysql-wrapper.d.ts index b87872d7dd..55aeb08179 100644 --- a/node-mysql-wrapper/node-mysql-wrapper.d.ts +++ b/node-mysql-wrapper/node-mysql-wrapper.d.ts @@ -48,18 +48,18 @@ declare module "node-mysql-wrapper" { interface MySQLTable { constructor(tableName: string, connection: MySQLConnection); - setColumns(columns: string[]); + setColumns(columns: string[]):void; - setPrimaryKey(primaryKeyColumnName: string); + setPrimaryKey(primaryKeyColumnName: string):void; toString(): string; model(jsObject: Object): MySQLModel; - watch(evtType: EVENT_TYPES | string, callback: (parsedResults: Object[]) => void); - on(evtType: EVENT_TYPES | string, callback: (parsedResults: Object[]) => void); - unwatch(evtType: EVENT_TYPES|string, callbackToRemove: () => void); - off(evtType: EVENT_TYPES|string, callbackToRemove: () => void); + 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; @@ -70,9 +70,9 @@ declare module "node-mysql-wrapper" { ///END findAll(callback?: (results: Object[]) => void): Promise; - extend(functionName: string, functionToBeSupported: () => any); + extend(functionName: string, functionToBeSupported: () => any):void; - has(extendedFunctionName: string); + has(extendedFunctionName: string):boolean; } From 3db62a13b70a08806245db547997380461aaa212 Mon Sep 17 00:00:00 2001 From: Makis Maropoulos Date: Sun, 16 Aug 2015 09:53:21 +0300 Subject: [PATCH 10/11] Update node-mysql-wrapper.d.ts --- node-mysql-wrapper/node-mysql-wrapper.d.ts | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/node-mysql-wrapper/node-mysql-wrapper.d.ts b/node-mysql-wrapper/node-mysql-wrapper.d.ts index 55aeb08179..01506396ff 100644 --- a/node-mysql-wrapper/node-mysql-wrapper.d.ts +++ b/node-mysql-wrapper/node-mysql-wrapper.d.ts @@ -16,7 +16,7 @@ declare module "node-mysql-wrapper" { } interface MySQLConnection { - constructor(connection: string | Mysql.IConnection); + new (connection: string | Mysql.IConnection): MySQLConnection; create(connectionUri: string): void; create(connection: Mysql.IConnection): void; @@ -46,20 +46,20 @@ declare module "node-mysql-wrapper" { } interface MySQLTable { - constructor(tableName: string, connection: MySQLConnection); + new (tableName: string, connection: MySQLConnection): MySQLTable; - setColumns(columns: string[]):void; + setColumns(columns: string[]): void; - setPrimaryKey(primaryKeyColumnName: 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; + 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; @@ -70,15 +70,15 @@ declare module "node-mysql-wrapper" { ///END findAll(callback?: (results: Object[]) => void): Promise; - extend(functionName: string, functionToBeSupported: () => any):void; + extend(functionName: string, functionToBeSupported: () => any): void; - has(extendedFunctionName: string):boolean; + has(extendedFunctionName: string): boolean; } interface MySQLModel { - constructor(table: MySQLTable, jsObject: Object); + new (table: MySQLTable, jsObject: Object): MySQLModel; toObjectProperty(columnKey: string): string; toRowProperty(objectKey: string): string; From 933c5f379617cab952dfcfa6c2abadd33a493a32 Mon Sep 17 00:00:00 2001 From: Makis Maropoulos Date: Sun, 16 Aug 2015 09:56:05 +0300 Subject: [PATCH 11/11] I Hope last 'syndax' fix for this minute...... --- node-mysql-wrapper/node-mysql-wrapper.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node-mysql-wrapper/node-mysql-wrapper.d.ts b/node-mysql-wrapper/node-mysql-wrapper.d.ts index 01506396ff..0a0bd60f21 100644 --- a/node-mysql-wrapper/node-mysql-wrapper.d.ts +++ b/node-mysql-wrapper/node-mysql-wrapper.d.ts @@ -102,7 +102,7 @@ declare module "node-mysql-wrapper" { } interface MySQLWrapper { - constructor(connection?: MySQLConnection); + new (connection?: MySQLConnection): MySQLWrapper; setConnection(connection: MySQLConnection): void;