@itrocks/mysql
Advanced tools
Comparing version 0.0.4 to 0.0.5
@@ -8,3 +8,3 @@ import { AnyObject } from '@itrocks/class-type'; | ||
export declare const DEBUG = false; | ||
export interface Dependencies<QF extends object = object> { | ||
interface Dependencies<QF extends object = object> { | ||
applyReadTransformer: <T extends object>(object: T, property: KeyOf<T>, data: AnyObject) => any; | ||
@@ -19,4 +19,3 @@ applySaveTransformer: <T extends object>(object: T, property: KeyOf<T>, data: AnyObject) => any; | ||
} | ||
export declare const depends: Dependencies; | ||
export declare function dependsOn<QF extends object = object>(dependencies: Partial<Dependencies<QF>>): void; | ||
export declare function mysqlDependsOn<QF extends object = object>(dependencies: Partial<Dependencies<QF>>): void; | ||
export default class Mysql extends DataSource { | ||
@@ -58,1 +57,2 @@ config: { | ||
} | ||
export {}; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.depends = exports.DEBUG = void 0; | ||
exports.dependsOn = dependsOn; | ||
exports.DEBUG = void 0; | ||
exports.mysqlDependsOn = mysqlDependsOn; | ||
const class_type_1 = require("@itrocks/class-type"); | ||
@@ -10,3 +10,3 @@ const reflect_1 = require("@itrocks/reflect"); | ||
exports.DEBUG = false; | ||
exports.depends = { | ||
const depends = { | ||
applyReadTransformer: value => value, | ||
@@ -22,4 +22,4 @@ applySaveTransformer: value => value, | ||
}; | ||
function dependsOn(dependencies) { | ||
Object.assign(exports.depends, dependencies); | ||
function mysqlDependsOn(dependencies) { | ||
Object.assign(depends, dependencies); | ||
} | ||
@@ -47,9 +47,9 @@ class Mysql extends storage_1.DataSource { | ||
if (exports.DEBUG) | ||
console.log('DELETE FROM `' + exports.depends.storeOf(type) + '` WHERE `' + exports.depends.columnOf(property) + '` = ?', [id]); | ||
await connection.query('DELETE FROM `' + exports.depends.storeOf(type) + '` WHERE `' + exports.depends.columnOf(property) + '` = ?', [id]); | ||
console.log('DELETE FROM `' + depends.storeOf(type) + '` WHERE `' + depends.columnOf(property) + '` = ?', [id]); | ||
await connection.query('DELETE FROM `' + depends.storeOf(type) + '` WHERE `' + depends.columnOf(property) + '` = ?', [id]); | ||
} | ||
async deleteRelatedId(object, property, id) { | ||
const connection = this.connection ?? await this.connect(); | ||
const objectTable = exports.depends.storeOf(object); | ||
const propertyTable = exports.depends.storeOf(new reflect_1.ReflectProperty(object, property).collectionType.elementType); | ||
const objectTable = depends.storeOf(object); | ||
const propertyTable = depends.storeOf(new reflect_1.ReflectProperty(object, property).collectionType.elementType); | ||
const joinTable = [objectTable, propertyTable].sort().join('_'); | ||
@@ -66,3 +66,3 @@ const query = 'DELETE FROM `' + joinTable + '` WHERE ' + objectTable + '_id = ? AND ' + propertyTable + '_id = ?'; | ||
const sql = this.propertiesToSql(values); | ||
const query = 'INSERT INTO `' + exports.depends.storeOf(object) + '` SET ' + sql; | ||
const query = 'INSERT INTO `' + depends.storeOf(object) + '` SET ' + sql; | ||
if (exports.DEBUG) | ||
@@ -80,4 +80,4 @@ console.log(query, JSON.stringify(Object.values(values))); | ||
const connection = this.connection ?? await this.connect(); | ||
const objectTable = exports.depends.storeOf(object); | ||
const propertyTable = exports.depends.storeOf(new reflect_1.ReflectProperty(object, property).collectionType.elementType); | ||
const objectTable = depends.storeOf(object); | ||
const propertyTable = depends.storeOf(new reflect_1.ReflectProperty(object, property).collectionType.elementType); | ||
const joinTable = [objectTable, propertyTable].sort().join('_'); | ||
@@ -94,4 +94,4 @@ const query = 'INSERT INTO `' + joinTable + '` SET ' + objectTable + '_id = ?, ' + propertyTable + '_id = ?'; | ||
let sql; | ||
if (value instanceof exports.depends.QueryFunction) { | ||
[search[name], sql] = exports.depends.queryFunctionCall(value); | ||
if (value instanceof depends.QueryFunction) { | ||
[search[name], sql] = depends.queryFunctionCall(value); | ||
} | ||
@@ -101,3 +101,3 @@ else { | ||
} | ||
return '`' + exports.depends.columnOf(name) + '`' + sql; | ||
return '`' + depends.columnOf(name) + '`' + sql; | ||
}) | ||
@@ -110,3 +110,3 @@ .join(' AND '); | ||
propertiesToSql(object) { | ||
return Object.keys(object).map(name => '`' + exports.depends.columnOf(name) + '` = ?').join(', '); | ||
return Object.keys(object).map(name => '`' + depends.columnOf(name) + '` = ?').join(', '); | ||
} | ||
@@ -116,4 +116,4 @@ async read(type, id) { | ||
if (exports.DEBUG) | ||
console.log('SELECT * FROM `' + exports.depends.storeOf(type) + '` WHERE id = ?', [id]); | ||
const rows = await connection.query('SELECT * FROM `' + exports.depends.storeOf(type) + '` WHERE id = ?', [id]); | ||
console.log('SELECT * FROM `' + depends.storeOf(type) + '` WHERE id = ?', [id]); | ||
const rows = await connection.query('SELECT * FROM `' + depends.storeOf(type) + '` WHERE id = ?', [id]); | ||
return this.valuesFromDb(rows[0], type); | ||
@@ -123,6 +123,6 @@ } | ||
const connection = this.connection ?? await this.connect(); | ||
const objectTable = exports.depends.storeOf(object); | ||
const table = exports.depends.storeOf(type); | ||
const objectTable = depends.storeOf(object); | ||
const table = depends.storeOf(type); | ||
let query; | ||
if (exports.depends.componentOf(object, property)) { | ||
if (depends.componentOf(object, property)) { | ||
query = 'SELECT * FROM `' + table + '` WHERE ' + objectTable + '_id = ?'; | ||
@@ -141,6 +141,6 @@ } | ||
const connection = this.connection ?? await this.connect(); | ||
const objectTable = exports.depends.storeOf(object); | ||
const propertyTable = exports.depends.storeOf(type); | ||
const objectTable = depends.storeOf(object); | ||
const propertyTable = depends.storeOf(type); | ||
let query; | ||
if (exports.depends.componentOf(object, property)) { | ||
if (depends.componentOf(object, property)) { | ||
query = 'SELECT id FROM `' + propertyTable + '` WHERE ' + objectTable + '_id = ?'; | ||
@@ -162,4 +162,4 @@ } | ||
if (exports.DEBUG) | ||
console.log('SELECT * FROM `' + exports.depends.storeOf(type) + '` WHERE id IN (' + questionMarks + ')', ids); | ||
const rows = await connection.query('SELECT * FROM `' + exports.depends.storeOf(type) + '` WHERE id IN (' + questionMarks + ')', ids); | ||
console.log('SELECT * FROM `' + depends.storeOf(type) + '` WHERE id IN (' + questionMarks + ')', ids); | ||
const rows = await connection.query('SELECT * FROM `' + depends.storeOf(type) + '` WHERE id IN (' + questionMarks + ')', ids); | ||
return Promise.all(rows.map(row => this.valuesFromDb(row, type))); | ||
@@ -177,4 +177,4 @@ } | ||
if (exports.DEBUG) | ||
console.log('SELECT * FROM `' + exports.depends.storeOf(type) + '`' + sql, '[', values, ']'); | ||
const rows = await connection.query('SELECT * FROM `' + exports.depends.storeOf(type) + '`' + sql, Object.values(values)); | ||
console.log('SELECT * FROM `' + depends.storeOf(type) + '`' + sql, '[', values, ']'); | ||
const rows = await connection.query('SELECT * FROM `' + depends.storeOf(type) + '`' + sql, Object.values(values)); | ||
return Promise.all(rows.map(row => this.valuesFromDb(row, type))); | ||
@@ -186,3 +186,3 @@ } | ||
const sql = this.propertiesToSql(values); | ||
const query = 'UPDATE `' + exports.depends.storeOf(object) + '` SET ' + sql + ' WHERE id = ?'; | ||
const query = 'UPDATE `' + depends.storeOf(object) + '` SET ' + sql + ' WHERE id = ?'; | ||
if (exports.DEBUG) | ||
@@ -200,4 +200,4 @@ console.log(query, JSON.stringify(Object.values(values).concat([object.id]))); | ||
for (property in row) { | ||
const value = await exports.depends.applyReadTransformer(object, property, row); | ||
if (value === exports.depends.ignoreTransformedValue) | ||
const value = await depends.applyReadTransformer(object, property, row); | ||
if (value === depends.ignoreTransformedValue) | ||
continue; | ||
@@ -213,4 +213,4 @@ object[property] = value; | ||
for (const property of type ? Object.keys(object) : new reflect_1.ReflectClass(object).propertyNames) { | ||
const value = await exports.depends.applySaveTransformer(typeObject, property, values); | ||
if (value === exports.depends.ignoreTransformedValue) | ||
const value = await depends.applySaveTransformer(typeObject, property, values); | ||
if (value === depends.ignoreTransformedValue) | ||
continue; | ||
@@ -217,0 +217,0 @@ if ((0, class_type_1.isAnyFunction)(value)) { |
@@ -8,3 +8,3 @@ import { AnyObject } from '@itrocks/class-type'; | ||
export declare const DEBUG = false; | ||
export interface Dependencies<QF extends object = object> { | ||
interface Dependencies<QF extends object = object> { | ||
applyReadTransformer: <T extends object>(object: T, property: KeyOf<T>, data: AnyObject) => any; | ||
@@ -19,4 +19,3 @@ applySaveTransformer: <T extends object>(object: T, property: KeyOf<T>, data: AnyObject) => any; | ||
} | ||
export declare const depends: Dependencies; | ||
export declare function dependsOn<QF extends object = object>(dependencies: Partial<Dependencies<QF>>): void; | ||
export declare function mysqlDependsOn<QF extends object = object>(dependencies: Partial<Dependencies<QF>>): void; | ||
export default class Mysql extends DataSource { | ||
@@ -58,1 +57,2 @@ config: { | ||
} | ||
export {}; |
@@ -6,3 +6,3 @@ import { isAnyFunction } from '@itrocks/class-type'; | ||
export const DEBUG = false; | ||
export const depends = { | ||
const depends = { | ||
applyReadTransformer: value => value, | ||
@@ -18,3 +18,3 @@ applySaveTransformer: value => value, | ||
}; | ||
export function dependsOn(dependencies) { | ||
export function mysqlDependsOn(dependencies) { | ||
Object.assign(depends, dependencies); | ||
@@ -21,0 +21,0 @@ } |
@@ -61,3 +61,3 @@ { | ||
"types": "./esm/mysql.d.ts", | ||
"version": "0.0.4" | ||
"version": "0.0.5" | ||
} |
34286