@spinajs/orm-mysql 1.0.1 → 2.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,11 @@
1
+ # `orm-mysql`
2
+
3
+ > TODO: description
4
+
5
+ ## Usage
6
+
7
+ ```
8
+ const ormMysql = require('orm-mysql');
9
+
10
+ // TODO: DEMONSTRATE API
11
+ ```
@@ -0,0 +1,6 @@
1
+ import { TableExistsCompiler, TableExistsQueryBuilder, ICompilerOutput } from '@spinajs/orm';
2
+ export declare class MySqlTableExistsCompiler implements TableExistsCompiler {
3
+ protected builder: TableExistsQueryBuilder;
4
+ constructor(builder: TableExistsQueryBuilder);
5
+ compile(): ICompilerOutput;
6
+ }
package/lib/compilers.js CHANGED
@@ -1 +1,38 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.MySqlTableExistsCompiler = void 0;
13
+ const di_1 = require("@spinajs/di");
14
+ const orm_1 = require("@spinajs/orm");
15
+ let MySqlTableExistsCompiler = class MySqlTableExistsCompiler {
16
+ constructor(builder) {
17
+ this.builder = builder;
18
+ if (builder === null) {
19
+ throw new Error('table exists query builder cannot be null');
20
+ }
21
+ }
22
+ compile() {
23
+ return {
24
+ bindings: [this.builder.Database, this.builder.Table],
25
+ expression: `SELECT *
26
+ FROM information_schema.tables
27
+ WHERE table_schema = ?
28
+ AND table_name = ?
29
+ LIMIT 1;`,
30
+ };
31
+ }
32
+ };
33
+ MySqlTableExistsCompiler = __decorate([
34
+ (0, di_1.NewInstance)(),
35
+ __metadata("design:paramtypes", [orm_1.TableExistsQueryBuilder])
36
+ ], MySqlTableExistsCompiler);
37
+ exports.MySqlTableExistsCompiler = MySqlTableExistsCompiler;
1
38
  //# sourceMappingURL=compilers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compilers.js","sourceRoot":"","sources":["../src/compilers.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"compilers.js","sourceRoot":"","sources":["../src/compilers.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oCAA0C;AAC1C,sCAA6F;AAG7F,IAAa,wBAAwB,GAArC,MAAa,wBAAwB;IACnC,YAAsB,OAAgC;QAAhC,YAAO,GAAP,OAAO,CAAyB;QACpD,IAAI,OAAO,KAAK,IAAI,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;SAC9D;IACH,CAAC;IAEM,OAAO;QACZ,OAAO;YACL,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YACrD,UAAU,EAAE;;;;eAIH;SACV,CAAC;IACJ,CAAC;CACF,CAAA;AAjBY,wBAAwB;IADpC,IAAA,gBAAW,GAAE;qCAEmB,6BAAuB;GAD3C,wBAAwB,CAiBpC;AAjBY,4DAAwB"}
package/lib/index.d.ts CHANGED
@@ -1,22 +1,14 @@
1
- import { IColumnDescriptor, QueryContext, OrmDriver, QueryBuilder, TransactionCallback } from '@spinajs/orm';
2
- import * as mysql from "mysql";
1
+ import { QueryContext, OrmDriver, IColumnDescriptor, QueryBuilder, TransactionCallback } from '@spinajs/orm';
3
2
  import { SqlDriver } from '@spinajs/orm-sql';
