@spinajs/orm-sqlite 1.0.20 → 1.2.30
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 +11 -0
- package/lib/compilers.d.ts +13 -2
- package/lib/compilers.js +88 -33
- package/lib/compilers.js.map +1 -1
- package/lib/converters.d.ts +5 -4
- package/lib/converters.js +17 -4
- package/lib/converters.js.map +1 -1
- package/lib/index.d.ts +5 -7
- package/lib/index.js +45 -27
- package/lib/index.js.map +1 -1
- package/lib/log-common/src/index.d.ts +180 -0
- package/lib/log-common/src/index.js +49 -0
- package/lib/log-common/src/index.js.map +1 -0
- package/lib/orm-sqlite/src/compilers.d.ts +32 -0
- package/lib/orm-sqlite/src/compilers.js +215 -0
- package/lib/orm-sqlite/src/compilers.js.map +1 -0
- package/lib/orm-sqlite/src/converters.d.ts +6 -0
- package/lib/orm-sqlite/src/converters.js +25 -0
- package/lib/orm-sqlite/src/converters.js.map +1 -0
- package/lib/orm-sqlite/src/index.d.ts +22 -0
- package/lib/orm-sqlite/src/index.js +221 -0
- package/lib/orm-sqlite/src/index.js.map +1 -0
- package/lib/orm-sqlite/src/statements.d.ts +6 -0
- package/lib/orm-sqlite/src/statements.js +31 -0
- package/lib/orm-sqlite/src/statements.js.map +1 -0
- package/lib/orm-sqlite/src/types.d.ts +13 -0
- package/lib/orm-sqlite/src/types.js +3 -0
- package/lib/orm-sqlite/src/types.js.map +1 -0
- package/lib/orm-sqlite.js +7 -0
- package/lib/statements.d.ts +4 -5
- package/lib/statements.js +8 -13
- package/lib/statements.js.map +1 -1
- package/package.json +24 -38
- package/lib/decorators.d.ts +0 -1
- package/lib/decorators.js +0 -32
- package/lib/decorators.js.map +0 -1
package/README.md
ADDED
package/lib/compilers.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { SqlColumnQueryCompiler, SqlTableQueryCompiler, SqlOnDuplicateQueryCompiler } from
|
|
2
|
-
import { ICompilerOutput, OrderByBuilder, OrderByQueryCompiler, OnDuplicateQueryBuilder } from
|
|
1
|
+
import { SqlColumnQueryCompiler, SqlTableQueryCompiler, SqlOnDuplicateQueryCompiler, SqlInsertQueryCompiler } from '@spinajs/orm-sql';
|
|
2
|
+
import { ICompilerOutput, OrderByBuilder, OrderByQueryCompiler, OnDuplicateQueryBuilder, InsertQueryBuilder } from '@spinajs/orm';
|
|
3
|
+
import { Container } from '@spinajs/di';
|
|
3
4
|
export declare class SqliteOrderByCompiler extends OrderByQueryCompiler {
|
|
4
5
|
protected _builder: OrderByBuilder;
|
|
5
6
|
constructor(builder: OrderByBuilder);
|
|
@@ -16,6 +17,16 @@ export declare class SqliteOnDuplicateQueryCompiler extends SqlOnDuplicateQueryC
|
|
|
16
17
|
export declare class SqliteTableQueryCompiler extends SqlTableQueryCompiler {
|
|
17
18
|
compile(): ICompilerOutput;
|
|
18
19
|
}
|
|
20
|
+
export declare class SqliteInsertQueryCompiler extends SqlInsertQueryCompiler {
|
|
21
|
+
protected _container: Container;
|
|
22
|
+
constructor(builder: InsertQueryBuilder);
|
|
23
|
+
compile(): {
|
|
24
|
+
bindings: any[];
|
|
25
|
+
expression: string;
|
|
26
|
+
};
|
|
27
|
+
protected into(): string;
|
|
28
|
+
}
|
|
19
29
|
export declare class SqliteColumnCompiler extends SqlColumnQueryCompiler {
|
|
20
30
|
compile(): ICompilerOutput;
|
|
31
|
+
protected _defaultCompiler(): string;
|
|
21
32
|
}
|
package/lib/compilers.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/* eslint-disable prettier/prettier */
|
|
2
3
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
4
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
5
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -9,6 +10,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
10
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
11
|
};
|
|
11
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.SqliteColumnCompiler = exports.SqliteInsertQueryCompiler = exports.SqliteTableQueryCompiler = exports.SqliteOnDuplicateQueryCompiler = exports.SqliteOrderByCompiler = void 0;
|
|
12
14
|
const orm_sql_1 = require("@spinajs/orm-sql");
|
|
13
15
|
const orm_1 = require("@spinajs/orm");
|
|
14
16
|
const di_1 = require("@spinajs/di");
|
|
@@ -26,7 +28,7 @@ let SqliteOrderByCompiler = class SqliteOrderByCompiler extends orm_1.OrderByQue
|
|
|
26
28
|
let stmt = '';
|
|
27
29
|
const bindings = [];
|
|
28
30
|
if (sort) {
|
|
29
|
-
stmt = ` ORDER BY
|
|
31
|
+
stmt = ` ORDER BY \`${sort.column}\` ${sort.order.toLowerCase() === 'asc' ? 'ASC' : 'DESC'}`;
|
|
30
32
|
}
|
|
31
33
|
return {
|
|
32
34
|
bindings,
|
|
@@ -35,7 +37,7 @@ let SqliteOrderByCompiler = class SqliteOrderByCompiler extends orm_1.OrderByQue
|
|
|
35
37
|
}
|
|
36
38
|
};
|
|
37
39
|
SqliteOrderByCompiler = __decorate([
|
|
38
|
-
di_1.NewInstance(),
|
|
40
|
+
(0, di_1.NewInstance)(),
|
|
39
41
|
__metadata("design:paramtypes", [orm_1.OrderByBuilder])
|
|
40
42
|
], SqliteOrderByCompiler);
|
|
41
43
|
exports.SqliteOrderByCompiler = SqliteOrderByCompiler;
|
|
@@ -54,8 +56,11 @@ let SqliteOnDuplicateQueryCompiler = class SqliteOnDuplicateQueryCompiler extend
|
|
|
54
56
|
});
|
|
55
57
|
const bindings = _.flatMap(this._builder.getColumnsToUpdate(), (c) => {
|
|
56
58
|
if (_.isString(c)) {
|
|
57
|
-
const cIndex = this._builder
|
|
58
|
-
|
|
59
|
+
const cIndex = this._builder
|
|
60
|
+
.getParent()
|
|
61
|
+
.getColumns()
|
|
62
|
+
.findIndex((col) => (_.isString(col.Column) ? col.Column === c : null));
|
|
63
|
+
return this._builder.getParent().Values[0][`${cIndex}`];
|
|
59
64
|
}
|
|
60
65
|
else {
|
|
61
66
|
return c.Bindings;
|
|
@@ -63,12 +68,12 @@ let SqliteOnDuplicateQueryCompiler = class SqliteOnDuplicateQueryCompiler extend
|
|
|
63
68
|
});
|
|
64
69
|
return {
|
|
65
70
|
bindings,
|
|
66
|
-
expression: `ON CONFLICT(${this._builder.getColumn().join(
|
|
71
|
+
expression: `ON CONFLICT(${this._builder.getColumn().join(',')}) DO UPDATE SET ${columns.join(',')}`,
|
|
67
72
|
};
|
|
68
73
|
}
|
|
69
74
|
};
|
|
70
75
|
SqliteOnDuplicateQueryCompiler = __decorate([
|
|
71
|
-
di_1.NewInstance(),
|
|
76
|
+
(0, di_1.NewInstance)(),
|
|
72
77
|
__metadata("design:paramtypes", [orm_1.OnDuplicateQueryBuilder])
|
|
73
78
|
], SqliteOnDuplicateQueryCompiler);
|
|
74
79
|
exports.SqliteOnDuplicateQueryCompiler = SqliteOnDuplicateQueryCompiler;
|
|
@@ -76,50 +81,85 @@ let SqliteTableQueryCompiler = class SqliteTableQueryCompiler extends orm_sql_1.
|
|
|
76
81
|
compile() {
|
|
77
82
|
const _table = this._table();
|
|
78
83
|
const _columns = this._columns();
|
|
84
|
+
const _foreignKeys = this._foreignKeys();
|
|
79
85
|
return {
|
|
80
86
|
bindings: [],
|
|
81
|
-
expression: `${_table} (${_columns})
|
|
87
|
+
expression: `${_table} (${_columns} ${_foreignKeys ? ',' + _foreignKeys : ''})`,
|
|
82
88
|
};
|
|
83
89
|
}
|
|
84
90
|
};
|
|
85
91
|
SqliteTableQueryCompiler = __decorate([
|
|
86
|
-
di_1.NewInstance(),
|
|
87
|
-
di_1.Inject(di_1.Container)
|
|
92
|
+
(0, di_1.NewInstance)(),
|
|
93
|
+
(0, di_1.Inject)(di_1.Container)
|
|
88
94
|
], SqliteTableQueryCompiler);
|
|
89
95
|
exports.SqliteTableQueryCompiler = SqliteTableQueryCompiler;
|
|
96
|
+
let SqliteInsertQueryCompiler = class SqliteInsertQueryCompiler extends orm_sql_1.SqlInsertQueryCompiler {
|
|
97
|
+
constructor(builder) {
|
|
98
|
+
super(builder);
|
|
99
|
+
}
|
|
100
|
+
compile() {
|
|
101
|
+
const into = this.into();
|
|
102
|
+
const columns = this.columns();
|
|
103
|
+
const values = this.values();
|
|
104
|
+
const onDuplicate = this.onDuplicate();
|
|
105
|
+
return {
|
|
106
|
+
bindings: values.bindings.concat(onDuplicate.bindings),
|
|
107
|
+
expression: `${into} ${columns} ${values.data} ${onDuplicate.expression}`.trim(),
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
into() {
|
|
111
|
+
return `INSERT${this._builder.Ignore ? ' OR IGNORE' : ''} INTO \`${this._builder.Table}\``;
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
__decorate([
|
|
115
|
+
(0, di_1.Autoinject)(),
|
|
116
|
+
__metadata("design:type", di_1.Container)
|
|
117
|
+
], SqliteInsertQueryCompiler.prototype, "_container", void 0);
|
|
118
|
+
SqliteInsertQueryCompiler = __decorate([
|
|
119
|
+
(0, di_1.NewInstance)(),
|
|
120
|
+
__metadata("design:paramtypes", [orm_1.InsertQueryBuilder])
|
|
121
|
+
], SqliteInsertQueryCompiler);
|
|
122
|
+
exports.SqliteInsertQueryCompiler = SqliteInsertQueryCompiler;
|
|
90
123
|
let SqliteColumnCompiler = class SqliteColumnCompiler extends orm_sql_1.SqlColumnQueryCompiler {
|
|
91
124
|
compile() {
|
|
92
125
|
const _stmt = [];
|
|
93
126
|
_stmt.push(`\`${this.builder.Name}\``);
|
|
94
127
|
switch (this.builder.Type) {
|
|
95
|
-
case
|
|
96
|
-
case
|
|
97
|
-
case
|
|
98
|
-
case
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
case
|
|
102
|
-
case
|
|
128
|
+
case 'binary':
|
|
129
|
+
case 'tinyblob':
|
|
130
|
+
case 'mediumblob':
|
|
131
|
+
case 'longblob':
|
|
132
|
+
_stmt.push('BLOB');
|
|
133
|
+
break;
|
|
134
|
+
case 'string':
|
|
135
|
+
case 'text':
|
|
136
|
+
case 'mediumtext':
|
|
137
|
+
case 'tinytext':
|
|
138
|
+
case 'longtext':
|
|
139
|
+
case 'date':
|
|
140
|
+
case 'dateTime':
|
|
141
|
+
case 'time':
|
|
142
|
+
case 'set':
|
|
103
143
|
_stmt.push(`TEXT`);
|
|
104
144
|
break;
|
|
105
|
-
case
|
|
106
|
-
case
|
|
145
|
+
case 'float':
|
|
146
|
+
case 'double':
|
|
107
147
|
_stmt.push(`REAL`);
|
|
108
148
|
break;
|
|
109
|
-
case
|
|
149
|
+
case 'decimal':
|
|
110
150
|
_stmt.push(`DECIMAL`);
|
|
111
151
|
break;
|
|
112
|
-
case
|
|
113
|
-
case
|
|
114
|
-
case
|
|
115
|
-
case
|
|
116
|
-
case
|
|
117
|
-
case
|
|
118
|
-
_stmt.push(
|
|
152
|
+
case 'int':
|
|
153
|
+
case 'tinyint':
|
|
154
|
+
case 'smallint':
|
|
155
|
+
case 'mediumint':
|
|
156
|
+
case 'bigint':
|
|
157
|
+
case 'boolean':
|
|
158
|
+
_stmt.push('INTEGER');
|
|
119
159
|
break;
|
|
120
160
|
}
|
|
121
161
|
if (this.builder.Unsigned) {
|
|
122
|
-
_stmt.push(
|
|
162
|
+
_stmt.push('UNSIGNED');
|
|
123
163
|
}
|
|
124
164
|
if (this.builder.Charset) {
|
|
125
165
|
_stmt.push(`CHARACTER SET '${this.builder.Charset}'`);
|
|
@@ -128,7 +168,7 @@ let SqliteColumnCompiler = class SqliteColumnCompiler extends orm_sql_1.SqlColum
|
|
|
128
168
|
_stmt.push(`COLLATE '${this.builder.Collation}'`);
|
|
129
169
|
}
|
|
130
170
|
if (this.builder.NotNull) {
|
|
131
|
-
_stmt.push(
|
|
171
|
+
_stmt.push('NOT NULL');
|
|
132
172
|
}
|
|
133
173
|
if (this.builder.Default) {
|
|
134
174
|
_stmt.push(this._defaultCompiler());
|
|
@@ -139,21 +179,36 @@ let SqliteColumnCompiler = class SqliteColumnCompiler extends orm_sql_1.SqlColum
|
|
|
139
179
|
if (this.builder.PrimaryKey) {
|
|
140
180
|
_stmt.push(`PRIMARY KEY`);
|
|
141
181
|
}
|
|
142
|
-
;
|
|
143
182
|
if (this.builder.AutoIncrement) {
|
|
144
183
|
_stmt.push(`AUTOINCREMENT`);
|
|
145
184
|
}
|
|
146
185
|
if (this.builder.Unique) {
|
|
147
|
-
_stmt.push(
|
|
186
|
+
_stmt.push('UNIQUE');
|
|
148
187
|
}
|
|
149
188
|
return {
|
|
150
189
|
bindings: [],
|
|
151
|
-
expression: _stmt.filter(x => !_.isEmpty(x)).join(
|
|
190
|
+
expression: _stmt.filter((x) => !_.isEmpty(x)).join(' '),
|
|
152
191
|
};
|
|
153
192
|
}
|
|
193
|
+
_defaultCompiler() {
|
|
194
|
+
let _stmt = '';
|
|
195
|
+
if (_.isNil(this.builder.Default) || (_.isString(this.builder.Default) && _.isEmpty(this.builder.Default.trim()))) {
|
|
196
|
+
return _stmt;
|
|
197
|
+
}
|
|
198
|
+
if (_.isString(this.builder.Default)) {
|
|
199
|
+
_stmt = `DEFAULT '${this.builder.Default.trim()}'`;
|
|
200
|
+
}
|
|
201
|
+
else if (_.isNumber(this.builder.Default)) {
|
|
202
|
+
_stmt = `DEFAULT ${this.builder.Default}`;
|
|
203
|
+
}
|
|
204
|
+
else if (this.builder.Default instanceof orm_1.RawQuery) {
|
|
205
|
+
_stmt = `DEFAULT ${(this.builder.Default).Query}`;
|
|
206
|
+
}
|
|
207
|
+
return _stmt;
|
|
208
|
+
}
|
|
154
209
|
};
|
|
155
210
|
SqliteColumnCompiler = __decorate([
|
|
156
|
-
di_1.NewInstance()
|
|
211
|
+
(0, di_1.NewInstance)()
|
|
157
212
|
], SqliteColumnCompiler);
|
|
158
213
|
exports.SqliteColumnCompiler = SqliteColumnCompiler;
|
|
159
214
|
//# sourceMappingURL=compilers.js.map
|
package/lib/compilers.js.map
CHANGED
|
@@ -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":"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"}
|
package/lib/converters.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { DatetimeValueConverter } from '@spinajs/orm';
|
|
2
|
+
import { DateTime } from 'luxon';
|
|
3
|
+
export declare class SqliteDatetimeValueConverter extends DatetimeValueConverter {
|
|
4
|
+
toDB(value: Date | DateTime): string;
|
|
5
|
+
fromDB(value: string): DateTime;
|
|
5
6
|
}
|
package/lib/converters.js
CHANGED
|
@@ -1,12 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
3
|
+
exports.SqliteDatetimeValueConverter = void 0;
|
|
4
|
+
/* eslint-disable prettier/prettier */
|
|
5
|
+
const orm_1 = require("@spinajs/orm");
|
|
6
|
+
const luxon_1 = require("luxon");
|
|
7
|
+
class SqliteDatetimeValueConverter extends orm_1.DatetimeValueConverter {
|
|
4
8
|
toDB(value) {
|
|
5
|
-
|
|
9
|
+
if (value instanceof Date) {
|
|
10
|
+
return value.toISOString();
|
|
11
|
+
}
|
|
12
|
+
if (value instanceof luxon_1.DateTime) {
|
|
13
|
+
value.toISO();
|
|
14
|
+
}
|
|
15
|
+
return null;
|
|
6
16
|
}
|
|
7
17
|
fromDB(value) {
|
|
8
|
-
|
|
18
|
+
if (!value) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
return luxon_1.DateTime.fromISO(value);
|
|
9
22
|
}
|
|
10
23
|
}
|
|
11
|
-
exports.
|
|
24
|
+
exports.SqliteDatetimeValueConverter = SqliteDatetimeValueConverter;
|
|
12
25
|
//# sourceMappingURL=converters.js.map
|
package/lib/converters.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"converters.js","sourceRoot":"","sources":["../src/converters.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"converters.js","sourceRoot":"","sources":["../src/converters.ts"],"names":[],"mappings":";;;AAAA,sCAAsC;AACtC,sCAAsD;AACtD,iCAAiC;AAEjC,MAAa,4BAA6B,SAAQ,4BAAsB;IAC/D,IAAI,CAAC,KAAsB;QAChC,IAAI,KAAK,YAAY,IAAI,EAAE;YACzB,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;SAC5B;QAED,IAAI,KAAK,YAAY,gBAAQ,EAAE;YAC7B,KAAK,CAAC,KAAK,EAAE,CAAC;SACf;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,KAAa;QACzB,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,IAAI,CAAC;SACb;QAED,OAAO,gBAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;CACF;AApBD,oEAoBC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { SqlDriver } from "@spinajs/orm-sql";
|
|
7
|
-
import { Container } from "@spinajs/di";
|
|
1
|
+
export * from './compilers';
|
|
2
|
+
import { IColumnDescriptor, QueryContext, OrmDriver, QueryBuilder, TransactionCallback } from '@spinajs/orm';
|
|
3
|
+
import { Database } from 'sqlite3';
|
|
4
|
+
import { SqlDriver } from '@spinajs/orm-sql';
|
|
5
|
+
import { Container } from '@spinajs/di';
|
|
8
6
|
export declare class SqliteOrmDriver extends SqlDriver {
|
|
9
7
|
protected Db: Database;
|
|
10
8
|
execute(stmt: string, params: any[], queryContext: QueryContext): Promise<any>;
|
package/lib/index.js
CHANGED
|
@@ -1,31 +1,40 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
2
9
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
10
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
11
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
12
|
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
13
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
14
|
};
|
|
8
|
-
|
|
9
|
-
for (var p in m) if (!
|
|
10
|
-
}
|
|
15
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
16
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
17
|
+
};
|
|
11
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
19
|
+
exports.SqliteOrmDriver = void 0;
|
|
20
|
+
/* eslint-disable prettier/prettier */
|
|
21
|
+
__exportStar(require("./compilers"), exports);
|
|
15
22
|
const orm_1 = require("@spinajs/orm");
|
|
16
23
|
const sqlite3_1 = require("sqlite3");
|
|
17
24
|
const orm_sql_1 = require("@spinajs/orm-sql");
|
|
18
25
|
const di_1 = require("@spinajs/di");
|
|
19
26
|
const compilers_1 = require("./compilers");
|
|
20
27
|
const statements_1 = require("./statements");
|
|
28
|
+
const converters_1 = require("./converters");
|
|
29
|
+
const exceptions_1 = require("@spinajs/exceptions");
|
|
21
30
|
let SqliteOrmDriver = class SqliteOrmDriver extends orm_sql_1.SqlDriver {
|
|
22
31
|
execute(stmt, params, queryContext) {
|
|
23
|
-
const queryParams =
|
|
32
|
+
const queryParams = params !== null && params !== void 0 ? params : [];
|
|
24
33
|
if (!this.Db) {
|
|
25
|
-
throw new Error(
|
|
34
|
+
throw new Error('cannot execute sqlite statement, no db connection avaible');
|
|
26
35
|
}
|
|
27
36
|
super.execute(stmt, queryParams, queryContext);
|
|
28
|
-
return new Promise((
|
|
37
|
+
return new Promise((resolve, reject) => {
|
|
29
38
|
switch (queryContext) {
|
|
30
39
|
case orm_1.QueryContext.Update:
|
|
31
40
|
case orm_1.QueryContext.Delete:
|
|
@@ -33,28 +42,33 @@ let SqliteOrmDriver = class SqliteOrmDriver extends orm_sql_1.SqlDriver {
|
|
|
33
42
|
case orm_1.QueryContext.Transaction:
|
|
34
43
|
this.Db.run(stmt, ...queryParams, (err, data) => {
|
|
35
44
|
if (err) {
|
|
36
|
-
|
|
45
|
+
reject(err);
|
|
37
46
|
return;
|
|
38
47
|
}
|
|
39
|
-
|
|
48
|
+
resolve(data);
|
|
40
49
|
});
|
|
41
50
|
break;
|
|
42
51
|
case orm_1.QueryContext.Select:
|
|
43
52
|
this.Db.all(stmt, ...queryParams, (err, rows) => {
|
|
44
53
|
if (err) {
|
|
45
|
-
|
|
54
|
+
reject(err);
|
|
46
55
|
return;
|
|
47
56
|
}
|
|
48
|
-
|
|
57
|
+
resolve(rows);
|
|
49
58
|
});
|
|
50
59
|
break;
|
|
51
60
|
case orm_1.QueryContext.Insert:
|
|
52
61
|
this.Db.run(stmt, ...queryParams, function (err) {
|
|
53
62
|
if (err) {
|
|
54
|
-
|
|
63
|
+
if (err.code === 'SQLITE_CONSTRAINT') {
|
|
64
|
+
reject(new exceptions_1.ResourceDuplicated(err));
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
reject(err);
|
|
68
|
+
}
|
|
55
69
|
return;
|
|
56
70
|
}
|
|
57
|
-
|
|
71
|
+
resolve(this.lastID);
|
|
58
72
|
});
|
|
59
73
|
break;
|
|
60
74
|
}
|
|
@@ -88,18 +102,19 @@ let SqliteOrmDriver = class SqliteOrmDriver extends orm_sql_1.SqlDriver {
|
|
|
88
102
|
}
|
|
89
103
|
async resolve(container) {
|
|
90
104
|
super.resolve(container);
|
|
91
|
-
this.Container = this.Container.child();
|
|
92
105
|
this.Container.register(compilers_1.SqliteColumnCompiler).as(orm_1.ColumnQueryCompiler);
|
|
93
106
|
this.Container.register(compilers_1.SqliteTableQueryCompiler).as(orm_1.TableQueryCompiler);
|
|
94
107
|
this.Container.register(compilers_1.SqliteOrderByCompiler).as(orm_1.OrderByQueryCompiler);
|
|
95
108
|
this.Container.register(statements_1.SqlLiteJoinStatement).as(orm_1.JoinStatement);
|
|
96
109
|
this.Container.register(compilers_1.SqliteOnDuplicateQueryCompiler).as(orm_1.OnDuplicateQueryCompiler);
|
|
110
|
+
this.Container.register(compilers_1.SqliteInsertQueryCompiler).as(orm_1.InsertQueryCompiler);
|
|
111
|
+
this.Container.register(converters_1.SqliteDatetimeValueConverter).as(orm_1.DatetimeValueConverter);
|
|
97
112
|
}
|
|
98
113
|
async transaction(qrOrCallback) {
|
|
99
114
|
if (!qrOrCallback) {
|
|
100
115
|
return;
|
|
101
116
|
}
|
|
102
|
-
await this.execute(
|
|
117
|
+
await this.execute('BEGIN TRANSACTION', null, orm_1.QueryContext.Transaction);
|
|
103
118
|
try {
|
|
104
119
|
if (Array.isArray(qrOrCallback)) {
|
|
105
120
|
for (const q of qrOrCallback) {
|
|
@@ -109,10 +124,10 @@ let SqliteOrmDriver = class SqliteOrmDriver extends orm_sql_1.SqlDriver {
|
|
|
109
124
|
else {
|
|
110
125
|
await qrOrCallback(this);
|
|
111
126
|
}
|
|
112
|
-
await this.execute(
|
|
127
|
+
await this.execute('COMMIT', null, orm_1.QueryContext.Transaction);
|
|
113
128
|
}
|
|
114
129
|
catch (ex) {
|
|
115
|
-
await this.execute(
|
|
130
|
+
await this.execute('ROLLBACK', null, orm_1.QueryContext.Transaction);
|
|
116
131
|
throw ex;
|
|
117
132
|
}
|
|
118
133
|
}
|
|
@@ -125,14 +140,14 @@ let SqliteOrmDriver = class SqliteOrmDriver extends orm_sql_1.SqlDriver {
|
|
|
125
140
|
* @returns {[] | null}
|
|
126
141
|
*/
|
|
127
142
|
async tableInfo(name, _schema) {
|
|
128
|
-
const tblInfo = await this.execute(`PRAGMA table_info(${name});`, null, orm_1.QueryContext.Select);
|
|
129
|
-
const indexInfo = await this.execute(
|
|
143
|
+
const tblInfo = (await this.execute(`PRAGMA table_info(${name});`, null, orm_1.QueryContext.Select));
|
|
144
|
+
const indexInfo = (await this.execute(`select type, name, tbl_name, sql FROM sqlite_master WHERE type='index' AND tbl_name='${name}'`, null, orm_1.QueryContext.Select));
|
|
130
145
|
const re = /\((.*?)\)/;
|
|
131
146
|
const indices = indexInfo.map((i) => {
|
|
132
147
|
var _a;
|
|
133
148
|
return {
|
|
134
149
|
table: i.tbl_name,
|
|
135
|
-
column_name: (_a = i.sql) === null || _a === void 0 ? void 0 : _a.match(re)[0]
|
|
150
|
+
column_name: (_a = i.sql) === null || _a === void 0 ? void 0 : _a.match(re)[0],
|
|
136
151
|
};
|
|
137
152
|
});
|
|
138
153
|
if (!Array.isArray(tblInfo) || tblInfo.length === 0) {
|
|
@@ -142,23 +157,26 @@ let SqliteOrmDriver = class SqliteOrmDriver extends orm_sql_1.SqlDriver {
|
|
|
142
157
|
return {
|
|
143
158
|
Type: r.type,
|
|
144
159
|
MaxLength: -1,
|
|
145
|
-
Comment:
|
|
160
|
+
Comment: '',
|
|
146
161
|
DefaultValue: r.dflt_value,
|
|
147
162
|
NativeType: r.type,
|
|
148
163
|
Unsigned: false,
|
|
149
|
-
Nullable: r.notnull ===
|
|
164
|
+
Nullable: r.notnull === 0,
|
|
150
165
|
PrimaryKey: r.pk === 1,
|
|
151
|
-
|
|
166
|
+
Uuid: false,
|
|
167
|
+
Ignore: false,
|
|
168
|
+
// simply assumpt that integer pkeys are autoincement / auto fill by default
|
|
169
|
+
AutoIncrement: r.pk === 1 && r.type === 'INTEGER',
|
|
152
170
|
Name: r.name,
|
|
153
171
|
Converter: null,
|
|
154
172
|
Schema: _schema ? _schema : this.Options.Database,
|
|
155
|
-
Unique: indices.find(i => i.column_name
|
|
173
|
+
Unique: indices.find((i) => i.column_name && i.column_name.includes(r.name) && i.table === name) !== undefined,
|
|
156
174
|
};
|
|
157
175
|
});
|
|
158
176
|
}
|
|
159
177
|
};
|
|
160
178
|
SqliteOrmDriver = __decorate([
|
|
161
|
-
di_1.Injectable(
|
|
179
|
+
(0, di_1.Injectable)('orm-driver-sqlite')
|
|
162
180
|
], SqliteOrmDriver);
|
|
163
181
|
exports.SqliteOrmDriver = SqliteOrmDriver;
|
|
164
182
|
//# 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":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|