@spinajs/orm-mysql 1.0.1 → 2.0.12

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
+ ```
package/lib/index.d.ts CHANGED
@@ -1,22 +1,13 @@
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
8
  ping(): Promise<boolean>;
9
9
  connect(): Promise<OrmDriver>;
10
10
  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[]>;
11
+ tableInfo(name: string, schema?: string): Promise<IColumnDescriptor[]>;
12
+ transaction(queryOrCallback?: QueryBuilder<any>[] | TransactionCallback): Promise<void>;
22
13
  }
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,174 @@ 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
+ 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
+ },
41
60
  });
42
- break;
43
- }
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
+ });
44
90
  });
45
91
  }
46
92
  async ping() {
47
- const result = await this.execute("SELECT 1", [], orm_1.QueryContext.Select);
48
- return result !== null || result !== undefined;
49
- }
50
- async connect() {
51
- const { PoolLimit, Host, User, Password, Database, Encoding, Options } = this.Options;
52
- if (this._connectionPool != null) {
53
- await this.disconnect();
93
+ try {
94
+ await this.execute('SELECT 1', [], orm_1.QueryContext.Select);
95
+ return true;
96
+ }
97
+ catch (_a) {
98
+ return false;
54
99
  }
55
- this._connectionPool = mysql.createPool(Object.assign({ connectionLimit: PoolLimit, host: Host, user: User, password: Password, database: Database, charset: Encoding }, Options));
56
- return this;
57
100
  }
58
- async disconnect() {
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() {
59
113
  return new Promise((resolve, reject) => {
60
- var _a;
61
- (_a = this._connectionPool) === null || _a === void 0 ? void 0 : _a.end((err) => {
114
+ this.Pool.end((err) => {
62
115
  if (err) {
63
116
  reject(err);
64
117
  }
65
118
  else {
66
- this._connectionPool = null;
67
119
  resolve(this);
68
120
  }
69
121
  });
70
122
  });
71
123
  }
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);
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;
91
129
  }
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
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;
122
133
  return {
123
- Type: r.DATA_TYPE.toLowerCase(),
124
- MaxLength: r.CHARACTER_MAXIMUM_LENGTH,
125
- Comment: r.COLUMN_COMMENT,
134
+ Type: r.DATA_TYPE,
135
+ MaxLength: -1,
136
+ Comment: '',
126
137
  DefaultValue: r.COLUMN_DEFAULT,
127
- NativeType: r.COLUMN_TYPE,
138
+ NativeType: r.DATA_TYPE,
128
139
  Unsigned: false,
129
- Nullable: r.IS_NULLABLE === "YES",
130
- PrimaryKey: r.COLUMN_KEY === 'PRI',
131
- AutoIncrement: r.EXTRA.includes('auto_increment'),
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',
132
146
  Name: r.COLUMN_NAME,
133
147
  Converter: null,
134
- Schema: _schema ? _schema : this.Options.Database,
135
- Unique: tblIndices.find((i) => i.Column_name === r.name && i.Non_unique === 0) !== undefined,
148
+ Schema: schema ? schema : this.Options.Database,
149
+ Unique: sUnique,
136
150
  };
137
151
  });
138
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
+ }
139
192
  };
140
- MysqlOrmDriver = __decorate([
141
- di_1.Injectable('orm-driver-mysql')
142
- ], MysqlOrmDriver);
143
- exports.MysqlOrmDriver = MysqlOrmDriver;
193
+ MySqlOrmDriver = __decorate([
194
+ (0, di_1.Injectable)('orm-driver-mysql')
195
+ ], MySqlOrmDriver);
196
+ exports.MySqlOrmDriver = MySqlOrmDriver;
144
197
  //# 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.12",
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.12",
51
+ "@spinajs/orm-sql": "^2.0.12",
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": "d7910d799995df6fa9eb8174d4a9b65c81db8352"
73
55
  }
File without changes
package/lib/compilers.js DELETED
@@ -1 +0,0 @@
1
- //# sourceMappingURL=compilers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compilers.js","sourceRoot":"","sources":["../src/compilers.ts"],"names":[],"mappings":""}
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":""}