4
- import { Container } from '@spinajs/di';
5
- export declare class MysqlOrmDriver extends SqlDriver {
6
- protected _connectionPool: mysql.Pool;
7
- execute(stmt: string, params: any[], queryContext: QueryContext): Promise<any>;
3
+ import * as mysql from 'mysql';
4
+ export declare class MySqlOrmDriver extends SqlDriver {
5
+ protected Pool: mysql.Pool;
6
+ protected _executionId: number;
7
+ execute(stmt: string, params: any[], context: QueryContext): Promise<any>;
8
+ resolve(): void;
8
9
  ping(): Promise<boolean>;
9
10
  connect(): Promise<OrmDriver>;
10
11
  disconnect(): Promise<OrmDriver>;
11
- resolve(container: Container): Promise<void>;
12
- transaction(qrOrCallback: QueryBuilder[] | TransactionCallback): Promise<void>;
13
- /**
14
- *
15
- * Retrieves information about specific DB table if exists. If table not exists returns null
16
- *
17
- * @param name table name to retrieve info
18
- * @param _schema - optional schema name
19
- * @returns {[] | null}
20
- */
21
- tableInfo(tableName: string, _schema?: string): Promise<IColumnDescriptor[]>;
12
+ tableInfo(name: string, schema?: string): Promise<IColumnDescriptor[]>;
13
+ transaction(queryOrCallback?: QueryBuilder<any>[] | TransactionCallback): Promise<void>;
22
14
  }
package/lib/index.js CHANGED
@@ -1,4 +1,20 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
2
18
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
19
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
20
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -8,137 +24,179 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
24
  var __importStar = (this && this.__importStar) || function (mod) {
9
25
  if (mod && mod.__esModule) return mod;
10
26
  var result = {};
11
- if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
12
- result["default"] = mod;
27
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
+ __setModuleDefault(result, mod);
13
29
  return result;
14
30
  };
15
31
  Object.defineProperty(exports, "__esModule", { value: true });
32
+ exports.MySqlOrmDriver = void 0;
33
+ /* eslint-disable promise/no-promise-in-callback */
34
+ const di_1 = require("@spinajs/di");
35
+ const log_1 = require("@spinajs/log");
16
36
  const orm_1 = require("@spinajs/orm");
17
- const mysql = __importStar(require("mysql"));
18
37
  const orm_sql_1 = require("@spinajs/orm-sql");
19
- const di_1 = require("@spinajs/di");
20
- let MysqlOrmDriver = class MysqlOrmDriver extends orm_sql_1.SqlDriver {
21
- execute(stmt, params, queryContext) {
22
- const queryParams = params !== null && params !== void 0 ? params : [];
23
- if (!this._connectionPool) {
24
- throw new Error('cannot execute mysql statement, connection pool not created');
25
- }
26
- super.execute(stmt, queryParams, queryContext);
27
- return new Promise((res, rej) => {
28
- switch (queryContext) {
29
- case orm_1.QueryContext.Update:
30
- case orm_1.QueryContext.Delete:
31
- case orm_1.QueryContext.Schema:
32
- case orm_1.QueryContext.Transaction:
33
- case orm_1.QueryContext.Insert:
34
- case orm_1.QueryContext.Select:
35
- this._connectionPool.query(stmt, queryParams, (err, result, _fields) => {
36
- if (err) {
37
- rej(err);
38
- return;
39
- }
40
- res(result);
38
+ const mysql = __importStar(require("mysql"));
39
+ const compilers_1 = require("./compilers");
40
+ let MySqlOrmDriver = class MySqlOrmDriver extends orm_sql_1.SqlDriver {
41
+ constructor() {
42
+ super(...arguments);
43
+ this._executionId = 0;
44
+ }
45
+ execute(stmt, params, context) {
46
+ const tName = `query-${this._executionId++}`;
47
+ this.Log.timeStart(`query-${tName}`);
48
+ return new Promise((resolve, reject) => {
49
+ this.Pool.query(stmt, params, function (err, results) {
50
+ const tDiff = this.Log.timeEnd(`query-${tName}`);
51
+ if (err) {
52
+ void this.Log.write({
53
+ Level: log_1.LogLevel.Error,
54
+ Variables: {
55
+ error: err,
56
+ message: `Failed: ${stmt}, bindings: ${params ? params.join(',') : 'none'}`,
57
+ logger: this.Log.Name,
58
+ level: 'Error',
59
+ duration: tDiff,
60
+ },
41
61
  });
42
- break;
43
- }
62
+ reject(err);
63
+ }
64
+ else {
65
+ switch (context) {
66
+ case orm_1.QueryContext.Update:
67
+ case orm_1.QueryContext.Delete:
68
+ resolve({
69
+ RowsAffected: results.changedRows,
70
+ });
71
+ break;
72
+ case orm_1.QueryContext.Insert:
73
+ resolve({ LastInsertId: results.insertId, RowsAffected: results.changedRows });
74
+ break;
75
+ default:
76
+ resolve(results);
77
+ break;
78
+ }
79
+ void this.Log.write({
80
+ Level: log_1.LogLevel.Trace,
81
+ Variables: {
82
+ error: null,
83
+ message: `Executed: ${stmt}, bindings: ${params ? params.join(',') : 'none'}`,
84
+ logger: this.Log.Name,
85
+ level: 'TRACE',
86
+ duration: tDiff,
87
+ },
88
+ });
89
+ }
90
+ });
44
91
  });
45
92
  }
46
- async ping() {
47
- const result = await this.execute("SELECT 1", [], orm_1.QueryContext.Select);
48
- return result !== null || result !== undefined;
93
+ resolve() {
94
+ super.resolve();
95
+ this.Container.register(compilers_1.MySqlTableExistsCompiler).as(orm_1.TableExistsCompiler);
49
96
  }
50
- async connect() {
51
- const { PoolLimit, Host, User, Password, Database, Encoding, Options } = this.Options;
52
- if (this._connectionPool != null) {
53
- await this.disconnect();
97
+ async ping() {
98
+ try {
99
+ await this.execute('SELECT 1', [], orm_1.QueryContext.Select);
100
+ return true;
101
+ }
102
+ catch (_a) {
103
+ return false;
54
104
  }
55
- this._connectionPool = mysql.createPool(Object.assign({ connectionLimit: PoolLimit, host: Host, user: User, password: Password, database: Database, charset: Encoding }, Options));
56
- return this;
57
105
  }
58
- async disconnect() {
106
+ connect() {
107
+ this.Pool = mysql.createPool({
108
+ host: this.Options.Host,
109
+ user: this.Options.User,
110
+ database: this.Options.Database,
111
+ waitForConnections: true,
112
+ connectionLimit: this.Options.PoolLimit,
113
+ queueLimit: 0,
114
+ });
115
+ return Promise.resolve(this);
116
+ }
117
+ disconnect() {
59
118
  return new Promise((resolve, reject) => {
60
- var _a;
61
- (_a = this._connectionPool) === null || _a === void 0 ? void 0 : _a.end((err) => {
119
+ this.Pool.end((err) => {
62
120
  if (err) {
63
121
  reject(err);
64
122
  }
65
123
  else {
66
- this._connectionPool = null;
67
124
  resolve(this);
68
125
  }
69
126
  });
70
127
  });
71
128
  }
72
- async resolve(container) {
73
- super.resolve(container);
74
- this.Container = this.Container.child();
75
- }
76
- async transaction(qrOrCallback) {
77
- if (!qrOrCallback) {
78
- return;
79
- }
80
- await this.execute('START TRANSACTION', null, orm_1.QueryContext.Transaction);
81
- try {
82
- if (Array.isArray(qrOrCallback)) {
83
- for (const q of qrOrCallback) {
84
- await q;
85
- }
86
- }
87
- else {
88
- await qrOrCallback(this);
89
- }
90
- await this.execute('COMMIT', null, orm_1.QueryContext.Transaction);
129
+ async tableInfo(name, schema) {
130
+ const tblInfo = (await this.execute(`SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=? ${schema ? 'AND TABLE_SCHEMA=?' : ''} `, schema ? [name, schema] : [name], orm_1.QueryContext.Select));
131
+ const indexInfo = (await this.execute(`SHOW INDEXES FROM ${name}`, [], orm_1.QueryContext.Select));
132
+ if (!tblInfo || !Array.isArray(tblInfo) || tblInfo.length === 0) {
133
+ return null;
91
134
  }
92
- catch (ex) {
93
- await this.execute('ROLLBACK', null, orm_1.QueryContext.Transaction);
94
- throw ex;
95
- }
96
- }
97
- /**
98
- *
99
- * Retrieves information about specific DB table if exists. If table not exists returns null
100
- *
101
- * @param name table name to retrieve info
102
- * @param _schema - optional schema name
103
- * @returns {[] | null}
104
- */
105
- async tableInfo(tableName, _schema) {
106
- const tableSchema = _schema ? _schema : this.Options.Database;
107
- const select = [
108
- 'COLUMN_NAME',
109
- 'TABLE_NAME',
110
- 'DATA_TYPE',
111
- 'CHARACTER_MAXIMUM_LENGTH',
112
- 'COLUMN_COMMENT',
113
- 'COLUMN_DEFAULT',
114
- 'COLUMN_TYPE',
115
- 'IS_NULLABLE',
116
- 'EXTRA',
117
- 'COLUMN_KEY'
118
- ];
119
- const tblInfo = (await this.execute(`information_schema.columns SELECT ${select.join(",")} WHERE table_schema = '${tableSchema}' AND TABLE_NAME = '${tableName}'`, null, orm_1.QueryContext.Select));
120
- const tblIndices = (await this.execute(`SHOW INDEX FROM ${tableName}`, null, orm_1.QueryContext.Select));
121
135
  return tblInfo.map((r) => {
136
+ const isPrimary = indexInfo.find((c) => c.Key_name === 'PRIMARY' && c.Column_name === r.COLUMN_NAME) !== undefined;
137
+ const sUnique = indexInfo.find((c) => c.Non_unique === 0 && c.Column_name === r.COLUMN_NAME) !== undefined;
122
138
  return {
123
- Type: r.DATA_TYPE.toLowerCase(),
124
- MaxLength: r.CHARACTER_MAXIMUM_LENGTH,
125
- Comment: r.COLUMN_COMMENT,
139
+ Type: r.DATA_TYPE,
140
+ MaxLength: -1,
141
+ Comment: '',
126
142
  DefaultValue: r.COLUMN_DEFAULT,
127
- NativeType: r.COLUMN_TYPE,
143
+ NativeType: r.DATA_TYPE,
128
144
  Unsigned: false,
129
- Nullable: r.IS_NULLABLE === "YES",
130
- PrimaryKey: r.COLUMN_KEY === 'PRI',
131
- AutoIncrement: r.EXTRA.includes('auto_increment'),
145
+ Nullable: r.IS_NULLABLE === 'YES',
146
+ PrimaryKey: isPrimary,
147
+ Uuid: false,
148
+ Ignore: false,
149
+ // simply assumpt that integer pkeys are autoincement / auto fill by default
150
+ AutoIncrement: isPrimary && r.DATA_TYPE === 'int',
132
151
  Name: r.COLUMN_NAME,
133
152
  Converter: null,
134
- Schema: _schema ? _schema : this.Options.Database,
135
- Unique: tblIndices.find((i) => i.Column_name === r.name && i.Non_unique === 0) !== undefined,
153
+ Schema: schema ? schema : this.Options.Database,
154
+ Unique: sUnique,
136
155
  };
137
156
  });
138
157
  }
158
+ // todo fix transactions
159
+ transaction(queryOrCallback) {
160
+ return new Promise((resolve, reject) => {
161
+ this.Pool.getConnection((err, connection) => {
162
+ if (err) {
163
+ reject(err);
164
+ }
165
+ else {
166
+ connection.beginTransaction((err) => {
167
+ if (err) {
168
+ reject(err);
169
+ }
170
+ else {
171
+ if (Array.isArray(queryOrCallback)) {
172
+ Promise.all(queryOrCallback)
173
+ .then(() => {
174
+ resolve();
175
+ return;
176
+ })
177
+ .catch((err) => {
178
+ reject(err);
179
+ });
180
+ }
181
+ else {
182
+ queryOrCallback(this)
183
+ .then(() => {
184
+ resolve();
185
+ return;
186
+ })
187
+ .catch((err) => {
188
+ reject(err);
189
+ });
190
+ }
191
+ }
192
+ });
193
+ }
194
+ });
195
+ });
196
+ }
139
197
  };
140
- MysqlOrmDriver = __decorate([
141
- di_1.Injectable('orm-driver-mysql')
142
- ], MysqlOrmDriver);
143
- exports.MysqlOrmDriver = MysqlOrmDriver;
198
+ MySqlOrmDriver = __decorate([
199
+ (0, di_1.Injectable)('orm-driver-mysql')
200
+ ], MySqlOrmDriver);
201
+ exports.MySqlOrmDriver = MySqlOrmDriver;
144
202
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { QueryContext, OrmDriver, IColumnDescriptor, QueryBuilder, TransactionCallback } from '@spinajs/orm';
2
+ import { SqlDriver } from '@spinajs/orm-sql';
3
+ import * as mysql from 'mysql';
4
+ export declare class MySqlOrmDriver extends SqlDriver {
5
+ protected Pool: mysql.Pool;
6
+ protected _executionId: number;
7
+ execute(stmt: string, params: any[], context: QueryContext): Promise<any>;
8
+ ping(): Promise<boolean>;
9
+ connect(): Promise<OrmDriver>;
10
+ disconnect(): Promise<OrmDriver>;
11
+ tableInfo(name: string, schema?: string): Promise<IColumnDescriptor[]>;
12
+ transaction(queryOrCallback?: QueryBuilder<any>[] | TransactionCallback): Promise<void>;
13
+ }
@@ -0,0 +1,197 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || function (mod) {
25
+ if (mod && mod.__esModule) return mod;
26
+ var result = {};
27
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
+ __setModuleDefault(result, mod);
29
+ return result;
30
+ };
31
+ Object.defineProperty(exports, "__esModule", { value: true });
32
+ exports.MySqlOrmDriver = void 0;
33
+ /* eslint-disable promise/no-promise-in-callback */
34
+ const di_1 = require("@spinajs/di");
35
+ const log_1 = require("@spinajs/log");
36
+ const orm_1 = require("@spinajs/orm");
37
+ const orm_sql_1 = require("@spinajs/orm-sql");
38
+ const mysql = __importStar(require("mysql"));
39
+ let MySqlOrmDriver = class MySqlOrmDriver extends orm_sql_1.SqlDriver {
40
+ constructor() {
41
+ super(...arguments);
42
+ this._executionId = 0;
43
+ }
44
+ execute(stmt, params, context) {
45
+ const tName = `query-${this._executionId++}`;
46
+ this.Log.timeStart(`query-${tName}`);
47
+ return new Promise((resolve, reject) => {
48
+ this.Pool.query(stmt, params, function (err, results) {
49
+ const tDiff = this.Log.timeEnd(`query-${tName}`);
50
+ if (err) {
51
+ void this.Log.write({
52
+ Level: log_1.LogLevel.Error,
53
+ Variables: {
54
+ error: err,
55
+ message: `Failed: ${stmt}, bindings: ${params ? params.join(',') : 'none'}`,
56
+ logger: this.Log.Name,
57
+ level: 'Error',
58
+ duration: tDiff,
59
+ },
60
+ });
61
+ reject(err);
62
+ }
63
+ else {
64
+ switch (context) {
65
+ case orm_1.QueryContext.Update:
66
+ case orm_1.QueryContext.Delete:
67
+ resolve({
68
+ RowsAffected: results.changedRows,
69
+ });
70
+ break;
71
+ case orm_1.QueryContext.Insert:
72
+ resolve({ LastInsertId: results.insertId, RowsAffected: results.changedRows });
73
+ break;
74
+ default:
75
+ resolve(results);
76
+ break;
77
+ }
78
+ void this.Log.write({
79
+ Level: log_1.LogLevel.Trace,
80
+ Variables: {
81
+ error: null,
82
+ message: `Executed: ${stmt}, bindings: ${params ? params.join(',') : 'none'}`,
83
+ logger: this.Log.Name,
84
+ level: 'TRACE',
85
+ duration: tDiff,
86
+ },
87
+ });
88
+ }
89
+ });
90
+ });
91
+ }
92
+ async ping() {
93
+ try {
94
+ await this.execute('SELECT 1', [], orm_1.QueryContext.Select);
95
+ return true;
96
+ }
97
+ catch (_a) {
98
+ return false;
99
+ }
100
+ }
101
+ connect() {
102
+ this.Pool = mysql.createPool({
103
+ host: this.Options.Host,
104
+ user: this.Options.User,
105
+ database: this.Options.Database,
106
+ waitForConnections: true,
107
+ connectionLimit: this.Options.PoolLimit,
108
+ queueLimit: 0,
109
+ });
110
+ return Promise.resolve(this);
111
+ }
112
+ disconnect() {
113
+ return new Promise((resolve, reject) => {
114
+ this.Pool.end((err) => {
115
+ if (err) {
116
+ reject(err);
117
+ }
118
+ else {
119
+ resolve(this);
120
+ }
121
+ });
122
+ });
123
+ }
124
+ async tableInfo(name, schema) {
125
+ const tblInfo = (await this.execute(`SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=? ${schema ? 'AND TABLE_SCHEMA=?' : ''} `, schema ? [name, schema] : [name], orm_1.QueryContext.Select));
126
+ const indexInfo = (await this.execute(`SHOW INDEXES FROM ${name}`, [], orm_1.QueryContext.Select));
127
+ if (!tblInfo || !Array.isArray(tblInfo) || tblInfo.length === 0) {
128
+ return null;
129
+ }
130
+ return tblInfo.map((r) => {
131
+ const isPrimary = indexInfo.find((c) => c.Key_name === 'PRIMARY' && c.Column_name === r.COLUMN_NAME) !== undefined;
132
+ const sUnique = indexInfo.find((c) => c.Non_unique === 0 && c.Column_name === r.COLUMN_NAME) !== undefined;
133
+ return {
134
+ Type: r.DATA_TYPE,
135
+ MaxLength: -1,
136
+ Comment: '',
137
+ DefaultValue: r.COLUMN_DEFAULT,
138
+ NativeType: r.DATA_TYPE,
139
+ Unsigned: false,
140
+ Nullable: r.IS_NULLABLE === 'YES',
141
+ PrimaryKey: isPrimary,
142
+ Uuid: false,
143
+ Ignore: false,
144
+ // simply assumpt that integer pkeys are autoincement / auto fill by default
145
+ AutoIncrement: isPrimary && r.DATA_TYPE === 'int',
146
+ Name: r.COLUMN_NAME,
147
+ Converter: null,
148
+ Schema: schema ? schema : this.Options.Database,
149
+ Unique: sUnique,
150
+ };
151
+ });
152
+ }
153
+ // todo fix transactions
154
+ transaction(queryOrCallback) {
155
+ return new Promise((resolve, reject) => {
156
+ this.Pool.getConnection((err, connection) => {
157
+ if (err) {
158
+ reject(err);
159
+ }
160
+ else {
161
+ connection.beginTransaction((err) => {
162
+ if (err) {
163
+ reject(err);
164
+ }
165
+ else {
166
+ if (Array.isArray(queryOrCallback)) {
167
+ Promise.all(queryOrCallback)
168
+ .then(() => {
169
+ resolve();
170
+ return;
171
+ })
172
+ .catch((err) => {
173
+ reject(err);
174
+ });
175
+ }
176
+ else {
177
+ queryOrCallback(this)
178
+ .then(() => {
179
+ resolve();
180
+ return;
181
+ })
182
+ .catch((err) => {
183
+ reject(err);
184
+ });
185
+ }
186
+ }
187
+ });
188
+ }
189
+ });
190
+ });
191
+ }
192
+ };
193
+ MySqlOrmDriver = __decorate([
194
+ (0, di_1.Injectable)('orm-driver-mysql')
195
+ ], MySqlOrmDriver);
196
+ exports.MySqlOrmDriver = MySqlOrmDriver;
197
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export interface ITableColumnInfo {
2
+ TABLE_NAME: string;
3
+ TABLE_SCHEMA: string;
4
+ COLUMN_NAME: string;
5
+ COLUMN_DEFAULT: string;
6
+ IS_NULLABLE: string;
7
+ DATA_TYPE: string;
8
+ CHARACTER_MAXIMUM_LENGTH: number;
9
+ COLUMN_TYPE: string;
10
+ COLUMN_KEY: string;
11
+ EXTRA: string;
12
+ COLUMN_COMMENT: string;
13
+ }
14
+ export interface IIndexInfo {
15
+ Key_name: string;
16
+ Column_name: string;
17
+ Non_unique: number;
18
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ module.exports = ormMysql;
4
+
5
+ function ormMysql() {
6
+ // TODO
7
+ }
@@ -0,0 +1,19 @@
1
+ export interface IIndexInfoList {
2
+ seq: number;
3
+ name: string;
4
+ unique: number;
5
+ origin: string;
6
+ partial: number;
7
+ }
8
+ export interface IIndexInfo {
9
+ seqno: number;
10
+ cid: number;
11
+ name: string;
12
+ }
13
+ export interface ITableInfo {
14
+ dflt_value: unknown;
15
+ type: string;
16
+ notnull: number;
17
+ pk: number;
18
+ name: string;
19
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../orm-sqlite/src/types.ts"],"names":[],"mappings":""}
package/lib/types.d.ts ADDED
@@ -0,0 +1,18 @@
1
+ export interface ITableColumnInfo {
2
+ TABLE_NAME: string;
3
+ TABLE_SCHEMA: string;
4
+ COLUMN_NAME: string;
5
+ COLUMN_DEFAULT: string;
6
+ IS_NULLABLE: string;
7
+ DATA_TYPE: string;
8
+ CHARACTER_MAXIMUM_LENGTH: number;
9
+ COLUMN_TYPE: string;
10
+ COLUMN_KEY: string;
11
+ EXTRA: string;
12
+ COLUMN_COMMENT: string;
13
+ }
14
+ export interface IIndexInfo {
15
+ Key_name: string;
16
+ Column_name: string;
17
+ Non_unique: number;
18
+ }
package/lib/types.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,17 +1,19 @@
1
1
  {
2
2
  "name": "@spinajs/orm-mysql",
3
- "version": "1.0.1",
4
- "description": "SpinaJS orm mysql support. Contains mysql driver.",
3
+ "version": "2.0.16",
4
+ "description": "orm mysql integration",
5
5
  "main": "lib/index.js",
6
6
  "private": false,
7
7
  "scripts": {
8
+ "build": "npm run clean && npm run compile",
9
+ "compile": "tsc -p tsconfig.build.json",
10
+ "clean": "",
8
11
  "test": "ts-mocha -p tsconfig.json test/**/*.test.ts",
9
12
  "coverage": "nyc npm run test",
10
13
  "build-docs": "rimraf docs && typedoc --options typedoc.json src/",
11
- "build": "tsc",
12
14
  "prepare": "npm run build",
13
- "format": "prettier --write \"src/**/*.ts\" \"src/**/*.js\"",
14
- "lint": "tslint -p tsconfig.json",
15
+ "format": "prettier --write \"src/**/*.ts\"",
16
+ "lint": "eslint -c .eslintrc.js --ext .ts src --fix",
15
17
  "prepublishOnly": "npm test && npm run lint",
16
18
  "preversion": "npm run lint",
17
19
  "version": "npm run format && git add -A src",
@@ -20,9 +22,10 @@
20
22
  "files": [
21
23
  "lib/**/*"
22
24
  ],
25
+ "types": "lib",
23
26
  "repository": {
24
27
  "type": "git",
25
- "url": "git+https://github.com/spinajs/orm-mysql.git"
28
+ "url": "git+https://github.com/spinajs/main.git"
26
29
  },
27
30
  "keywords": [
28
31
  "di",
@@ -30,44 +33,23 @@
30
33
  "spinajs",
31
34
  "di"
32
35
  ],
33
- "author": "SpinaJS <spinajs@coderush.pl> (https://github.com/spinajs/core)",
36
+ "author": "SpinaJS <spinajs@coderush.pl> (https://github.com/spinajs/main)",
34
37
  "license": "MIT",
35
38
  "bugs": {
36
- "url": "https://github.com/spinajs/orm-mysql/issues"
39
+ "url": "https://github.com/spinajs/main/issues"
40
+ },
41
+ "homepage": "https://github.com/spinajs/main#readme",
42
+ "devDependencies": {
43
+ "@types/mysql": "^2.15.21",
44
+ "chai": "^4.3.6",
45
+ "chai-as-promised": "^7.1.1"
37
46
  },
38
- "homepage": "https://github.com/spinajs/orm-mysql#readme",
39
47
  "dependencies": {
40
- "@spinajs/configuration": "^1.0.5",
41
- "@spinajs/di": "^1.0.7",
42
- "@spinajs/exceptions": "^1.0.0",
43
- "@spinajs/log": "^1.0.2",
44
- "@spinajs/orm": "^1.0.31",
45
- "@spinajs/orm-sql": "^1.0.15",
46
- "lodash": "^4.17.15",
48
+ "@spinajs/configuration": "^2.0.12",
49
+ "@spinajs/di": "^2.0.12",
50
+ "@spinajs/orm": "^2.0.14",
51
+ "@spinajs/orm-sql": "^2.0.14",
47
52
  "mysql": "^2.18.1"
48
53
  },
49
- "devDependencies": {
50
- "@types/bunyan": "^1.8.6",
51
- "@types/chai": "^4.1.7",
52
- "@types/chai-as-promised": "^7.1.0",
53
- "@types/lodash": "^4.14.136",
54
- "@types/mysql": "^2.15.9",
55
- "@types/sinon": "^7.5.1",
56
- "@types/sqlite3": "^3.1.5",
57
- "chai": "^4.2.0",
58
- "chai-as-promised": "^7.1.1",
59
- "mocha": "^6.1.4",
60
- "nyc": "^14.1.1",
61
- "prettier": "^1.18.2",
62
- "sinon": "^8.1.1",
63
- "ts-mocha": "^6.0.0",
64
- "ts-node": "^8.3.0",
65
- "tslint": "^5.20.1",
66
- "tslint-circular-dependencies": "^0.1.0",
67
- "tslint-config-prettier": "^1.18.0",
68
- "tslint-config-standard": "^8.0.1",
69
- "tslint-no-unused-expression-chai": "^0.1.4",
70
- "typedoc": "^0.14.2",
71
- "typescript": "^3.7.3"
72
- }
54
+ "gitHead": "6c9da7c791409c20e391b7a39c428f1df76324e3"
73
55
  }
File without changes
package/lib/converters.js DELETED
@@ -1 +0,0 @@
1
- //# sourceMappingURL=converters.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"converters.js","sourceRoot":"","sources":["../src/converters.ts"],"names":[],"mappings":""}
File without changes
package/lib/decorators.js DELETED
@@ -1 +0,0 @@
1
- //# sourceMappingURL=decorators.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":""}
File without changes
package/lib/statements.js DELETED
@@ -1 +0,0 @@
1
- //# sourceMappingURL=statements.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"statements.js","sourceRoot":"","sources":["../src/statements.ts"],"names":[],"mappings":""}