@uql/core 0.4.80 → 0.4.83
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 -11
- package/dialect/abstractSqlDialect-spec.d.ts +49 -0
- package/dialect/abstractSqlDialect-spec.js +765 -0
- package/dialect/abstractSqlDialect.js +11 -17
- package/dialect/mysqlDialect.js +2 -2
- package/dialect/mysqlDialect.spec.d.ts +6 -0
- package/dialect/mysqlDialect.spec.js +33 -0
- package/dialect/postgresDialect.js +2 -2
- package/dialect/postgresDialect.spec.d.ts +1 -0
- package/dialect/postgresDialect.spec.js +139 -0
- package/dialect/sqliteDialect.spec.d.ts +1 -0
- package/dialect/sqliteDialect.spec.js +12 -0
- package/entity/decorator/definition.js +22 -24
- package/entity/decorator/definition.spec.d.ts +1 -0
- package/entity/decorator/definition.spec.js +725 -0
- package/entity/decorator/relation.spec.d.ts +1 -0
- package/entity/decorator/relation.spec.js +55 -0
- package/options.js +2 -2
- package/options.spec.d.ts +1 -0
- package/options.spec.js +50 -0
- package/package.json +3 -3
- package/querier/abstractQuerier-it.d.ts +41 -0
- package/querier/abstractQuerier-it.js +410 -0
- package/querier/abstractSqlQuerier-it.d.ts +9 -0
- package/querier/abstractSqlQuerier-it.js +19 -0
- package/querier/abstractSqlQuerier-spec.d.ts +53 -0
- package/querier/abstractSqlQuerier-spec.js +607 -0
- package/querier/abstractSqlQuerier.js +2 -3
- package/querier/decorator/injectQuerier.js +2 -3
- package/querier/decorator/injectQuerier.spec.d.ts +1 -0
- package/querier/decorator/injectQuerier.spec.js +108 -0
- package/querier/decorator/transactional.js +2 -2
- package/querier/decorator/transactional.spec.d.ts +1 -0
- package/querier/decorator/transactional.spec.js +241 -0
- package/repository/genericRepository.spec.d.ts +1 -0
- package/repository/genericRepository.spec.js +86 -0
- package/test/entityMock.d.ts +180 -0
- package/test/entityMock.js +451 -0
- package/test/index.d.ts +3 -0
- package/test/index.js +7 -0
- package/test/it.util.d.ts +4 -0
- package/test/it.util.js +60 -0
- package/test/spec.util.d.ts +13 -0
- package/test/spec.util.js +54 -0
- package/type/entity.d.ts +12 -17
- package/type/entity.js +1 -1
- package/type/utility.d.ts +3 -2
- package/type/utility.js +1 -1
- package/util/dialect.util.js +2 -3
- package/util/dialect.util.spec.d.ts +1 -0
- package/util/dialect.util.spec.js +23 -0
- package/util/object.util.spec.d.ts +1 -0
- package/util/object.util.spec.js +26 -0
- package/util/sql.util.spec.d.ts +1 -0
- package/util/sql.util.spec.js +164 -0
- package/util/string.util.spec.d.ts +1 -0
- package/util/string.util.spec.js +26 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const relation_1 = require("./relation");
|
|
5
|
+
it('invalid auto-inferred type', () => {
|
|
6
|
+
expect(() => {
|
|
7
|
+
class SomeEntity {
|
|
8
|
+
}
|
|
9
|
+
tslib_1.__decorate([
|
|
10
|
+
(0, relation_1.ManyToOne)(),
|
|
11
|
+
tslib_1.__metadata("design:type", Number)
|
|
12
|
+
], SomeEntity.prototype, "idTwo", void 0);
|
|
13
|
+
}).toThrow(`'SomeEntity.idTwo' type was auto-inferred with invalid type 'Number'`);
|
|
14
|
+
expect(() => {
|
|
15
|
+
class SomeEntity {
|
|
16
|
+
}
|
|
17
|
+
tslib_1.__decorate([
|
|
18
|
+
(0, relation_1.ManyToOne)(),
|
|
19
|
+
tslib_1.__metadata("design:type", String)
|
|
20
|
+
], SomeEntity.prototype, "idTwo", void 0);
|
|
21
|
+
}).toThrow(`'SomeEntity.idTwo' type was auto-inferred with invalid type 'String'`);
|
|
22
|
+
expect(() => {
|
|
23
|
+
class SomeEntity {
|
|
24
|
+
}
|
|
25
|
+
tslib_1.__decorate([
|
|
26
|
+
(0, relation_1.ManyToOne)(),
|
|
27
|
+
tslib_1.__metadata("design:type", Boolean)
|
|
28
|
+
], SomeEntity.prototype, "idTwo", void 0);
|
|
29
|
+
}).toThrow(`'SomeEntity.idTwo' type was auto-inferred with invalid type 'Boolean'`);
|
|
30
|
+
expect(() => {
|
|
31
|
+
class SomeEntity {
|
|
32
|
+
}
|
|
33
|
+
tslib_1.__decorate([
|
|
34
|
+
(0, relation_1.ManyToOne)(),
|
|
35
|
+
tslib_1.__metadata("design:type", Object)
|
|
36
|
+
], SomeEntity.prototype, "idTwo", void 0);
|
|
37
|
+
}).toThrow(`'SomeEntity.idTwo' type was auto-inferred with invalid type 'Object'`);
|
|
38
|
+
expect(() => {
|
|
39
|
+
class SomeEntity {
|
|
40
|
+
}
|
|
41
|
+
tslib_1.__decorate([
|
|
42
|
+
(0, relation_1.ManyToOne)(),
|
|
43
|
+
tslib_1.__metadata("design:type", void 0)
|
|
44
|
+
], SomeEntity.prototype, "idTwo", void 0);
|
|
45
|
+
}).toThrow(`'SomeEntity.idTwo' type was auto-inferred with invalid type 'undefined'`);
|
|
46
|
+
expect(() => {
|
|
47
|
+
class SomeEntity {
|
|
48
|
+
}
|
|
49
|
+
tslib_1.__decorate([
|
|
50
|
+
(0, relation_1.ManyToOne)(),
|
|
51
|
+
tslib_1.__metadata("design:type", void 0)
|
|
52
|
+
], SomeEntity.prototype, "idTwo", void 0);
|
|
53
|
+
}).toThrow(`'SomeEntity.idTwo' type was auto-inferred with invalid type 'undefined'`);
|
|
54
|
+
});
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRpb24uc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbnRpdHkvZGVjb3JhdG9yL3JlbGF0aW9uLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQXVDO0FBRXZDLEVBQUUsQ0FBQyw0QkFBNEIsRUFBRSxHQUFHLEVBQUU7SUFDcEMsTUFBTSxDQUFDLEdBQUcsRUFBRTtRQUNWLE1BQU0sVUFBVTtTQUdmO1FBREM7WUFEQyxJQUFBLG9CQUFTLEdBQUU7O2lEQUNFO0lBRWxCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxzRUFBc0UsQ0FBQyxDQUFDO0lBQ25GLE1BQU0sQ0FBQyxHQUFHLEVBQUU7UUFDVixNQUFNLFVBQVU7U0FHZjtRQURDO1lBREMsSUFBQSxvQkFBUyxHQUFFOztpREFDRTtJQUVsQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsc0VBQXNFLENBQUMsQ0FBQztJQUNuRixNQUFNLENBQUMsR0FBRyxFQUFFO1FBQ1YsTUFBTSxVQUFVO1NBR2Y7UUFEQztZQURDLElBQUEsb0JBQVMsR0FBRTs7aURBQ0c7SUFFbkIsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLHVFQUF1RSxDQUFDLENBQUM7SUFDcEYsTUFBTSxDQUFDLEdBQUcsRUFBRTtRQUNWLE1BQU0sVUFBVTtTQUdmO1FBREM7WUFEQyxJQUFBLG9CQUFTLEdBQUU7O2lEQUNFO0lBRWxCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxzRUFBc0UsQ0FBQyxDQUFDO0lBQ25GLE1BQU0sQ0FBQyxHQUFHLEVBQUU7UUFDVixNQUFNLFVBQVU7U0FHZjtRQURDO1lBREMsSUFBQSxvQkFBUyxHQUFFOztpREFDQTtJQUVoQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMseUVBQXlFLENBQUMsQ0FBQztJQUN0RixNQUFNLENBQUMsR0FBRyxFQUFFO1FBQ1YsTUFBTSxVQUFVO1NBR2Y7UUFEQztZQURDLElBQUEsb0JBQVMsR0FBRTs7aURBQ0s7SUFFckIsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLHlFQUF5RSxDQUFDLENBQUM7QUFDeEYsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYW55VG9PbmUgfSBmcm9tICcuL3JlbGF0aW9uJztcblxuaXQoJ2ludmFsaWQgYXV0by1pbmZlcnJlZCB0eXBlJywgKCkgPT4ge1xuICBleHBlY3QoKCkgPT4ge1xuICAgIGNsYXNzIFNvbWVFbnRpdHkge1xuICAgICAgQE1hbnlUb09uZSgpXG4gICAgICBpZFR3bzogbnVtYmVyO1xuICAgIH1cbiAgfSkudG9UaHJvdyhgJ1NvbWVFbnRpdHkuaWRUd28nIHR5cGUgd2FzIGF1dG8taW5mZXJyZWQgd2l0aCBpbnZhbGlkIHR5cGUgJ051bWJlcidgKTtcbiAgZXhwZWN0KCgpID0+IHtcbiAgICBjbGFzcyBTb21lRW50aXR5IHtcbiAgICAgIEBNYW55VG9PbmUoKVxuICAgICAgaWRUd286IHN0cmluZztcbiAgICB9XG4gIH0pLnRvVGhyb3coYCdTb21lRW50aXR5LmlkVHdvJyB0eXBlIHdhcyBhdXRvLWluZmVycmVkIHdpdGggaW52YWxpZCB0eXBlICdTdHJpbmcnYCk7XG4gIGV4cGVjdCgoKSA9PiB7XG4gICAgY2xhc3MgU29tZUVudGl0eSB7XG4gICAgICBATWFueVRvT25lKClcbiAgICAgIGlkVHdvOiBib29sZWFuO1xuICAgIH1cbiAgfSkudG9UaHJvdyhgJ1NvbWVFbnRpdHkuaWRUd28nIHR5cGUgd2FzIGF1dG8taW5mZXJyZWQgd2l0aCBpbnZhbGlkIHR5cGUgJ0Jvb2xlYW4nYCk7XG4gIGV4cGVjdCgoKSA9PiB7XG4gICAgY2xhc3MgU29tZUVudGl0eSB7XG4gICAgICBATWFueVRvT25lKClcbiAgICAgIGlkVHdvOiBvYmplY3Q7XG4gICAgfVxuICB9KS50b1Rocm93KGAnU29tZUVudGl0eS5pZFR3bycgdHlwZSB3YXMgYXV0by1pbmZlcnJlZCB3aXRoIGludmFsaWQgdHlwZSAnT2JqZWN0J2ApO1xuICBleHBlY3QoKCkgPT4ge1xuICAgIGNsYXNzIFNvbWVFbnRpdHkge1xuICAgICAgQE1hbnlUb09uZSgpXG4gICAgICBpZFR3bzogbnVsbDtcbiAgICB9XG4gIH0pLnRvVGhyb3coYCdTb21lRW50aXR5LmlkVHdvJyB0eXBlIHdhcyBhdXRvLWluZmVycmVkIHdpdGggaW52YWxpZCB0eXBlICd1bmRlZmluZWQnYCk7XG4gIGV4cGVjdCgoKSA9PiB7XG4gICAgY2xhc3MgU29tZUVudGl0eSB7XG4gICAgICBATWFueVRvT25lKClcbiAgICAgIGlkVHdvOiB1bmRlZmluZWQ7XG4gICAgfVxuICB9KS50b1Rocm93KGAnU29tZUVudGl0eS5pZFR3bycgdHlwZSB3YXMgYXV0by1pbmZlcnJlZCB3aXRoIGludmFsaWQgdHlwZSAndW5kZWZpbmVkJ2ApO1xufSk7XG4iXX0=
|
package/options.js
CHANGED
|
@@ -9,7 +9,7 @@ function setOptions(opts) {
|
|
|
9
9
|
}
|
|
10
10
|
exports.setOptions = setOptions;
|
|
11
11
|
function getOptions() {
|
|
12
|
-
return options
|
|
12
|
+
return options ?? { ...defaultOptions };
|
|
13
13
|
}
|
|
14
14
|
exports.getOptions = getOptions;
|
|
15
15
|
function getQuerierPool() {
|
|
@@ -28,4 +28,4 @@ function getRepository(entity, querier) {
|
|
|
28
28
|
return new repository_1.GenericRepository(entity, querier);
|
|
29
29
|
}
|
|
30
30
|
exports.getRepository = getRepository;
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUF5RDtBQUd6RCxJQUFJLE9BQW1CLENBQUM7QUFDeEIsTUFBTSxjQUFjLEdBQUcsRUFBeUIsQ0FBQztBQUVqRCxTQUFnQixVQUFVLENBQUMsSUFBZ0I7SUFDekMsT0FBTyxHQUFHLEVBQUUsR0FBRyxjQUFjLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztBQUMzQyxDQUFDO0FBRkQsZ0NBRUM7QUFFRCxTQUFnQixVQUFVO0lBQ3hCLE9BQU8sT0FBTyxJQUFJLEVBQUUsR0FBRyxjQUFjLEVBQUUsQ0FBQztBQUMxQyxDQUFDO0FBRkQsZ0NBRUM7QUFFRCxTQUFnQixjQUFjO0lBQzVCLE1BQU0sT0FBTyxHQUFHLFVBQVUsRUFBRSxDQUFDO0lBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFO1FBQ3hCLE1BQU0sU0FBUyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7S0FDcEU7SUFDRCxPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQUM7QUFDN0IsQ0FBQztBQU5ELHdDQU1DO0FBRUQsU0FBZ0IsVUFBVTtJQUN4QixPQUFPLGNBQWMsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDO0FBQ3ZDLENBQUM7QUFGRCxnQ0FFQztBQUVELFNBQWdCLGFBQWEsQ0FBSSxNQUFlLEVBQUUsT0FBZ0I7SUFDaEUsT0FBTyxJQUFJLDhCQUFpQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNoRCxDQUFDO0FBRkQsc0NBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHZW5lcmljUmVwb3NpdG9yeSB9IGZyb20gJ0B1cWwvY29yZS9yZXBvc2l0b3J5JztcbmltcG9ydCB7IFF1ZXJpZXIsIFF1ZXJpZXJQb29sLCBSZXBvc2l0b3J5LCBUeXBlLCBVcWxPcHRpb25zIH0gZnJvbSAnQHVxbC9jb3JlL3R5cGUnO1xuXG5sZXQgb3B0aW9uczogVXFsT3B0aW9ucztcbmNvbnN0IGRlZmF1bHRPcHRpb25zID0ge30gYXMgY29uc3QgYXMgVXFsT3B0aW9ucztcblxuZXhwb3J0IGZ1bmN0aW9uIHNldE9wdGlvbnMob3B0czogVXFsT3B0aW9ucyk6IHZvaWQge1xuICBvcHRpb25zID0geyAuLi5kZWZhdWx0T3B0aW9ucywgLi4ub3B0cyB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3B0aW9ucygpOiBVcWxPcHRpb25zIHtcbiAgcmV0dXJuIG9wdGlvbnMgPz8geyAuLi5kZWZhdWx0T3B0aW9ucyB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UXVlcmllclBvb2woKTogUXVlcmllclBvb2wge1xuICBjb25zdCBvcHRpb25zID0gZ2V0T3B0aW9ucygpO1xuICBpZiAoIW9wdGlvbnMucXVlcmllclBvb2wpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoYCdxdWVyaWVyUG9vbCcgaGFzIHRvIGJlIHBhc3NlZCB2aWEgJ3NldE9wdGlvbnMnYCk7XG4gIH1cbiAgcmV0dXJuIG9wdGlvbnMucXVlcmllclBvb2w7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRRdWVyaWVyKCk6IFByb21pc2U8UXVlcmllcj4ge1xuICByZXR1cm4gZ2V0UXVlcmllclBvb2woKS5nZXRRdWVyaWVyKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXBvc2l0b3J5PEU+KGVudGl0eTogVHlwZTxFPiwgcXVlcmllcjogUXVlcmllcik6IFJlcG9zaXRvcnk8RT4ge1xuICByZXR1cm4gbmV3IEdlbmVyaWNSZXBvc2l0b3J5KGVudGl0eSwgcXVlcmllcik7XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/options.spec.js
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const test_1 = require("@uql/core/test");
|
|
4
|
+
const options_1 = require("./options");
|
|
5
|
+
describe('options', () => {
|
|
6
|
+
beforeEach(() => {
|
|
7
|
+
jest.spyOn(console, 'log');
|
|
8
|
+
});
|
|
9
|
+
afterEach(() => {
|
|
10
|
+
(0, options_1.setOptions)(undefined);
|
|
11
|
+
});
|
|
12
|
+
it('getOptions unset', () => {
|
|
13
|
+
expect((0, options_1.getOptions)()).toEqual({});
|
|
14
|
+
});
|
|
15
|
+
it('setOptions', () => {
|
|
16
|
+
const logger = jest.fn();
|
|
17
|
+
(0, options_1.setOptions)({
|
|
18
|
+
querierPool: undefined,
|
|
19
|
+
});
|
|
20
|
+
expect((0, options_1.getOptions)()).toEqual({
|
|
21
|
+
querierPool: undefined,
|
|
22
|
+
});
|
|
23
|
+
(0, options_1.setOptions)({
|
|
24
|
+
querierPool: undefined,
|
|
25
|
+
});
|
|
26
|
+
expect((0, options_1.getOptions)()).toEqual({
|
|
27
|
+
querierPool: undefined,
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
it('getQuerierPool unset', () => {
|
|
31
|
+
expect(() => (0, options_1.getQuerierPool)()).toThrow(`'querierPool' has to be passed via 'setOptions'`);
|
|
32
|
+
});
|
|
33
|
+
it('getQuerier', async () => {
|
|
34
|
+
const querierMock = {};
|
|
35
|
+
(0, options_1.setOptions)({
|
|
36
|
+
querierPool: {
|
|
37
|
+
getQuerier: async () => querierMock,
|
|
38
|
+
end: async () => { },
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
const querier1 = await (0, options_1.getQuerierPool)().getQuerier();
|
|
42
|
+
expect(querier1).toBe(querierMock);
|
|
43
|
+
const querier2 = await (0, options_1.getQuerier)();
|
|
44
|
+
expect(querier2).toBe(querierMock);
|
|
45
|
+
const repository = (0, options_1.getRepository)(test_1.User, querier1);
|
|
46
|
+
expect(repository).toBeDefined();
|
|
47
|
+
expect((0, options_1.getQuerierPool)()).toBe((0, options_1.getQuerierPool)());
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL29wdGlvbnMuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlDQUFzQztBQUV0Qyx1Q0FBOEY7QUFFOUYsUUFBUSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUU7SUFDdkIsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUMsQ0FBQyxDQUFDO0lBRUgsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNiLElBQUEsb0JBQVUsRUFBQyxTQUFTLENBQUMsQ0FBQztJQUN4QixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLEVBQUU7UUFDMUIsTUFBTSxDQUFDLElBQUEsb0JBQVUsR0FBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLFlBQVksRUFBRSxHQUFHLEVBQUU7UUFDcEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBRXpCLElBQUEsb0JBQVUsRUFBQztZQUNULFdBQVcsRUFBRSxTQUFTO1NBQ3ZCLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxJQUFBLG9CQUFVLEdBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUMzQixXQUFXLEVBQUUsU0FBUztTQUN2QixDQUFDLENBQUM7UUFFSCxJQUFBLG9CQUFVLEVBQUM7WUFDVCxXQUFXLEVBQUUsU0FBUztTQUN2QixDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsSUFBQSxvQkFBVSxHQUFFLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDM0IsV0FBVyxFQUFFLFNBQVM7U0FDdkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsc0JBQXNCLEVBQUUsR0FBRyxFQUFFO1FBQzlCLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFBLHdCQUFjLEdBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO0lBQzVGLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLFlBQVksRUFBRSxLQUFLLElBQUksRUFBRTtRQUMxQixNQUFNLFdBQVcsR0FBRyxFQUFhLENBQUM7UUFFbEMsSUFBQSxvQkFBVSxFQUFDO1lBQ1QsV0FBVyxFQUFFO2dCQUNYLFVBQVUsRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDLFdBQVc7Z0JBQ25DLEdBQUcsRUFBRSxLQUFLLElBQUksRUFBRSxHQUFFLENBQUM7YUFDcEI7U0FDRixDQUFDLENBQUM7UUFFSCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsd0JBQWMsR0FBRSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3JELE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFbkMsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFBLG9CQUFVLEdBQUUsQ0FBQztRQUNwQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRW5DLE1BQU0sVUFBVSxHQUFHLElBQUEsdUJBQWEsRUFBQyxXQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFakQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRWpDLE1BQU0sQ0FBQyxJQUFBLHdCQUFjLEdBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFBLHdCQUFjLEdBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVc2VyIH0gZnJvbSAnQHVxbC9jb3JlL3Rlc3QnO1xuaW1wb3J0IHsgUXVlcmllciB9IGZyb20gJ0B1cWwvY29yZS90eXBlJztcbmltcG9ydCB7IGdldE9wdGlvbnMsIGdldFF1ZXJpZXIsIGdldFF1ZXJpZXJQb29sLCBnZXRSZXBvc2l0b3J5LCBzZXRPcHRpb25zIH0gZnJvbSAnLi9vcHRpb25zJztcblxuZGVzY3JpYmUoJ29wdGlvbnMnLCAoKSA9PiB7XG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGplc3Quc3B5T24oY29uc29sZSwgJ2xvZycpO1xuICB9KTtcblxuICBhZnRlckVhY2goKCkgPT4ge1xuICAgIHNldE9wdGlvbnModW5kZWZpbmVkKTtcbiAgfSk7XG5cbiAgaXQoJ2dldE9wdGlvbnMgdW5zZXQnLCAoKSA9PiB7XG4gICAgZXhwZWN0KGdldE9wdGlvbnMoKSkudG9FcXVhbCh7fSk7XG4gIH0pO1xuXG4gIGl0KCdzZXRPcHRpb25zJywgKCkgPT4ge1xuICAgIGNvbnN0IGxvZ2dlciA9IGplc3QuZm4oKTtcblxuICAgIHNldE9wdGlvbnMoe1xuICAgICAgcXVlcmllclBvb2w6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgICBleHBlY3QoZ2V0T3B0aW9ucygpKS50b0VxdWFsKHtcbiAgICAgIHF1ZXJpZXJQb29sOiB1bmRlZmluZWQsXG4gICAgfSk7XG5cbiAgICBzZXRPcHRpb25zKHtcbiAgICAgIHF1ZXJpZXJQb29sOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gICAgZXhwZWN0KGdldE9wdGlvbnMoKSkudG9FcXVhbCh7XG4gICAgICBxdWVyaWVyUG9vbDogdW5kZWZpbmVkLFxuICAgIH0pO1xuICB9KTtcblxuICBpdCgnZ2V0UXVlcmllclBvb2wgdW5zZXQnLCAoKSA9PiB7XG4gICAgZXhwZWN0KCgpID0+IGdldFF1ZXJpZXJQb29sKCkpLnRvVGhyb3coYCdxdWVyaWVyUG9vbCcgaGFzIHRvIGJlIHBhc3NlZCB2aWEgJ3NldE9wdGlvbnMnYCk7XG4gIH0pO1xuXG4gIGl0KCdnZXRRdWVyaWVyJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHF1ZXJpZXJNb2NrID0ge30gYXMgUXVlcmllcjtcblxuICAgIHNldE9wdGlvbnMoe1xuICAgICAgcXVlcmllclBvb2w6IHtcbiAgICAgICAgZ2V0UXVlcmllcjogYXN5bmMgKCkgPT4gcXVlcmllck1vY2ssXG4gICAgICAgIGVuZDogYXN5bmMgKCkgPT4ge30sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgcXVlcmllcjEgPSBhd2FpdCBnZXRRdWVyaWVyUG9vbCgpLmdldFF1ZXJpZXIoKTtcbiAgICBleHBlY3QocXVlcmllcjEpLnRvQmUocXVlcmllck1vY2spO1xuXG4gICAgY29uc3QgcXVlcmllcjIgPSBhd2FpdCBnZXRRdWVyaWVyKCk7XG4gICAgZXhwZWN0KHF1ZXJpZXIyKS50b0JlKHF1ZXJpZXJNb2NrKTtcblxuICAgIGNvbnN0IHJlcG9zaXRvcnkgPSBnZXRSZXBvc2l0b3J5KFVzZXIsIHF1ZXJpZXIxKTtcblxuICAgIGV4cGVjdChyZXBvc2l0b3J5KS50b0JlRGVmaW5lZCgpO1xuXG4gICAgZXhwZWN0KGdldFF1ZXJpZXJQb29sKCkpLnRvQmUoZ2V0UXVlcmllclBvb2woKSk7XG4gIH0pO1xufSk7XG4iXX0=
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"homepage": "https://uql.io",
|
|
4
4
|
"description": "flexible and efficient ORM, with declarative JSON syntax and smart type-safety",
|
|
5
5
|
"license": "MIT",
|
|
6
|
-
"version": "0.4.
|
|
6
|
+
"version": "0.4.83",
|
|
7
7
|
"main": "index.js",
|
|
8
8
|
"types": "index.d.ts",
|
|
9
9
|
"scripts": {
|
|
@@ -18,12 +18,12 @@
|
|
|
18
18
|
"tslib": "^2.3.1"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
|
-
"@types/node": "^17.0.
|
|
21
|
+
"@types/node": "^17.0.23",
|
|
22
22
|
"@types/sqlstring": "^2.3.0",
|
|
23
23
|
"@types/uuid": "^8.3.4",
|
|
24
24
|
"copyfiles": "^2.4.1",
|
|
25
25
|
"rimraf": "^3.0.2",
|
|
26
|
-
"typescript": "^4.6.
|
|
26
|
+
"typescript": "^4.6.3",
|
|
27
27
|
"uuid": "^8.3.2"
|
|
28
28
|
},
|
|
29
29
|
"author": "Roger Padilla",
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Querier, QuerierPool } from '@uql/core/type';
|
|
2
|
+
import { Spec } from '@uql/core/test';
|
|
3
|
+
export declare abstract class AbstractQuerierIt<Q extends Querier> implements Spec {
|
|
4
|
+
readonly pool: QuerierPool<Q>;
|
|
5
|
+
querier: Q;
|
|
6
|
+
constructor(pool: QuerierPool<Q>);
|
|
7
|
+
beforeAll(): Promise<void>;
|
|
8
|
+
beforeEach(): Promise<void>;
|
|
9
|
+
afterEach(): Promise<void>;
|
|
10
|
+
afterAll(): Promise<void>;
|
|
11
|
+
shouldGetRepository(): void;
|
|
12
|
+
shouldInsertMany(): Promise<void>;
|
|
13
|
+
shouldInsertOne(): Promise<void>;
|
|
14
|
+
shouldInsertOneWithOnInsertId(): Promise<void>;
|
|
15
|
+
shouldInsertManyWithSpecifiedIdsAndOnInsertIdAsDefault(): Promise<void>;
|
|
16
|
+
shouldInsertManyWithAutoIncrementIdAsDefault(): Promise<void>;
|
|
17
|
+
shouldInsertOneAndCascadeOneToOne(): Promise<void>;
|
|
18
|
+
shouldInsertOneAndCascadeManyToOne(): Promise<void>;
|
|
19
|
+
shouldInsertOneAndCascadeOneToMany(): Promise<void>;
|
|
20
|
+
shouldInsertOneAndCascadeOneToManyWithSpecificFields(): Promise<void>;
|
|
21
|
+
shouldUpdateOneAndCascadeOneToMany(): Promise<void>;
|
|
22
|
+
shouldUpdateOneByIdAndCascadeOneToManyNull(): Promise<void>;
|
|
23
|
+
shouldUpdateManyAndCascadeOneToManyNull(): Promise<void>;
|
|
24
|
+
shouldInsertOneAndCascadeManyToMany(): Promise<void>;
|
|
25
|
+
shouldUpdateOneAndCascadeManyToMany(): Promise<void>;
|
|
26
|
+
shouldFindMany(): Promise<void>;
|
|
27
|
+
shouldFindOne(): Promise<void>;
|
|
28
|
+
shouldCount(): Promise<void>;
|
|
29
|
+
shouldUpdateMany(): Promise<void>;
|
|
30
|
+
shouldThrowWhenRollbackTransactionWithoutBeginTransaction(): Promise<void>;
|
|
31
|
+
shouldThrowIfUnknownComparisonOperator(): Promise<void>;
|
|
32
|
+
shouldCommit(): Promise<void>;
|
|
33
|
+
shouldRollback(): Promise<void>;
|
|
34
|
+
shouldThrowWhenBeginTransactionAfterBeginTransaction(): Promise<void>;
|
|
35
|
+
shouldProjectOneToMany(): Promise<void>;
|
|
36
|
+
shouldDeleteMany(): Promise<void>;
|
|
37
|
+
shouldThrowWhenCommitTransactionWithoutBeginTransaction(): Promise<void>;
|
|
38
|
+
clearTables(): Promise<void>;
|
|
39
|
+
abstract createTables(): Promise<void>;
|
|
40
|
+
abstract dropTables(): Promise<void>;
|
|
41
|
+
}
|