@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.
Files changed (57) hide show
  1. package/README.md +11 -11
  2. package/dialect/abstractSqlDialect-spec.d.ts +49 -0
  3. package/dialect/abstractSqlDialect-spec.js +765 -0
  4. package/dialect/abstractSqlDialect.js +11 -17
  5. package/dialect/mysqlDialect.js +2 -2
  6. package/dialect/mysqlDialect.spec.d.ts +6 -0
  7. package/dialect/mysqlDialect.spec.js +33 -0
  8. package/dialect/postgresDialect.js +2 -2
  9. package/dialect/postgresDialect.spec.d.ts +1 -0
  10. package/dialect/postgresDialect.spec.js +139 -0
  11. package/dialect/sqliteDialect.spec.d.ts +1 -0
  12. package/dialect/sqliteDialect.spec.js +12 -0
  13. package/entity/decorator/definition.js +22 -24
  14. package/entity/decorator/definition.spec.d.ts +1 -0
  15. package/entity/decorator/definition.spec.js +725 -0
  16. package/entity/decorator/relation.spec.d.ts +1 -0
  17. package/entity/decorator/relation.spec.js +55 -0
  18. package/options.js +2 -2
  19. package/options.spec.d.ts +1 -0
  20. package/options.spec.js +50 -0
  21. package/package.json +3 -3
  22. package/querier/abstractQuerier-it.d.ts +41 -0
  23. package/querier/abstractQuerier-it.js +410 -0
  24. package/querier/abstractSqlQuerier-it.d.ts +9 -0
  25. package/querier/abstractSqlQuerier-it.js +19 -0
  26. package/querier/abstractSqlQuerier-spec.d.ts +53 -0
  27. package/querier/abstractSqlQuerier-spec.js +607 -0
  28. package/querier/abstractSqlQuerier.js +2 -3
  29. package/querier/decorator/injectQuerier.js +2 -3
  30. package/querier/decorator/injectQuerier.spec.d.ts +1 -0
  31. package/querier/decorator/injectQuerier.spec.js +108 -0
  32. package/querier/decorator/transactional.js +2 -2
  33. package/querier/decorator/transactional.spec.d.ts +1 -0
  34. package/querier/decorator/transactional.spec.js +241 -0
  35. package/repository/genericRepository.spec.d.ts +1 -0
  36. package/repository/genericRepository.spec.js +86 -0
  37. package/test/entityMock.d.ts +180 -0
  38. package/test/entityMock.js +451 -0
  39. package/test/index.d.ts +3 -0
  40. package/test/index.js +7 -0
  41. package/test/it.util.d.ts +4 -0
  42. package/test/it.util.js +60 -0
  43. package/test/spec.util.d.ts +13 -0
  44. package/test/spec.util.js +54 -0
  45. package/type/entity.d.ts +12 -17
  46. package/type/entity.js +1 -1
  47. package/type/utility.d.ts +3 -2
  48. package/type/utility.js +1 -1
  49. package/util/dialect.util.js +2 -3
  50. package/util/dialect.util.spec.d.ts +1 -0
  51. package/util/dialect.util.spec.js +23 -0
  52. package/util/object.util.spec.d.ts +1 -0
  53. package/util/object.util.spec.js +26 -0
  54. package/util/sql.util.spec.d.ts +1 -0
  55. package/util/sql.util.spec.js +164 -0
  56. package/util/string.util.spec.d.ts +1 -0
  57. 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 !== null && options !== void 0 ? options : { ...defaultOptions };
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUF5RDtBQUd6RCxJQUFJLE9BQW1CLENBQUM7QUFDeEIsTUFBTSxjQUFjLEdBQUcsRUFBeUIsQ0FBQztBQUVqRCxTQUFnQixVQUFVLENBQUMsSUFBZ0I7SUFDekMsT0FBTyxHQUFHLEVBQUUsR0FBRyxjQUFjLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztBQUMzQyxDQUFDO0FBRkQsZ0NBRUM7QUFFRCxTQUFnQixVQUFVO0lBQ3hCLE9BQU8sT0FBTyxhQUFQLE9BQU8sY0FBUCxPQUFPLEdBQUksRUFBRSxHQUFHLGNBQWMsRUFBRSxDQUFDO0FBQzFDLENBQUM7QUFGRCxnQ0FFQztBQUVELFNBQWdCLGNBQWM7SUFDNUIsTUFBTSxPQUFPLEdBQUcsVUFBVSxFQUFFLENBQUM7SUFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUU7UUFDeEIsTUFBTSxTQUFTLENBQUMsaURBQWlELENBQUMsQ0FBQztLQUNwRTtJQUNELE9BQU8sT0FBTyxDQUFDLFdBQVcsQ0FBQztBQUM3QixDQUFDO0FBTkQsd0NBTUM7QUFFRCxTQUFnQixVQUFVO0lBQ3hCLE9BQU8sY0FBYyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUM7QUFDdkMsQ0FBQztBQUZELGdDQUVDO0FBRUQsU0FBZ0IsYUFBYSxDQUFJLE1BQWUsRUFBRSxPQUFnQjtJQUNoRSxPQUFPLElBQUksOEJBQWlCLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFGRCxzQ0FFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdlbmVyaWNSZXBvc2l0b3J5IH0gZnJvbSAnQHVxbC9jb3JlL3JlcG9zaXRvcnknO1xuaW1wb3J0IHsgUXVlcmllciwgUXVlcmllclBvb2wsIFJlcG9zaXRvcnksIFR5cGUsIFVxbE9wdGlvbnMgfSBmcm9tICdAdXFsL2NvcmUvdHlwZSc7XG5cbmxldCBvcHRpb25zOiBVcWxPcHRpb25zO1xuY29uc3QgZGVmYXVsdE9wdGlvbnMgPSB7fSBhcyBjb25zdCBhcyBVcWxPcHRpb25zO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0T3B0aW9ucyhvcHRzOiBVcWxPcHRpb25zKTogdm9pZCB7XG4gIG9wdGlvbnMgPSB7IC4uLmRlZmF1bHRPcHRpb25zLCAuLi5vcHRzIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcHRpb25zKCk6IFVxbE9wdGlvbnMge1xuICByZXR1cm4gb3B0aW9ucyA/PyB7IC4uLmRlZmF1bHRPcHRpb25zIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRRdWVyaWVyUG9vbCgpOiBRdWVyaWVyUG9vbCB7XG4gIGNvbnN0IG9wdGlvbnMgPSBnZXRPcHRpb25zKCk7XG4gIGlmICghb3B0aW9ucy5xdWVyaWVyUG9vbCkge1xuICAgIHRocm93IFR5cGVFcnJvcihgJ3F1ZXJpZXJQb29sJyBoYXMgdG8gYmUgcGFzc2VkIHZpYSAnc2V0T3B0aW9ucydgKTtcbiAgfVxuICByZXR1cm4gb3B0aW9ucy5xdWVyaWVyUG9vbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFF1ZXJpZXIoKTogUHJvbWlzZTxRdWVyaWVyPiB7XG4gIHJldHVybiBnZXRRdWVyaWVyUG9vbCgpLmdldFF1ZXJpZXIoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlcG9zaXRvcnk8RT4oZW50aXR5OiBUeXBlPEU+LCBxdWVyaWVyOiBRdWVyaWVyKTogUmVwb3NpdG9yeTxFPiB7XG4gIHJldHVybiBuZXcgR2VuZXJpY1JlcG9zaXRvcnkoZW50aXR5LCBxdWVyaWVyKTtcbn1cbiJdfQ==
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUF5RDtBQUd6RCxJQUFJLE9BQW1CLENBQUM7QUFDeEIsTUFBTSxjQUFjLEdBQUcsRUFBeUIsQ0FBQztBQUVqRCxTQUFnQixVQUFVLENBQUMsSUFBZ0I7SUFDekMsT0FBTyxHQUFHLEVBQUUsR0FBRyxjQUFjLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztBQUMzQyxDQUFDO0FBRkQsZ0NBRUM7QUFFRCxTQUFnQixVQUFVO0lBQ3hCLE9BQU8sT0FBTyxJQUFJLEVBQUUsR0FBRyxjQUFjLEVBQUUsQ0FBQztBQUMxQyxDQUFDO0FBRkQsZ0NBRUM7QUFFRCxTQUFnQixjQUFjO0lBQzVCLE1BQU0sT0FBTyxHQUFHLFVBQVUsRUFBRSxDQUFDO0lBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFO1FBQ3hCLE1BQU0sU0FBUyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7S0FDcEU7SUFDRCxPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQUM7QUFDN0IsQ0FBQztBQU5ELHdDQU1DO0FBRUQsU0FBZ0IsVUFBVTtJQUN4QixPQUFPLGNBQWMsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDO0FBQ3ZDLENBQUM7QUFGRCxnQ0FFQztBQUVELFNBQWdCLGFBQWEsQ0FBSSxNQUFlLEVBQUUsT0FBZ0I7SUFDaEUsT0FBTyxJQUFJLDhCQUFpQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNoRCxDQUFDO0FBRkQsc0NBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHZW5lcmljUmVwb3NpdG9yeSB9IGZyb20gJ0B1cWwvY29yZS9yZXBvc2l0b3J5JztcbmltcG9ydCB7IFF1ZXJpZXIsIFF1ZXJpZXJQb29sLCBSZXBvc2l0b3J5LCBUeXBlLCBVcWxPcHRpb25zIH0gZnJvbSAnQHVxbC9jb3JlL3R5cGUnO1xuXG5sZXQgb3B0aW9uczogVXFsT3B0aW9ucztcbmNvbnN0IGRlZmF1bHRPcHRpb25zID0ge30gYXMgY29uc3QgYXMgVXFsT3B0aW9ucztcblxuZXhwb3J0IGZ1bmN0aW9uIHNldE9wdGlvbnMob3B0czogVXFsT3B0aW9ucyk6IHZvaWQge1xuICBvcHRpb25zID0geyAuLi5kZWZhdWx0T3B0aW9ucywgLi4ub3B0cyB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3B0aW9ucygpOiBVcWxPcHRpb25zIHtcbiAgcmV0dXJuIG9wdGlvbnMgPz8geyAuLi5kZWZhdWx0T3B0aW9ucyB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UXVlcmllclBvb2woKTogUXVlcmllclBvb2wge1xuICBjb25zdCBvcHRpb25zID0gZ2V0T3B0aW9ucygpO1xuICBpZiAoIW9wdGlvbnMucXVlcmllclBvb2wpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoYCdxdWVyaWVyUG9vbCcgaGFzIHRvIGJlIHBhc3NlZCB2aWEgJ3NldE9wdGlvbnMnYCk7XG4gIH1cbiAgcmV0dXJuIG9wdGlvbnMucXVlcmllclBvb2w7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRRdWVyaWVyKCk6IFByb21pc2U8UXVlcmllcj4ge1xuICByZXR1cm4gZ2V0UXVlcmllclBvb2woKS5nZXRRdWVyaWVyKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXBvc2l0b3J5PEU+KGVudGl0eTogVHlwZTxFPiwgcXVlcmllcjogUXVlcmllcik6IFJlcG9zaXRvcnk8RT4ge1xuICByZXR1cm4gbmV3IEdlbmVyaWNSZXBvc2l0b3J5KGVudGl0eSwgcXVlcmllcik7XG59XG4iXX0=
@@ -0,0 +1 @@
1
+ export {};
@@ -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.80",
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",
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.2",
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
+ }