migrating to typescript

This commit is contained in:
Anatoly 2018-08-21 02:34:16 +03:00
parent 6dd3d011b7
commit bf9a491214
2 changed files with 51 additions and 49 deletions

View file

@ -161,7 +161,7 @@ export default class DBAccess {
return vendor === DBVendors.PG
? this._queryPG(caller, sql, processExitOnError, shouldReturnClient, (<PoolClient>client), bindings)
: this._queryMySQL(caller, sql, processExitOnError, shouldReturnClient, (<PoolConnection>client));
: this._queryMySQL(caller, sql, processExitOnError, shouldReturnClient, (<PoolConnection>client), bindings);
}
/**
@ -172,9 +172,14 @@ export default class DBAccess {
sql: string,
processExitOnError: boolean,
shouldReturnClient: boolean,
client?: PoolConnection
client?: PoolConnection,
bindings?: any[]
): Promise<DBAccessQueryResult> {
return new Promise<DBAccessQueryResult>((resolve, reject) => {
if (Array.isArray(bindings)) {
sql = (<PoolConnection>client).format(sql, bindings);
}
(<PoolConnection>client).query(sql, (error: MysqlError|null, data: any) => {
this._releaseDbClientIfNecessary((<PoolConnection>client), shouldReturnClient);

View file

@ -223,58 +223,55 @@ export class TestSchemaProcessor {
/**
* Loads test data into MySQL test database.
*
* @param {Conversion} conversion
*
* @returns {Promise<Conversion>}
*/
loadTestData(conversion) {
return connect(conversion).then(() => {
return new Promise(resolve => {
conversion._mysql.getConnection((error, connection) => {
if (error) {
this.processFatalError(conversion, error);
}
async loadTestData(conversion: Conversion): Promise<Conversion> {
const dbAccess: DBAccess = new DBAccess(conversion);
const insertParams: any = {
id_test_unique_index: 7384,
id_test_composite_unique_index_1: 125,
id_test_composite_unique_index_2: 234,
id_test_index: 123,
int_test_not_null: 123,
id_test_composite_index_1: 11,
id_test_composite_index_2: 22,
json_test_comment: '{"prop1":"First","prop2":2}',
bit: 1,
year: 1984,
bigint: '1234567890123456800',
float: 12345.5,
double: 123456789.23,
numeric: '1234567890',
decimal: '1234567890',
char_5: 'fghij',
varchar_5: 'abcde',
date: '1984-11-30',
time: '21:12:33',
timestamp: '2018-11-11 22:21:20',
enum: 'e1',
set: 's2',
text: 'Test text',
blob: this.getTestBlob(conversion),
};
const insertParams = {
id_test_unique_index : 7384,
id_test_composite_unique_index_1 : 125,
id_test_composite_unique_index_2 : 234,
id_test_index : 123,
int_test_not_null : 123,
id_test_composite_index_1 : 11,
id_test_composite_index_2 : 22,
json_test_comment : '{"prop1":"First","prop2":2}',
bit : 1,
year : 1984,
bigint : '1234567890123456800',
float : 12345.5,
double : 123456789.23,
numeric : '1234567890',
decimal : '1234567890',
char_5 : 'fghij',
varchar_5 : 'abcde',
date : '1984-11-30',
time : '21:12:33',
timestamp : '2018-11-11 22:21:20',
enum : 'e1',
set : 's2',
text : 'Test text',
blob : this.getTestBlob(conversion),
};
const insertParamsKeys: string[] = Object.keys(insertParams);
const sql: string = `INSERT INTO \`table_a\`(${ insertParamsKeys.join(',') })
VALUES(${ insertParamsKeys.map((k: string) => '?').join(',') });`;
connection.query('INSERT INTO `table_a` SET ?;', insertParams, err => {
connection.release();
const result: DBAccessQueryResult = await dbAccess.query(
'TestSchemaProcessor::loadTestData',
sql,
DBVendors.MYSQL,
false,
false,
undefined,
Object.values(insertParams)
);
if (err) {
this.processFatalError(conversion, err);
}
if (result.error) {
this.processFatalError(conversion, result.error);
}
resolve(conversion);
});
});
});
});
return conversion;
}
/**