@simonbackx/simple-database 1.34.0 → 1.36.0
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/dist/cjs/index.d.ts +10 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +13 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/{src → cjs/src}/classes/Column.d.ts +3 -2
- package/dist/cjs/src/classes/Column.d.ts.map +1 -0
- package/dist/{src → cjs/src}/classes/Column.js +21 -8
- package/dist/cjs/src/classes/Column.js.map +1 -0
- package/dist/cjs/src/classes/ColumnType.d.ts +2 -0
- package/dist/cjs/src/classes/ColumnType.d.ts.map +1 -0
- package/dist/cjs/src/classes/ColumnType.js +3 -0
- package/dist/cjs/src/classes/ColumnType.js.map +1 -0
- package/dist/{src → cjs/src}/classes/Database.d.ts +2 -1
- package/dist/cjs/src/classes/Database.d.ts.map +1 -0
- package/dist/{src → cjs/src}/classes/Database.js +19 -20
- package/dist/cjs/src/classes/Database.js.map +1 -0
- package/dist/cjs/src/classes/DatabaseStoredValue.d.ts +2 -0
- package/dist/cjs/src/classes/DatabaseStoredValue.d.ts.map +1 -0
- package/dist/cjs/src/classes/DatabaseStoredValue.js +3 -0
- package/dist/cjs/src/classes/DatabaseStoredValue.js.map +1 -0
- package/dist/{src → cjs/src}/classes/Factory.d.ts +1 -0
- package/dist/cjs/src/classes/Factory.d.ts.map +1 -0
- package/dist/{src → cjs/src}/classes/Factory.js +8 -7
- package/dist/cjs/src/classes/Factory.js.map +1 -0
- package/dist/{src → cjs/src}/classes/ManyToManyRelation.d.ts +4 -3
- package/dist/cjs/src/classes/ManyToManyRelation.d.ts.map +1 -0
- package/dist/{src → cjs/src}/classes/ManyToManyRelation.js +29 -18
- package/dist/cjs/src/classes/ManyToManyRelation.js.map +1 -0
- package/dist/{src → cjs/src}/classes/ManyToOneRelation.d.ts +2 -1
- package/dist/cjs/src/classes/ManyToOneRelation.d.ts.map +1 -0
- package/dist/{src → cjs/src}/classes/ManyToOneRelation.js +11 -2
- package/dist/cjs/src/classes/ManyToOneRelation.js.map +1 -0
- package/dist/{src → cjs/src}/classes/Migration.d.ts +2 -0
- package/dist/cjs/src/classes/Migration.d.ts.map +1 -0
- package/dist/{src → cjs/src}/classes/Migration.js +64 -17
- package/dist/cjs/src/classes/Migration.js.map +1 -0
- package/dist/{src → cjs/src}/classes/Model.d.ts +17 -6
- package/dist/cjs/src/classes/Model.d.ts.map +1 -0
- package/dist/{src → cjs/src}/classes/Model.js +83 -33
- package/dist/cjs/src/classes/Model.js.map +1 -0
- package/dist/{src → cjs/src}/classes/OneToManyRelation.d.ts +2 -1
- package/dist/cjs/src/classes/OneToManyRelation.d.ts.map +1 -0
- package/dist/{src → cjs/src}/classes/OneToManyRelation.js +17 -3
- package/dist/cjs/src/classes/OneToManyRelation.js.map +1 -0
- package/dist/{src → cjs/src}/classes/data/boys.d.ts +1 -0
- package/dist/cjs/src/classes/data/boys.d.ts.map +1 -0
- package/dist/cjs/src/classes/data/boys.js.map +1 -0
- package/dist/cjs/src/classes/data/family-names.d.ts +3 -0
- package/dist/cjs/src/classes/data/family-names.d.ts.map +1 -0
- package/dist/cjs/src/classes/data/family-names.js.map +1 -0
- package/dist/{src → cjs/src}/classes/data/girls.d.ts +1 -0
- package/dist/cjs/src/classes/data/girls.d.ts.map +1 -0
- package/dist/cjs/src/classes/data/girls.js.map +1 -0
- package/dist/cjs/src/classes/data/streets.d.ts +3 -0
- package/dist/cjs/src/classes/data/streets.d.ts.map +1 -0
- package/dist/cjs/src/classes/data/streets.js.map +1 -0
- package/dist/{src → cjs/src}/decorators/Column.d.ts +4 -3
- package/dist/cjs/src/decorators/Column.d.ts.map +1 -0
- package/dist/{src → cjs/src}/decorators/Column.js +3 -4
- package/dist/cjs/src/decorators/Column.js.map +1 -0
- package/dist/{src → cjs/src}/models/Migration.d.ts +2 -1
- package/dist/cjs/src/models/Migration.d.ts.map +1 -0
- package/dist/{src → cjs/src}/models/Migration.js +14 -15
- package/dist/cjs/src/models/Migration.js.map +1 -0
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -0
- package/dist/esm/index.d.ts +10 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +10 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/src/classes/Column.d.ts +30 -0
- package/dist/esm/src/classes/Column.d.ts.map +1 -0
- package/dist/esm/src/classes/Column.js +179 -0
- package/dist/esm/src/classes/Column.js.map +1 -0
- package/dist/esm/src/classes/ColumnType.d.ts +2 -0
- package/dist/esm/src/classes/ColumnType.d.ts.map +1 -0
- package/dist/esm/src/classes/ColumnType.js +2 -0
- package/dist/esm/src/classes/ColumnType.js.map +1 -0
- package/dist/esm/src/classes/Database.d.ts +59 -0
- package/dist/esm/src/classes/Database.d.ts.map +1 -0
- package/dist/esm/src/classes/Database.js +171 -0
- package/dist/esm/src/classes/Database.js.map +1 -0
- package/dist/esm/src/classes/DatabaseStoredValue.d.ts +2 -0
- package/dist/esm/src/classes/DatabaseStoredValue.d.ts.map +1 -0
- package/dist/esm/src/classes/DatabaseStoredValue.js +2 -0
- package/dist/esm/src/classes/DatabaseStoredValue.js.map +1 -0
- package/dist/esm/src/classes/Factory.d.ts +14 -0
- package/dist/esm/src/classes/Factory.d.ts.map +1 -0
- package/dist/esm/src/classes/Factory.js +51 -0
- package/dist/esm/src/classes/Factory.js.map +1 -0
- package/dist/esm/src/classes/ManyToManyRelation.d.ts +79 -0
- package/dist/esm/src/classes/ManyToManyRelation.d.ts.map +1 -0
- package/dist/esm/src/classes/ManyToManyRelation.js +254 -0
- package/dist/esm/src/classes/ManyToManyRelation.js.map +1 -0
- package/dist/esm/src/classes/ManyToOneRelation.d.ts +22 -0
- package/dist/esm/src/classes/ManyToOneRelation.d.ts.map +1 -0
- package/dist/esm/src/classes/ManyToOneRelation.js +47 -0
- package/dist/esm/src/classes/ManyToOneRelation.js.map +1 -0
- package/dist/esm/src/classes/Migration.d.ts +14 -0
- package/dist/esm/src/classes/Migration.d.ts.map +1 -0
- package/dist/esm/src/classes/Migration.js +168 -0
- package/dist/esm/src/classes/Migration.js.map +1 -0
- package/dist/esm/src/classes/Model.d.ts +159 -0
- package/dist/esm/src/classes/Model.d.ts.map +1 -0
- package/dist/esm/src/classes/Model.js +635 -0
- package/dist/esm/src/classes/Model.js.map +1 -0
- package/dist/esm/src/classes/OneToManyRelation.d.ts +38 -0
- package/dist/esm/src/classes/OneToManyRelation.d.ts.map +1 -0
- package/dist/esm/src/classes/OneToManyRelation.js +75 -0
- package/dist/esm/src/classes/OneToManyRelation.js.map +1 -0
- package/dist/{src/classes/data/family-names.d.ts → esm/src/classes/data/boys.d.ts} +1 -0
- package/dist/esm/src/classes/data/boys.d.ts.map +1 -0
- package/dist/esm/src/classes/data/boys.js +1003 -0
- package/dist/{src → esm/src}/classes/data/boys.js.map +1 -1
- package/dist/esm/src/classes/data/family-names.d.ts +3 -0
- package/dist/esm/src/classes/data/family-names.d.ts.map +1 -0
- package/dist/esm/src/classes/data/family-names.js +1003 -0
- package/dist/{src → esm/src}/classes/data/family-names.js.map +1 -1
- package/dist/{src/classes/data/streets.d.ts → esm/src/classes/data/girls.d.ts} +1 -0
- package/dist/esm/src/classes/data/girls.d.ts.map +1 -0
- package/dist/esm/src/classes/data/girls.js +1002 -0
- package/dist/{src → esm/src}/classes/data/girls.js.map +1 -1
- package/dist/esm/src/classes/data/streets.d.ts +3 -0
- package/dist/esm/src/classes/data/streets.d.ts.map +1 -0
- package/dist/esm/src/classes/data/streets.js +294 -0
- package/dist/{src → esm/src}/classes/data/streets.js.map +1 -1
- package/dist/esm/src/decorators/Column.d.ts +18 -0
- package/dist/esm/src/decorators/Column.d.ts.map +1 -0
- package/dist/esm/src/decorators/Column.js +36 -0
- package/dist/esm/src/decorators/Column.js.map +1 -0
- package/dist/esm/src/models/Migration.d.ts +11 -0
- package/dist/esm/src/models/Migration.d.ts.map +1 -0
- package/dist/esm/src/models/Migration.js +48 -0
- package/dist/esm/src/models/Migration.js.map +1 -0
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
- package/package.json +52 -36
- package/dist/index.d.ts +0 -9
- package/dist/index.js +0 -13
- package/dist/index.js.map +0 -1
- package/dist/migrations.d.ts +0 -1
- package/dist/migrations.js +0 -18
- package/dist/migrations.js.map +0 -1
- package/dist/src/classes/Column.js.map +0 -1
- package/dist/src/classes/Database.js.map +0 -1
- package/dist/src/classes/Factory.js.map +0 -1
- package/dist/src/classes/ManyToManyRelation.js.map +0 -1
- package/dist/src/classes/ManyToOneRelation.js.map +0 -1
- package/dist/src/classes/Migration.js.map +0 -1
- package/dist/src/classes/Model.js.map +0 -1
- package/dist/src/classes/Model.test.d.ts +0 -1
- package/dist/src/classes/Model.test.js +0 -629
- package/dist/src/classes/Model.test.js.map +0 -1
- package/dist/src/classes/OneToManyRelation.js.map +0 -1
- package/dist/src/decorators/Column.js.map +0 -1
- package/dist/src/models/Migration.js.map +0 -1
- package/dist/tests/jest.global.setup.d.ts +0 -3
- package/dist/tests/jest.global.setup.js +0 -12
- package/dist/tests/jest.global.setup.js.map +0 -1
- package/dist/tests/jest.setup.d.ts +0 -1
- package/dist/tests/jest.setup.js +0 -8
- package/dist/tests/jest.setup.js.map +0 -1
- /package/dist/{src → cjs/src}/classes/data/boys.js +0 -0
- /package/dist/{src → cjs/src}/classes/data/family-names.js +0 -0
- /package/dist/{src → cjs/src}/classes/data/girls.js +0 -0
- /package/dist/{src → cjs/src}/classes/data/streets.js +0 -0
- /package/{dist/src/migrations → migrations}/000000000-setup-migrations.sql +0 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './src/classes/Database.js';
|
|
2
|
+
export * from './src/classes/Factory.js';
|
|
3
|
+
export * from './src/classes/ManyToManyRelation.js';
|
|
4
|
+
export * from './src/classes/ManyToOneRelation.js';
|
|
5
|
+
export * from './src/classes/OneToManyRelation.js';
|
|
6
|
+
export * from './src/classes/Migration.js';
|
|
7
|
+
export * from './src/classes/Model.js';
|
|
8
|
+
export * from './src/decorators/Column.js';
|
|
9
|
+
export * from './src/classes/Column.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./src/classes/Database.js"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./src/classes/Factory.js"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./src/classes/ManyToManyRelation.js"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./src/classes/ManyToOneRelation.js"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./src/classes/OneToManyRelation.js"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./src/classes/Migration.js"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./src/classes/Model.js"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./src/decorators/Column.js"), exports);
|
|
12
|
+
tslib_1.__exportStar(require("./src/classes/Column.js"), exports);
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":";;;AAAA,oEAA0C;AAC1C,mEAAyC;AACzC,8EAAoD;AACpD,6EAAmD;AACnD,6EAAmD;AACnD,qEAA2C;AAC3C,iEAAuC;AACvC,qEAA2C;AAC3C,kEAAwC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"commonjs"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Decoder } from '@simonbackx/simple-encoding';
|
|
2
|
-
import { ColumnType } from '
|
|
3
|
-
|
|
2
|
+
import { type ColumnType } from './ColumnType.js';
|
|
3
|
+
import { type DatabaseStoredValue } from './DatabaseStoredValue.js';
|
|
4
4
|
export declare class Column {
|
|
5
5
|
type: ColumnType;
|
|
6
6
|
name: string;
|
|
@@ -27,3 +27,4 @@ export declare class Column {
|
|
|
27
27
|
from(data: DatabaseStoredValue): unknown;
|
|
28
28
|
to(data: unknown): DatabaseStoredValue;
|
|
29
29
|
}
|
|
30
|
+
//# sourceMappingURL=Column.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Column.d.ts","sourceRoot":"","sources":["../../../../src/classes/Column.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA2D,MAAM,6BAA6B,CAAC;AAE/G,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,qBAAa,MAAM;IACf,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,UAAS;IACjB,OAAO,UAAS;IAEhB;;OAEG;IACH,UAAU,UAAS;IACnB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAClC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAGjD,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC;IAElC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAK;IAE/B;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;gBAIhC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM;IAK1C;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,mBAAmB;IAIhD,SAAS,CAAC,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO;IAWtE,IAAI,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO;IAgGxC,EAAE,CAAC,IAAI,EAAE,OAAO,GAAG,mBAAmB;CAoEzC"}
|
|
@@ -3,6 +3,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Column = void 0;
|
|
4
4
|
const simple_encoding_1 = require("@simonbackx/simple-encoding");
|
|
5
5
|
class Column {
|
|
6
|
+
type;
|
|
7
|
+
name;
|
|
8
|
+
nullable = false;
|
|
9
|
+
primary = false;
|
|
10
|
+
/**
|
|
11
|
+
* Do not save the model if this is the only field that has changed
|
|
12
|
+
*/
|
|
13
|
+
skipUpdate = false;
|
|
14
|
+
decoder;
|
|
15
|
+
beforeSave;
|
|
16
|
+
// Allow handling of new fields etc
|
|
17
|
+
beforeLoad;
|
|
18
|
+
static jsonVersion = 0;
|
|
6
19
|
/**
|
|
7
20
|
* Set the version used for JSON encoding in simple-encoding
|
|
8
21
|
*/
|
|
@@ -10,12 +23,6 @@ class Column {
|
|
|
10
23
|
Column.jsonVersion = version;
|
|
11
24
|
}
|
|
12
25
|
constructor(type, name) {
|
|
13
|
-
this.nullable = false;
|
|
14
|
-
this.primary = false;
|
|
15
|
-
/**
|
|
16
|
-
* Do not save the model if this is the only field that has changed
|
|
17
|
-
*/
|
|
18
|
-
this.skipUpdate = false;
|
|
19
26
|
this.type = type;
|
|
20
27
|
this.name = name;
|
|
21
28
|
}
|
|
@@ -87,6 +94,13 @@ class Column {
|
|
|
87
94
|
parsed = {};
|
|
88
95
|
}
|
|
89
96
|
if (this.decoder) {
|
|
97
|
+
if (this.decoder.decodeField) {
|
|
98
|
+
if (typeof parsed === 'object' && parsed !== null && 'value' in parsed && typeof parsed.version === 'number') {
|
|
99
|
+
return this.decoder.decodeField(parsed.value, { version: parsed.version, medium: simple_encoding_1.EncodeMedium.Database }, this.name);
|
|
100
|
+
}
|
|
101
|
+
// Fallback decoding without version (since we don't know the saved version)
|
|
102
|
+
return this.decoder.decodeField(parsed, { version: 0, medium: simple_encoding_1.EncodeMedium.Database }, this.name);
|
|
103
|
+
}
|
|
90
104
|
if (typeof parsed === 'object' && parsed !== null && 'version' in parsed && 'value' in parsed && typeof parsed.version === 'number') {
|
|
91
105
|
return this.decoder.decode(new simple_encoding_1.ObjectData(parsed.value, { version: parsed.version, medium: simple_encoding_1.EncodeMedium.Database }, this.name));
|
|
92
106
|
}
|
|
@@ -153,7 +167,7 @@ class Column {
|
|
|
153
167
|
const version = Column.jsonVersion;
|
|
154
168
|
return JSON.stringify({
|
|
155
169
|
// Warning: keys should be sorted or they will get marked as changed every time
|
|
156
|
-
value: (0, simple_encoding_1.encodeObject)(data, { version }),
|
|
170
|
+
value: (0, simple_encoding_1.encodeObject)(data, { version, medium: simple_encoding_1.EncodeMedium.Database }),
|
|
157
171
|
version: version,
|
|
158
172
|
});
|
|
159
173
|
}
|
|
@@ -166,5 +180,4 @@ class Column {
|
|
|
166
180
|
}
|
|
167
181
|
}
|
|
168
182
|
exports.Column = Column;
|
|
169
|
-
Column.jsonVersion = 0;
|
|
170
183
|
//# sourceMappingURL=Column.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Column.js","sourceRoot":"","sources":["../../../../src/classes/Column.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ColumnType.d.ts","sourceRoot":"","sources":["../../../../src/classes/ColumnType.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ColumnType.js","sourceRoot":"","sources":["../../../../src/classes/ColumnType.ts"],"names":[],"mappings":""}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import mysql from 'mysql2/promise';
|
|
2
|
-
import { DatabaseStoredValue } from './
|
|
2
|
+
import { type DatabaseStoredValue } from './DatabaseStoredValue.js';
|
|
3
3
|
export type SQLResultRow = Record<string, DatabaseStoredValue>;
|
|
4
4
|
export type SQLResultNamespacedRow = Record<string, SQLResultRow>;
|
|
5
5
|
type SelectOptions = {
|
|
@@ -56,3 +56,4 @@ export declare class DatabaseInstance {
|
|
|
56
56
|
}
|
|
57
57
|
export declare const Database: DatabaseInstance;
|
|
58
58
|
export {};
|
|
59
|
+
//# sourceMappingURL=Database.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Database.d.ts","sourceRoot":"","sources":["../../../../src/classes/Database.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,23 +6,23 @@ const fs_1 = tslib_1.__importDefault(require("fs"));
|
|
|
6
6
|
const promise_1 = tslib_1.__importDefault(require("mysql2/promise"));
|
|
7
7
|
/// Database is a wrapper arround mysql, because we want to use promises + types
|
|
8
8
|
class DatabaseInstance {
|
|
9
|
+
pool;
|
|
10
|
+
debug = false;
|
|
9
11
|
constructor(options = {}) {
|
|
10
|
-
this.debug = false;
|
|
11
12
|
this.createPool(options);
|
|
12
13
|
}
|
|
13
14
|
createPool(options = {}) {
|
|
14
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
|
15
15
|
const settings = {
|
|
16
|
-
host:
|
|
17
|
-
user:
|
|
18
|
-
password:
|
|
19
|
-
port: options.port ? options.port : parseInt(
|
|
16
|
+
host: options.host ?? process.env.DB_HOST ?? 'localhost',
|
|
17
|
+
user: options.user ?? process.env.DB_USER ?? 'root',
|
|
18
|
+
password: options.password ?? process.env.DB_PASS ?? 'root',
|
|
19
|
+
port: options.port ? options.port : parseInt(process.env.DB_PORT ?? '3306'),
|
|
20
20
|
database: options.database === undefined ? process.env.DB_DATABASE : options.database,
|
|
21
|
-
connectionLimit: options.connectionLimit ? options.connectionLimit : parseInt(
|
|
22
|
-
multipleStatements:
|
|
23
|
-
charset:
|
|
24
|
-
useSSL:
|
|
25
|
-
ca:
|
|
21
|
+
connectionLimit: options.connectionLimit ? options.connectionLimit : parseInt(process.env.DB_CONNECTION_LIMIT ?? '10'),
|
|
22
|
+
multipleStatements: options.multipleStatements ?? ((process.env.DB_MULTIPLE_STATEMENTS ?? 'true') === 'true'),
|
|
23
|
+
charset: options.charset ?? process.env.DB_CHARSET ?? 'utf8mb4_0900_ai_ci',
|
|
24
|
+
useSSL: options.useSSL ?? !!process.env.DB_USE_SSL,
|
|
25
|
+
ca: options.ca ?? process.env.DB_CA,
|
|
26
26
|
};
|
|
27
27
|
if (settings.database === undefined) {
|
|
28
28
|
throw new Error('Environment variable DB_DATABASE is missing');
|
|
@@ -32,7 +32,7 @@ class DatabaseInstance {
|
|
|
32
32
|
user: settings.user,
|
|
33
33
|
password: settings.password,
|
|
34
34
|
port: settings.port,
|
|
35
|
-
database:
|
|
35
|
+
database: settings.database ?? undefined,
|
|
36
36
|
waitForConnections: true,
|
|
37
37
|
connectionLimit: settings.connectionLimit,
|
|
38
38
|
queueLimit: 0,
|
|
@@ -47,7 +47,7 @@ class DatabaseInstance {
|
|
|
47
47
|
}
|
|
48
48
|
: undefined,
|
|
49
49
|
});
|
|
50
|
-
this.debug =
|
|
50
|
+
this.debug = options?.debug ?? false;
|
|
51
51
|
if (this.debug) {
|
|
52
52
|
this.pool.on('acquire', function (connection) {
|
|
53
53
|
console.log('Connection %d acquired', connection.threadId);
|
|
@@ -96,10 +96,9 @@ class DatabaseInstance {
|
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
async select(query, values, options = {}) {
|
|
99
|
-
|
|
100
|
-
const connection = (_a = options.connection) !== null && _a !== void 0 ? _a : (await this.getConnection());
|
|
99
|
+
const connection = options.connection ?? (await this.getConnection());
|
|
101
100
|
try {
|
|
102
|
-
const q = await connection.query({ sql: query, nestTables:
|
|
101
|
+
const q = await connection.query({ sql: query, nestTables: options.nestTables ?? true, values: values });
|
|
103
102
|
return [
|
|
104
103
|
q[0],
|
|
105
104
|
q[1],
|
|
@@ -112,7 +111,7 @@ class DatabaseInstance {
|
|
|
112
111
|
}
|
|
113
112
|
}
|
|
114
113
|
async insert(query, values, useConnection) {
|
|
115
|
-
const connection = useConnection
|
|
114
|
+
const connection = useConnection ?? (await this.getConnection());
|
|
116
115
|
try {
|
|
117
116
|
const q = await connection.query({ sql: query, values: values });
|
|
118
117
|
return [
|
|
@@ -127,7 +126,7 @@ class DatabaseInstance {
|
|
|
127
126
|
}
|
|
128
127
|
}
|
|
129
128
|
async update(query, values, useConnection) {
|
|
130
|
-
const connection = useConnection
|
|
129
|
+
const connection = useConnection ?? (await this.getConnection());
|
|
131
130
|
try {
|
|
132
131
|
const q = await connection.query({ sql: query, values: values });
|
|
133
132
|
return [
|
|
@@ -142,7 +141,7 @@ class DatabaseInstance {
|
|
|
142
141
|
}
|
|
143
142
|
}
|
|
144
143
|
async delete(query, values, useConnection) {
|
|
145
|
-
const connection = useConnection
|
|
144
|
+
const connection = useConnection ?? (await this.getConnection());
|
|
146
145
|
try {
|
|
147
146
|
const q = await connection.query({ sql: query, values: values });
|
|
148
147
|
return [
|
|
@@ -157,7 +156,7 @@ class DatabaseInstance {
|
|
|
157
156
|
}
|
|
158
157
|
}
|
|
159
158
|
async statement(query, values, useConnection) {
|
|
160
|
-
const connection = useConnection
|
|
159
|
+
const connection = useConnection ?? (await this.getConnection());
|
|
161
160
|
try {
|
|
162
161
|
const q = await connection.query({ sql: query, values: values });
|
|
163
162
|
return [
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Database.js","sourceRoot":"","sources":["../../../../src/classes/Database.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatabaseStoredValue.d.ts","sourceRoot":"","sources":["../../../../src/classes/DatabaseStoredValue.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatabaseStoredValue.js","sourceRoot":"","sources":["../../../../src/classes/DatabaseStoredValue.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Factory.d.ts","sourceRoot":"","sources":["../../../../src/classes/Factory.ts"],"names":[],"mappings":"AAIA,8BAAsB,OAAO,CAAC,OAAO,EAAE,KAAK;IACxC,OAAO,EAAE,OAAO,CAAC;gBACL,OAAO,EAAE,OAAO;IAG5B,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC;IAEjC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG;IAKjC,UAAU,CAAC,CAAC,SAAS;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;KAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IAI1E,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAUpC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM;IAgB5D,cAAc,IAAI,MAAM;IAIlB,cAAc,CAAC,MAAM,SAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;CAOtD"}
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Factory = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
5
|
+
const boys_js_1 = tslib_1.__importDefault(require("./data/boys.js"));
|
|
6
|
+
const family_names_js_1 = tslib_1.__importDefault(require("./data/family-names.js"));
|
|
7
|
+
const girls_js_1 = tslib_1.__importDefault(require("./data/girls.js"));
|
|
8
8
|
class Factory {
|
|
9
|
+
options;
|
|
9
10
|
constructor(options) {
|
|
10
11
|
this.options = options;
|
|
11
12
|
}
|
|
@@ -29,19 +30,19 @@ class Factory {
|
|
|
29
30
|
let names;
|
|
30
31
|
switch (gender) {
|
|
31
32
|
case 'Male':
|
|
32
|
-
names =
|
|
33
|
+
names = boys_js_1.default;
|
|
33
34
|
break;
|
|
34
35
|
case 'Female':
|
|
35
|
-
names =
|
|
36
|
+
names = girls_js_1.default;
|
|
36
37
|
break;
|
|
37
38
|
case 'Other':
|
|
38
|
-
names = [...
|
|
39
|
+
names = [...boys_js_1.default, ...girls_js_1.default];
|
|
39
40
|
break;
|
|
40
41
|
}
|
|
41
42
|
return this.randomArray(names);
|
|
42
43
|
}
|
|
43
44
|
randomLastName() {
|
|
44
|
-
return this.randomArray(
|
|
45
|
+
return this.randomArray(family_names_js_1.default);
|
|
45
46
|
}
|
|
46
47
|
async createMultiple(amount = 40) {
|
|
47
48
|
const arr = [];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Factory.js","sourceRoot":"","sources":["../../../../src/classes/Factory.ts"],"names":[],"mappings":";;;;AAAA,qEAAsC;AACtC,qFAAiD;AACjD,uEAAwC;AAExC,MAAsB,OAAO;IACzB,OAAO,CAAU;IACjB,YAAY,OAAgB;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAGD,WAAW,CAAC,GAAe;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;QACnD,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,UAAU,CAA+C,CAAI;QACzD,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,YAAY,CAAC,MAAc;QACvB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,MAAM,UAAU,GAAG,gEAAgE,CAAC;QACpF,MAAM,gBAAgB,GAAG,UAAU,CAAC,MAAM,CAAC;QAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9B,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,eAAe,CAAC,MAAmC;QAC/C,IAAI,KAAe,CAAC;QACpB,QAAQ,MAAM,EAAE,CAAC;YACb,KAAK,MAAM;gBACP,KAAK,GAAG,iBAAQ,CAAC;gBACjB,MAAM;YACV,KAAK,QAAQ;gBACT,KAAK,GAAG,kBAAS,CAAC;gBAClB,MAAM;YACV,KAAK,OAAO;gBACR,KAAK,GAAG,CAAC,GAAG,iBAAQ,EAAE,GAAG,kBAAS,CAAC,CAAC;gBACpC,MAAM;QACd,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,cAAc;QACV,OAAO,IAAI,CAAC,WAAW,CAAC,yBAAW,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,EAAE;QAC5B,MAAM,GAAG,GAAY,EAAE,CAAC;QACxB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YAC1C,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;CACJ;AArDD,0BAqDC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Model } from './Model';
|
|
1
|
+
import { Model } from './Model.js';
|
|
2
2
|
export declare class ManyToManyRelation<Key extends keyof any, A extends Model, B extends Model, Link extends Model | undefined = undefined> {
|
|
3
3
|
modelA: {
|
|
4
4
|
new (): A;
|
|
@@ -50,10 +50,10 @@ export declare class ManyToManyRelation<Key extends keyof any, A extends Model,
|
|
|
50
50
|
}): Promise<void>;
|
|
51
51
|
linkIds(modelA: string | number, modelsB: (string | number)[], linkTableValues?: {
|
|
52
52
|
[key: string]: any[];
|
|
53
|
-
}
|
|
53
|
+
}): Promise<number>;
|
|
54
54
|
link(modelA: A, modelsB: B[], linkTableValues?: {
|
|
55
55
|
[key: string]: any[];
|
|
56
|
-
}
|
|
56
|
+
}): Promise<void>;
|
|
57
57
|
/**
|
|
58
58
|
* Delete all the links from modelA for this relation
|
|
59
59
|
* @param modelA
|
|
@@ -76,3 +76,4 @@ export declare class ManyToManyRelation<Key extends keyof any, A extends Model,
|
|
|
76
76
|
}>;
|
|
77
77
|
unlink(modelA: A, ...modelsB: B[]): Promise<void>;
|
|
78
78
|
}
|
|
79
|
+
//# sourceMappingURL=ManyToManyRelation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ManyToManyRelation.d.ts","sourceRoot":"","sources":["../../../../src/classes/ManyToManyRelation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ManyToManyRelation = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
4
|
+
const Database_js_1 = require("./Database.js");
|
|
5
|
+
const Model_js_1 = require("./Model.js");
|
|
6
6
|
class ManyToManyRelation {
|
|
7
|
+
modelA;
|
|
8
|
+
modelB;
|
|
9
|
+
modelLink;
|
|
10
|
+
/**
|
|
11
|
+
* E.g. parents
|
|
12
|
+
*/
|
|
13
|
+
modelKey;
|
|
14
|
+
/**
|
|
15
|
+
* Sort the loading of this relation
|
|
16
|
+
*/
|
|
17
|
+
sortKey;
|
|
18
|
+
sortOrder = 'ASC';
|
|
7
19
|
/**
|
|
8
20
|
* E.g. _models_parents
|
|
9
21
|
*/
|
|
@@ -32,7 +44,6 @@ class ManyToManyRelation {
|
|
|
32
44
|
+ (this.modelA === this.modelB ? 'B' : ''));
|
|
33
45
|
}
|
|
34
46
|
constructor(modelA, modelB, modelKey, modelLink) {
|
|
35
|
-
this.sortOrder = 'ASC';
|
|
36
47
|
this.modelA = modelA;
|
|
37
48
|
this.modelB = modelB;
|
|
38
49
|
this.modelKey = modelKey;
|
|
@@ -95,7 +106,7 @@ class ManyToManyRelation {
|
|
|
95
106
|
if (sorted) {
|
|
96
107
|
str += this.orderByQuery('A', 'B');
|
|
97
108
|
}
|
|
98
|
-
const [rows] = await
|
|
109
|
+
const [rows] = await Database_js_1.Database.select(str, params);
|
|
99
110
|
const modelsB = this.modelB.fromRows(rows, namespaceB);
|
|
100
111
|
// Also load link table if possible
|
|
101
112
|
if (this.modelLink) {
|
|
@@ -119,8 +130,8 @@ class ManyToManyRelation {
|
|
|
119
130
|
return Array.isArray(model[this.modelKey]);
|
|
120
131
|
}
|
|
121
132
|
async setLinkTable(modelA, modelB, linkTableValues) {
|
|
122
|
-
const str = `UPDATE ${this.linkTable} SET ? WHERE ${
|
|
123
|
-
const [result] = await
|
|
133
|
+
const str = `UPDATE ${this.linkTable} SET ? WHERE ${Database_js_1.Database.escapeId(this.linkKeyA)} = ? AND ${Database_js_1.Database.escapeId(this.linkKeyB)} = ?`;
|
|
134
|
+
const [result] = await Database_js_1.Database.update(str, [linkTableValues, modelA.getPrimaryKey(), modelB.getPrimaryKey()]);
|
|
124
135
|
if (result.changedRows !== 1) {
|
|
125
136
|
// Todo: add option to fail silently
|
|
126
137
|
throw new Error('Failed to update link table. Check if combination exists');
|
|
@@ -147,19 +158,19 @@ class ManyToManyRelation {
|
|
|
147
158
|
}
|
|
148
159
|
}
|
|
149
160
|
}
|
|
150
|
-
const query = `INSERT INTO ${
|
|
151
|
-
${
|
|
152
|
-
${
|
|
153
|
-
${linkTableKeys.map(k =>
|
|
161
|
+
const query = `INSERT INTO ${Database_js_1.Database.escapeId(this.linkTable)} (
|
|
162
|
+
${Database_js_1.Database.escapeId(this.linkKeyA)},
|
|
163
|
+
${Database_js_1.Database.escapeId(this.linkKeyB)},
|
|
164
|
+
${linkTableKeys.map(k => Database_js_1.Database.escapeId(k)).join(', ')}
|
|
154
165
|
) VALUES ?`;
|
|
155
|
-
[result] = await
|
|
166
|
+
[result] = await Database_js_1.Database.insert(query, [modelsB.map((modelB, i) => [modelA, modelB, ...linkTableKeys.map(k => linkTableValues[k][i])])]);
|
|
156
167
|
}
|
|
157
168
|
else {
|
|
158
|
-
const query = `INSERT INTO ${
|
|
159
|
-
${
|
|
160
|
-
${
|
|
169
|
+
const query = `INSERT INTO ${Database_js_1.Database.escapeId(this.linkTable)} (
|
|
170
|
+
${Database_js_1.Database.escapeId(this.linkKeyA)},
|
|
171
|
+
${Database_js_1.Database.escapeId(this.linkKeyB)}
|
|
161
172
|
) VALUES ?`;
|
|
162
|
-
[result] = await
|
|
173
|
+
[result] = await Database_js_1.Database.insert(query, [modelsB.map(modelB => [modelA, modelB])]);
|
|
163
174
|
}
|
|
164
175
|
return result.affectedRows;
|
|
165
176
|
}
|
|
@@ -196,8 +207,8 @@ class ManyToManyRelation {
|
|
|
196
207
|
async clearId(modelA) {
|
|
197
208
|
const query = `DELETE FROM ${this.linkTable} WHERE ${this.linkKeyA} = ?`;
|
|
198
209
|
// Arrays are turned into list, e.g. ['a', 'b'] turns into 'a', 'b'
|
|
199
|
-
const [result] = await
|
|
200
|
-
if (result.affectedRows === 0 &&
|
|
210
|
+
const [result] = await Database_js_1.Database.delete(query, [modelA]);
|
|
211
|
+
if (result.affectedRows === 0 && Model_js_1.Model.debug) {
|
|
201
212
|
console.warn("Cleared many to many relation, but didn't deleted any entries");
|
|
202
213
|
}
|
|
203
214
|
}
|
|
@@ -221,7 +232,7 @@ class ManyToManyRelation {
|
|
|
221
232
|
async unlinkIds(modelA, ...modelsB) {
|
|
222
233
|
const query = `DELETE FROM ${this.linkTable} WHERE ${this.linkKeyA} = ? AND ${this.linkKeyB} IN (?)`;
|
|
223
234
|
// Arrays are turned into list, e.g. ['a', 'b'] turns into 'a', 'b'
|
|
224
|
-
const [result] = await
|
|
235
|
+
const [result] = await Database_js_1.Database.delete(query, [modelA, modelsB]);
|
|
225
236
|
return result;
|
|
226
237
|
}
|
|
227
238
|
async unlink(modelA, ...modelsB) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ManyToManyRelation.js","sourceRoot":"","sources":["../../../../src/classes/ManyToManyRelation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Model } from './Model';
|
|
1
|
+
import { Model } from './Model.js';
|
|
2
2
|
export declare class ManyToOneRelation<Key extends keyof any, M extends Model> {
|
|
3
3
|
model: {
|
|
4
4
|
new (): M;
|
|
@@ -19,3 +19,4 @@ export declare class ManyToOneRelation<Key extends keyof any, M extends Model> {
|
|
|
19
19
|
joinQuery(namespaceA: string, namespaceB: string): string;
|
|
20
20
|
load<A extends Model>(modelsA: A[]): Promise<(A & Record<Key, M>)[]>;
|
|
21
21
|
}
|
|
22
|
+
//# sourceMappingURL=ManyToOneRelation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ManyToOneRelation.d.ts","sourceRoot":"","sources":["../../../../src/classes/ManyToOneRelation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,qBAAa,iBAAiB,CAAC,GAAG,SAAS,MAAM,GAAG,EAAE,CAAC,SAAS,KAAK;IACjE,KAAK,EAAE;QAAE,QAAQ,CAAC,CAAA;KAAE,GAAG,OAAO,KAAK,CAAC;IAEpC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,QAAQ,EAAE,GAAG,CAAC;gBAEF,KAAK,EAAE;QAAE,QAAQ,CAAC,CAAA;KAAE,GAAG,OAAO,KAAK,EAAE,QAAQ,EAAE,GAAG;IAM9D,QAAQ,CAAC,KAAK,EAAE,KAAK;IAKrB,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAK5B,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAKnD,IAAI,CAAC,CAAC,SAAS,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;CAmB7E"}
|
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ManyToOneRelation = void 0;
|
|
4
|
-
const
|
|
4
|
+
const Database_js_1 = require("./Database.js");
|
|
5
5
|
class ManyToOneRelation {
|
|
6
|
+
model;
|
|
7
|
+
/**
|
|
8
|
+
* E.g. addressId
|
|
9
|
+
*/
|
|
10
|
+
foreignKey;
|
|
11
|
+
/**
|
|
12
|
+
* E.g. address
|
|
13
|
+
*/
|
|
14
|
+
modelKey;
|
|
6
15
|
constructor(model, modelKey) {
|
|
7
16
|
this.model = model;
|
|
8
17
|
this.modelKey = modelKey;
|
|
@@ -26,7 +35,7 @@ class ManyToOneRelation {
|
|
|
26
35
|
}
|
|
27
36
|
let str = `SELECT ${this.model.getDefaultSelect()} FROM ${this.model.table}\n`;
|
|
28
37
|
str += `WHERE ${this.model.primary.name} IN (?)`;
|
|
29
|
-
const [rows] = await
|
|
38
|
+
const [rows] = await Database_js_1.Database.select(str, [modelsA.map(m => m[this.foreignKey])]);
|
|
30
39
|
const modelsB = this.model.fromRows(rows, this.model.table);
|
|
31
40
|
for (const model of modelsA) {
|
|
32
41
|
const found = modelsB.find(m => m.getPrimaryKey() === model[this.foreignKey]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ManyToOneRelation.js","sourceRoot":"","sources":["../../../../src/classes/ManyToOneRelation.ts"],"names":[],"mappings":";;;AAAA,+CAAyC;AAGzC,MAAa,iBAAiB;IAC1B,KAAK,CAA+B;IAEpC;;OAEG;IACH,UAAU,CAAS;IAEnB;;OAEG;IACH,QAAQ,CAAM;IAEd,YAAY,KAAmC,EAAE,QAAa;QAC1D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,mCAAmC;IACnC,QAAQ,CAAC,KAAY;QACjB,OAAQ,KAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAC;IACvD,CAAC;IAED,gCAAgC;IAChC,KAAK,CAAC,KAAY;QACd,OAAQ,KAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,SAAS,IAAK,KAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IACjG,CAAC;IAED,yBAAyB;IACzB,SAAS,CAAC,UAAkB,EAAE,UAAkB;QAC5C,OAAO,aAAa,IAAI,CAAC,KAAK,CAAC,KAAK,OAAO,UAAU,OAAO,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,MAAM,UAAU,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC;IAC7I,CAAC;IAED,yCAAyC;IACzC,KAAK,CAAC,IAAI,CAAkB,OAAY;QACpC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,CAAC;QACd,CAAC;QACD,IAAI,GAAG,GAAG,UAAU,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,SAAS,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;QAC/E,GAAG,IAAI,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC;QAEjD,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,sBAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAQ,CAAC;QAEnE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAC9E,IAAI,CAAC,KAAK,EAAE,CAAC;gBACT,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;YACxF,CAAC;YACD,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,OAAiC,CAAC;IAC7C,CAAC;CACJ;AArDD,8CAqDC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export declare function fileExists(file: string): Promise<boolean>;
|
|
1
2
|
type MigrationFunction = () => Promise<void>;
|
|
2
3
|
export declare class Migration {
|
|
3
4
|
up: MigrationFunction;
|
|
@@ -10,3 +11,4 @@ export declare class Migration {
|
|
|
10
11
|
static getMigration(file: string): Promise<Migration | undefined>;
|
|
11
12
|
}
|
|
12
13
|
export {};
|
|
14
|
+
//# sourceMappingURL=Migration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Migration.d.ts","sourceRoot":"","sources":["../../../../src/classes/Migration.ts"],"names":[],"mappings":"AAuBA,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQ/D;AAaD,KAAK,iBAAiB,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAW7C,qBAAa,SAAS;IAClB,EAAE,EAAE,iBAAiB,CAAC;IACtB,IAAI,EAAE,iBAAiB,GAAG,SAAS,CAAC;gBAExB,EAAE,EAAE,iBAAiB,EAAE,IAAI,CAAC,EAAE,iBAAiB;IAK3D;;OAEG;WACU,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;WA8HxC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;CA6B1E"}
|