@uql/core 0.4.81 → 0.4.84

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 (49) hide show
  1. package/README.md +36 -51
  2. package/dialect/abstractSqlDialect-spec.d.ts +49 -0
  3. package/dialect/abstractSqlDialect-spec.js +765 -0
  4. package/dialect/mysqlDialect.spec.d.ts +6 -0
  5. package/dialect/mysqlDialect.spec.js +33 -0
  6. package/dialect/postgresDialect.spec.d.ts +1 -0
  7. package/dialect/postgresDialect.spec.js +139 -0
  8. package/dialect/sqliteDialect.spec.d.ts +1 -0
  9. package/dialect/sqliteDialect.spec.js +12 -0
  10. package/entity/decorator/definition.js +18 -18
  11. package/entity/decorator/definition.spec.d.ts +1 -0
  12. package/entity/decorator/definition.spec.js +725 -0
  13. package/entity/decorator/relation.spec.d.ts +1 -0
  14. package/entity/decorator/relation.spec.js +55 -0
  15. package/options.spec.d.ts +1 -0
  16. package/options.spec.js +50 -0
  17. package/package.json +3 -3
  18. package/querier/abstractQuerier-it.d.ts +41 -0
  19. package/querier/abstractQuerier-it.js +410 -0
  20. package/querier/abstractSqlQuerier-it.d.ts +9 -0
  21. package/querier/abstractSqlQuerier-it.js +19 -0
  22. package/querier/abstractSqlQuerier-spec.d.ts +53 -0
  23. package/querier/abstractSqlQuerier-spec.js +607 -0
  24. package/querier/decorator/injectQuerier.spec.d.ts +1 -0
  25. package/querier/decorator/injectQuerier.spec.js +108 -0
  26. package/querier/decorator/transactional.spec.d.ts +1 -0
  27. package/querier/decorator/transactional.spec.js +241 -0
  28. package/repository/genericRepository.spec.d.ts +1 -0
  29. package/repository/genericRepository.spec.js +86 -0
  30. package/test/entityMock.d.ts +180 -0
  31. package/test/entityMock.js +451 -0
  32. package/test/index.d.ts +3 -0
  33. package/test/index.js +7 -0
  34. package/test/it.util.d.ts +4 -0
  35. package/test/it.util.js +60 -0
  36. package/test/spec.util.d.ts +13 -0
  37. package/test/spec.util.js +54 -0
  38. package/type/entity.d.ts +15 -20
  39. package/type/entity.js +1 -1
  40. package/type/utility.d.ts +1 -1
  41. package/type/utility.js +1 -1
  42. package/util/dialect.util.spec.d.ts +1 -0
  43. package/util/dialect.util.spec.js +23 -0
  44. package/util/object.util.spec.d.ts +1 -0
  45. package/util/object.util.spec.js +26 -0
  46. package/util/sql.util.spec.d.ts +1 -0
  47. package/util/sql.util.spec.js +164 -0
  48. package/util/string.util.spec.d.ts +1 -0
  49. package/util/string.util.spec.js +26 -0
@@ -0,0 +1,4 @@
1
+ import { AbstractSqlQuerier } from '@uql/core/querier';
2
+ export declare function createTables(querier: AbstractSqlQuerier, primaryKeyType: string): Promise<void>;
3
+ export declare function dropTables(querier: AbstractSqlQuerier): Promise<void>;
4
+ export declare function clearTables(querier: AbstractSqlQuerier): Promise<void>;
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.clearTables = exports.dropTables = exports.createTables = void 0;
4
+ const entity_1 = require("@uql/core/entity");
5
+ const util_1 = require("@uql/core/util");
6
+ async function createTables(querier, primaryKeyType) {
7
+ const entities = (0, entity_1.getEntities)();
8
+ await Promise.all(entities.map((entity) => {
9
+ const sql = getDdlForTable(entity, querier, primaryKeyType);
10
+ return querier.run(sql);
11
+ }));
12
+ }
13
+ exports.createTables = createTables;
14
+ async function dropTables(querier) {
15
+ const entities = (0, entity_1.getEntities)();
16
+ await Promise.all(entities.map((entity) => {
17
+ const meta = (0, entity_1.getMeta)(entity);
18
+ const sql = `DROP TABLE IF EXISTS ${querier.dialect.escapeId(meta.name)}`;
19
+ return querier.run(sql);
20
+ }));
21
+ }
22
+ exports.dropTables = dropTables;
23
+ async function clearTables(querier) {
24
+ const entities = (0, entity_1.getEntities)();
25
+ await Promise.all(entities.map((entity) => {
26
+ const sql = querier.dialect.delete(entity, {}, { softDelete: false });
27
+ return querier.run(sql);
28
+ }));
29
+ }
30
+ exports.clearTables = clearTables;
31
+ function getDdlForTable(entity, querier, primaryKeyType) {
32
+ const meta = (0, entity_1.getMeta)(entity);
33
+ let sql = `CREATE TABLE ${querier.dialect.escapeId(meta.name)} (\n\t`;
34
+ const insertableIdType = 'VARCHAR(36)';
35
+ const defaultType = 'VARCHAR(50)';
36
+ const columns = (0, util_1.getKeys)(meta.fields).map((key) => {
37
+ const field = meta.fields[key];
38
+ let propSql = querier.dialect.escapeId(field.name) + ' ';
39
+ if (field.isId) {
40
+ propSql += field.onInsert ? `${insertableIdType} PRIMARY KEY` : primaryKeyType;
41
+ }
42
+ else {
43
+ if (field.type === Number) {
44
+ propSql += 'BIGINT';
45
+ }
46
+ else if (field.type === Date) {
47
+ propSql += 'TIMESTAMP';
48
+ }
49
+ else {
50
+ propSql += defaultType;
51
+ }
52
+ }
53
+ return propSql;
54
+ });
55
+ sql += columns.join(',\n\t');
56
+ sql += `\n);`;
57
+ // log('sql', sql);
58
+ return sql;
59
+ }
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXQudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L2l0LnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQXdEO0FBRXhELHlDQUF5QztBQUdsQyxLQUFLLFVBQVUsWUFBWSxDQUFDLE9BQTJCLEVBQUUsY0FBc0I7SUFDcEYsTUFBTSxRQUFRLEdBQUcsSUFBQSxvQkFBVyxHQUFFLENBQUM7SUFDL0IsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtRQUN0QixNQUFNLEdBQUcsR0FBRyxjQUFjLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQztRQUM1RCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztBQUNKLENBQUM7QUFSRCxvQ0FRQztBQUVNLEtBQUssVUFBVSxVQUFVLENBQUMsT0FBMkI7SUFDMUQsTUFBTSxRQUFRLEdBQUcsSUFBQSxvQkFBVyxHQUFFLENBQUM7SUFDL0IsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtRQUN0QixNQUFNLElBQUksR0FBRyxJQUFBLGdCQUFPLEVBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0IsTUFBTSxHQUFHLEdBQUcsd0JBQXdCLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzFFLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQixDQUFDLENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQztBQVRELGdDQVNDO0FBRU0sS0FBSyxVQUFVLFdBQVcsQ0FBQyxPQUEyQjtJQUMzRCxNQUFNLFFBQVEsR0FBRyxJQUFBLG9CQUFXLEdBQUUsQ0FBQztJQUMvQixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1FBQ3RCLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN0RSxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztBQUNKLENBQUM7QUFSRCxrQ0FRQztBQUVELFNBQVMsY0FBYyxDQUFJLE1BQWUsRUFBRSxPQUEyQixFQUFFLGNBQXNCO0lBQzdGLE1BQU0sSUFBSSxHQUFHLElBQUEsZ0JBQU8sRUFBQyxNQUFNLENBQUMsQ0FBQztJQUU3QixJQUFJLEdBQUcsR0FBRyxnQkFBZ0IsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFFdEUsTUFBTSxnQkFBZ0IsR0FBRyxhQUFhLENBQUM7SUFDdkMsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDO0lBRWxDLE1BQU0sT0FBTyxHQUFHLElBQUEsY0FBTyxFQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUMvQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLElBQUksT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDekQsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFO1lBQ2QsT0FBTyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsZ0JBQWdCLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDO1NBQ2hGO2FBQU07WUFDTCxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO2dCQUN6QixPQUFPLElBQUksUUFBUSxDQUFDO2FBQ3JCO2lCQUFNLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxJQUFJLEVBQUU7Z0JBQzlCLE9BQU8sSUFBSSxXQUFXLENBQUM7YUFDeEI7aUJBQU07Z0JBQ0wsT0FBTyxJQUFJLFdBQVcsQ0FBQzthQUN4QjtTQUNGO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQyxDQUFDLENBQUM7SUFFSCxHQUFHLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QixHQUFHLElBQUksTUFBTSxDQUFDO0lBRWQsbUJBQW1CO0lBRW5CLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldEVudGl0aWVzLCBnZXRNZXRhIH0gZnJvbSAnQHVxbC9jb3JlL2VudGl0eSc7XG5pbXBvcnQgeyBUeXBlIH0gZnJvbSAnQHVxbC9jb3JlL3R5cGUnO1xuaW1wb3J0IHsgZ2V0S2V5cyB9IGZyb20gJ0B1cWwvY29yZS91dGlsJztcbmltcG9ydCB7IEFic3RyYWN0U3FsUXVlcmllciB9IGZyb20gJ0B1cWwvY29yZS9xdWVyaWVyJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVRhYmxlcyhxdWVyaWVyOiBBYnN0cmFjdFNxbFF1ZXJpZXIsIHByaW1hcnlLZXlUeXBlOiBzdHJpbmcpIHtcbiAgY29uc3QgZW50aXRpZXMgPSBnZXRFbnRpdGllcygpO1xuICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICBlbnRpdGllcy5tYXAoKGVudGl0eSkgPT4ge1xuICAgICAgY29uc3Qgc3FsID0gZ2V0RGRsRm9yVGFibGUoZW50aXR5LCBxdWVyaWVyLCBwcmltYXJ5S2V5VHlwZSk7XG4gICAgICByZXR1cm4gcXVlcmllci5ydW4oc3FsKTtcbiAgICB9KVxuICApO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZHJvcFRhYmxlcyhxdWVyaWVyOiBBYnN0cmFjdFNxbFF1ZXJpZXIpIHtcbiAgY29uc3QgZW50aXRpZXMgPSBnZXRFbnRpdGllcygpO1xuICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICBlbnRpdGllcy5tYXAoKGVudGl0eSkgPT4ge1xuICAgICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICAgIGNvbnN0IHNxbCA9IGBEUk9QIFRBQkxFIElGIEVYSVNUUyAke3F1ZXJpZXIuZGlhbGVjdC5lc2NhcGVJZChtZXRhLm5hbWUpfWA7XG4gICAgICByZXR1cm4gcXVlcmllci5ydW4oc3FsKTtcbiAgICB9KVxuICApO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2xlYXJUYWJsZXMocXVlcmllcjogQWJzdHJhY3RTcWxRdWVyaWVyKSB7XG4gIGNvbnN0IGVudGl0aWVzID0gZ2V0RW50aXRpZXMoKTtcbiAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgZW50aXRpZXMubWFwKChlbnRpdHkpID0+IHtcbiAgICAgIGNvbnN0IHNxbCA9IHF1ZXJpZXIuZGlhbGVjdC5kZWxldGUoZW50aXR5LCB7fSwgeyBzb2Z0RGVsZXRlOiBmYWxzZSB9KTtcbiAgICAgIHJldHVybiBxdWVyaWVyLnJ1bihzcWwpO1xuICAgIH0pXG4gICk7XG59XG5cbmZ1bmN0aW9uIGdldERkbEZvclRhYmxlPEU+KGVudGl0eTogVHlwZTxFPiwgcXVlcmllcjogQWJzdHJhY3RTcWxRdWVyaWVyLCBwcmltYXJ5S2V5VHlwZTogc3RyaW5nKSB7XG4gIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG5cbiAgbGV0IHNxbCA9IGBDUkVBVEUgVEFCTEUgJHtxdWVyaWVyLmRpYWxlY3QuZXNjYXBlSWQobWV0YS5uYW1lKX0gKFxcblxcdGA7XG5cbiAgY29uc3QgaW5zZXJ0YWJsZUlkVHlwZSA9ICdWQVJDSEFSKDM2KSc7XG4gIGNvbnN0IGRlZmF1bHRUeXBlID0gJ1ZBUkNIQVIoNTApJztcblxuICBjb25zdCBjb2x1bW5zID0gZ2V0S2V5cyhtZXRhLmZpZWxkcykubWFwKChrZXkpID0+IHtcbiAgICBjb25zdCBmaWVsZCA9IG1ldGEuZmllbGRzW2tleV07XG4gICAgbGV0IHByb3BTcWwgPSBxdWVyaWVyLmRpYWxlY3QuZXNjYXBlSWQoZmllbGQubmFtZSkgKyAnICc7XG4gICAgaWYgKGZpZWxkLmlzSWQpIHtcbiAgICAgIHByb3BTcWwgKz0gZmllbGQub25JbnNlcnQgPyBgJHtpbnNlcnRhYmxlSWRUeXBlfSBQUklNQVJZIEtFWWAgOiBwcmltYXJ5S2V5VHlwZTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGZpZWxkLnR5cGUgPT09IE51bWJlcikge1xuICAgICAgICBwcm9wU3FsICs9ICdCSUdJTlQnO1xuICAgICAgfSBlbHNlIGlmIChmaWVsZC50eXBlID09PSBEYXRlKSB7XG4gICAgICAgIHByb3BTcWwgKz0gJ1RJTUVTVEFNUCc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwcm9wU3FsICs9IGRlZmF1bHRUeXBlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcHJvcFNxbDtcbiAgfSk7XG5cbiAgc3FsICs9IGNvbHVtbnMuam9pbignLFxcblxcdCcpO1xuICBzcWwgKz0gYFxcbik7YDtcblxuICAvLyBsb2coJ3NxbCcsIHNxbCk7XG5cbiAgcmV0dXJuIHNxbDtcbn1cbiJdfQ==
@@ -0,0 +1,13 @@
1
+ import type { Global } from '@jest/types';
2
+ export declare function createSpec<T extends Spec>(spec: T): void;
3
+ declare const hooks: {
4
+ readonly beforeAll: Global.HookBase;
5
+ readonly beforeEach: Global.HookBase;
6
+ readonly afterEach: Global.HookBase;
7
+ readonly afterAll: Global.HookBase;
8
+ };
9
+ declare type SpecHooks = Partial<typeof hooks>;
10
+ export declare type Spec = SpecHooks & {
11
+ readonly [k: string]: Global.It | any;
12
+ };
13
+ export {};
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createSpec = void 0;
4
+ const globals_1 = require("@jest/globals");
5
+ function createSpec(spec) {
6
+ const proto = Object.getPrototypeOf(spec);
7
+ let describeFn;
8
+ const specName = proto.constructor.name;
9
+ if (specName.startsWith('Fff')) {
10
+ describeFn = globals_1.fdescribe;
11
+ }
12
+ else if (specName.startsWith('Xxx')) {
13
+ describeFn = globals_1.xdescribe;
14
+ }
15
+ else {
16
+ describeFn = globals_1.describe;
17
+ }
18
+ describeFn(specName, () => createTestCases(spec));
19
+ }
20
+ exports.createSpec = createSpec;
21
+ function createTestCases(spec) {
22
+ let proto = Object.getPrototypeOf(spec);
23
+ const processedMethodsMap = {};
24
+ while (proto.constructor !== Object) {
25
+ for (const key of Object.getOwnPropertyNames(proto)) {
26
+ const isProcessed = processedMethodsMap[key];
27
+ processedMethodsMap[key] = true;
28
+ if (isProcessed || key === 'constructor' || typeof spec[key] !== 'function') {
29
+ continue;
30
+ }
31
+ const callback = spec[key].bind(spec);
32
+ if (hooks[key]) {
33
+ hooks[key](callback);
34
+ }
35
+ else if (key.startsWith('should')) {
36
+ (0, globals_1.it)(key, callback);
37
+ }
38
+ else if (key.startsWith('fffshould')) {
39
+ (0, globals_1.fit)(key, callback);
40
+ }
41
+ else if (key.startsWith('xxxshould')) {
42
+ (0, globals_1.xit)(key, callback);
43
+ }
44
+ }
45
+ proto = Object.getPrototypeOf(proto);
46
+ }
47
+ }
48
+ const hooks = {
49
+ beforeAll: globals_1.beforeAll,
50
+ beforeEach: globals_1.beforeEach,
51
+ afterEach: globals_1.afterEach,
52
+ afterAll: globals_1.afterAll,
53
+ };
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlYy51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3Qvc3BlYy51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUF5SDtBQUl6SCxTQUFnQixVQUFVLENBQWlCLElBQU87SUFDaEQsTUFBTSxLQUFLLEdBQXdCLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0QsSUFBSSxVQUErQixDQUFDO0lBQ3BDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO0lBRXhDLElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUM5QixVQUFVLEdBQUcsbUJBQVMsQ0FBQztLQUN4QjtTQUFNLElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNyQyxVQUFVLEdBQUcsbUJBQVMsQ0FBQztLQUN4QjtTQUFNO1FBQ0wsVUFBVSxHQUFHLGtCQUFRLENBQUM7S0FDdkI7SUFFRCxVQUFVLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3BELENBQUM7QUFkRCxnQ0FjQztBQUVELFNBQVMsZUFBZSxDQUFDLElBQVk7SUFDbkMsSUFBSSxLQUFLLEdBQXdCLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFN0QsTUFBTSxtQkFBbUIsR0FBMEIsRUFBRSxDQUFDO0lBRXRELE9BQU8sS0FBSyxDQUFDLFdBQVcsS0FBSyxNQUFNLEVBQUU7UUFDbkMsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDbkQsTUFBTSxXQUFXLEdBQUcsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDN0MsbUJBQW1CLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ2hDLElBQUksV0FBVyxJQUFJLEdBQUcsS0FBSyxhQUFhLElBQUksT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssVUFBVSxFQUFFO2dCQUMzRSxTQUFTO2FBQ1Y7WUFDRCxNQUFNLFFBQVEsR0FBa0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyRCxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDZCxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDdEI7aUJBQU0sSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUNuQyxJQUFBLFlBQUUsRUFBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7YUFDbkI7aUJBQU0sSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUN0QyxJQUFBLGFBQUcsRUFBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7YUFDcEI7aUJBQU0sSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUN0QyxJQUFBLGFBQUcsRUFBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7YUFDcEI7U0FDRjtRQUNELEtBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3RDO0FBQ0gsQ0FBQztBQUVELE1BQU0sS0FBSyxHQUFHO0lBQ1osU0FBUyxFQUFULG1CQUFTO0lBQ1QsVUFBVSxFQUFWLG9CQUFVO0lBQ1YsU0FBUyxFQUFULG1CQUFTO0lBQ1QsUUFBUSxFQUFSLGtCQUFRO0NBQ0EsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlc2NyaWJlLCBmZGVzY3JpYmUsIHhkZXNjcmliZSwgaXQsIGZpdCwgeGl0LCBiZWZvcmVBbGwsIGJlZm9yZUVhY2gsIGFmdGVyRWFjaCwgYWZ0ZXJBbGwgfSBmcm9tICdAamVzdC9nbG9iYWxzJztcblxuaW1wb3J0IHR5cGUgeyBHbG9iYWwgfSBmcm9tICdAamVzdC90eXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTcGVjPFQgZXh0ZW5kcyBTcGVjPihzcGVjOiBUKSB7XG4gIGNvbnN0IHByb3RvOiBGdW5jdGlvbkNvbnN0cnVjdG9yID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHNwZWMpO1xuICBsZXQgZGVzY3JpYmVGbjogR2xvYmFsLkRlc2NyaWJlQmFzZTtcbiAgY29uc3Qgc3BlY05hbWUgPSBwcm90by5jb25zdHJ1Y3Rvci5uYW1lO1xuXG4gIGlmIChzcGVjTmFtZS5zdGFydHNXaXRoKCdGZmYnKSkge1xuICAgIGRlc2NyaWJlRm4gPSBmZGVzY3JpYmU7XG4gIH0gZWxzZSBpZiAoc3BlY05hbWUuc3RhcnRzV2l0aCgnWHh4JykpIHtcbiAgICBkZXNjcmliZUZuID0geGRlc2NyaWJlO1xuICB9IGVsc2Uge1xuICAgIGRlc2NyaWJlRm4gPSBkZXNjcmliZTtcbiAgfVxuXG4gIGRlc2NyaWJlRm4oc3BlY05hbWUsICgpID0+IGNyZWF0ZVRlc3RDYXNlcyhzcGVjKSk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVRlc3RDYXNlcyhzcGVjOiBvYmplY3QpIHtcbiAgbGV0IHByb3RvOiBGdW5jdGlvbkNvbnN0cnVjdG9yID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHNwZWMpO1xuXG4gIGNvbnN0IHByb2Nlc3NlZE1ldGhvZHNNYXA6IHsgW2s6IHN0cmluZ106IHRydWUgfSA9IHt9O1xuXG4gIHdoaWxlIChwcm90by5jb25zdHJ1Y3RvciAhPT0gT2JqZWN0KSB7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMocHJvdG8pKSB7XG4gICAgICBjb25zdCBpc1Byb2Nlc3NlZCA9IHByb2Nlc3NlZE1ldGhvZHNNYXBba2V5XTtcbiAgICAgIHByb2Nlc3NlZE1ldGhvZHNNYXBba2V5XSA9IHRydWU7XG4gICAgICBpZiAoaXNQcm9jZXNzZWQgfHwga2V5ID09PSAnY29uc3RydWN0b3InIHx8IHR5cGVvZiBzcGVjW2tleV0gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCBjYWxsYmFjazogR2xvYmFsLlRlc3RGbiA9IHNwZWNba2V5XS5iaW5kKHNwZWMpO1xuICAgICAgaWYgKGhvb2tzW2tleV0pIHtcbiAgICAgICAgaG9va3Nba2V5XShjYWxsYmFjayk7XG4gICAgICB9IGVsc2UgaWYgKGtleS5zdGFydHNXaXRoKCdzaG91bGQnKSkge1xuICAgICAgICBpdChrZXksIGNhbGxiYWNrKTtcbiAgICAgIH0gZWxzZSBpZiAoa2V5LnN0YXJ0c1dpdGgoJ2ZmZnNob3VsZCcpKSB7XG4gICAgICAgIGZpdChrZXksIGNhbGxiYWNrKTtcbiAgICAgIH0gZWxzZSBpZiAoa2V5LnN0YXJ0c1dpdGgoJ3h4eHNob3VsZCcpKSB7XG4gICAgICAgIHhpdChrZXksIGNhbGxiYWNrKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YocHJvdG8pO1xuICB9XG59XG5cbmNvbnN0IGhvb2tzID0ge1xuICBiZWZvcmVBbGwsXG4gIGJlZm9yZUVhY2gsXG4gIGFmdGVyRWFjaCxcbiAgYWZ0ZXJBbGwsXG59IGFzIGNvbnN0O1xuXG50eXBlIFNwZWNIb29rcyA9IFBhcnRpYWw8dHlwZW9mIGhvb2tzPjtcblxuZXhwb3J0IHR5cGUgU3BlYyA9IFNwZWNIb29rcyAmIHtcbiAgcmVhZG9ubHkgW2s6IHN0cmluZ106IEdsb2JhbC5JdCB8IGFueTtcbn07XG4iXX0=
package/type/entity.d.ts CHANGED
@@ -1,11 +1,12 @@
1
1
  import { QueryRaw } from './query';
2
2
  import { Scalar, Type } from './utility';
3
3
  export declare const idKey: unique symbol;
4
- export declare type Key<E> = {
5
- readonly [K in keyof E]?: K & string;
6
- }[keyof E & string];
4
+ export declare type Key<E> = keyof E & string;
7
5
  export declare type FieldKey<E> = {
8
- readonly [K in Key<E>]?: E[K] extends Scalar ? K : never;
6
+ readonly [K in keyof E]: E[K] extends Scalar ? K : never;
7
+ }[Key<E>];
8
+ export declare type RelationKey<E> = {
9
+ readonly [K in keyof E]: E[K] extends Scalar ? never : K;
9
10
  }[Key<E>];
10
11
  export declare type FieldValue<E> = E[FieldKey<E>];
11
12
  export declare type IdKey<E> = E extends {
@@ -16,9 +17,6 @@ export declare type IdKey<E> = E extends {
16
17
  id?: unknown;
17
18
  } ? 'id' & FieldKey<E> : FieldKey<E>;
18
19
  export declare type IdValue<E> = E[IdKey<E>];
19
- export declare type RelationKey<E> = {
20
- readonly [K in Key<E>]?: E[K] extends Scalar ? never : K;
21
- }[Key<E>];
22
20
  export declare type RelationValue<E> = E[RelationKey<E>];
23
21
  export declare type EntityOptions = {
24
22
  readonly name?: string;
@@ -28,7 +26,7 @@ export declare type FieldOptions = {
28
26
  readonly name?: string;
29
27
  readonly isId?: true;
30
28
  readonly type?: any;
31
- readonly reference?: EntityGetter | ReferenceOptions;
29
+ readonly reference?: EntityGetter;
32
30
  readonly virtual?: QueryRaw;
33
31
  readonly onInsert?: OnFieldCallback;
34
32
  readonly onUpdate?: OnFieldCallback;
@@ -36,33 +34,30 @@ export declare type FieldOptions = {
36
34
  };
37
35
  export declare type OnFieldCallback = Scalar | QueryRaw | (() => Scalar | QueryRaw);
38
36
  export declare type EntityGetter<E = any> = () => Type<E>;
39
- export declare type ReferenceOptions<E = any> = {
40
- entity: EntityGetter<E>;
41
- };
42
37
  export declare type CascadeType = 'persist' | 'delete';
43
38
  export declare type RelationOptions<E = any> = {
44
39
  entity?: EntityGetter<E>;
45
- readonly cardinality?: RelationCardinality;
40
+ cardinality: RelationCardinality;
46
41
  readonly cascade?: boolean | CascadeType;
47
42
  mappedBy?: RelationMappedBy<E>;
48
43
  through?: EntityGetter<RelationValue<E>>;
49
44
  references?: RelationReferences;
50
45
  };
51
46
  declare type RelationOptionsOwner<E> = Pick<RelationOptions<E>, 'entity' | 'references' | 'cascade'>;
52
- declare type RelationOptionsInverseSide<E> = Pick<RelationOptions<E>, 'entity' | 'mappedBy' | 'cascade'>;
53
- declare type RelationOptionsThroughOwner<E> = Pick<RelationOptions<E>, 'entity' | 'through' | 'references' | 'cascade'>;
47
+ declare type RelationOptionsInverseSide<E> = Required<Pick<RelationOptions<E>, 'entity' | 'mappedBy'>> & Pick<RelationOptions<E>, 'cascade'>;
48
+ declare type RelationOptionsThroughOwner<E> = Required<Pick<RelationOptions<E>, 'entity'>> & Pick<RelationOptions<E>, 'through' | 'references' | 'cascade'>;
54
49
  export declare type RelationKeyMap<E> = {
55
- readonly [K in RelationKey<E>]: K;
50
+ readonly [K in keyof E]: K;
56
51
  };
57
- export declare type RelationKeyMapper<E> = (keyMap: RelationKeyMap<E>) => RelationKey<E>;
52
+ export declare type RelationKeyMapper<E> = (keyMap: RelationKeyMap<E>) => Key<E>;
58
53
  export declare type RelationReferences = {
59
- local: string;
60
- foreign: string;
54
+ readonly local: string;
55
+ readonly foreign: string;
61
56
  }[];
62
- export declare type RelationMappedBy<E> = RelationKey<E> | RelationKeyMapper<E>;
57
+ export declare type RelationMappedBy<E> = Key<E> | RelationKeyMapper<E>;
63
58
  export declare type RelationCardinality = '11' | 'm1' | '1m' | 'mm';
64
59
  export declare type RelationOneToOneOptions<E> = RelationOptionsOwner<E> | RelationOptionsInverseSide<E>;
65
- export declare type RelationOneToManyOptions<E> = RelationOptionsOwner<E> | RelationOptionsInverseSide<E> | RelationOptionsThroughOwner<E>;
60
+ export declare type RelationOneToManyOptions<E> = RelationOptionsInverseSide<E> | RelationOptionsThroughOwner<E>;
66
61
  export declare type RelationManyToOneOptions<E> = RelationOptionsOwner<E> | RelationOptionsInverseSide<E>;
67
62
  export declare type RelationManyToManyOptions<E> = RelationOptionsThroughOwner<E> | RelationOptionsInverseSide<E>;
68
63
  export declare type EntityMeta<E> = {
package/type/entity.js CHANGED
@@ -2,4 +2,4 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.idKey = void 0;
4
4
  exports.idKey = Symbol('idKey');
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGUvZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdhLFFBQUEsS0FBSyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJ5UmF3IH0gZnJvbSAnLi9xdWVyeSc7XG5pbXBvcnQgeyBTY2FsYXIsIFR5cGUgfSBmcm9tICcuL3V0aWxpdHknO1xuXG5leHBvcnQgY29uc3QgaWRLZXkgPSBTeW1ib2woJ2lkS2V5Jyk7XG5cbmV4cG9ydCB0eXBlIEtleTxFPiA9IHtcbiAgcmVhZG9ubHkgW0sgaW4ga2V5b2YgRV0/OiBLICYgc3RyaW5nO1xufVtrZXlvZiBFICYgc3RyaW5nXTtcblxuZXhwb3J0IHR5cGUgRmllbGRLZXk8RT4gPSB7XG4gIHJlYWRvbmx5IFtLIGluIEtleTxFPl0/OiBFW0tdIGV4dGVuZHMgU2NhbGFyID8gSyA6IG5ldmVyO1xufVtLZXk8RT5dO1xuXG5leHBvcnQgdHlwZSBGaWVsZFZhbHVlPEU+ID0gRVtGaWVsZEtleTxFPl07XG5cbmV4cG9ydCB0eXBlIElkS2V5PEU+ID0gRSBleHRlbmRzIHsgW2lkS2V5XT86IGluZmVyIEsgfVxuICA/IEsgJiBGaWVsZEtleTxFPlxuICA6IEUgZXh0ZW5kcyB7IF9pZD86IHVua25vd24gfVxuICA/ICdfaWQnICYgRmllbGRLZXk8RT5cbiAgOiBFIGV4dGVuZHMgeyBpZD86IHVua25vd24gfVxuICA/ICdpZCcgJiBGaWVsZEtleTxFPlxuICA6IEZpZWxkS2V5PEU+O1xuXG5leHBvcnQgdHlwZSBJZFZhbHVlPEU+ID0gRVtJZEtleTxFPl07XG5cbmV4cG9ydCB0eXBlIFJlbGF0aW9uS2V5PEU+ID0ge1xuICByZWFkb25seSBbSyBpbiBLZXk8RT5dPzogRVtLXSBleHRlbmRzIFNjYWxhciA/IG5ldmVyIDogSztcbn1bS2V5PEU+XTtcblxuZXhwb3J0IHR5cGUgUmVsYXRpb25WYWx1ZTxFPiA9IEVbUmVsYXRpb25LZXk8RT5dO1xuXG5leHBvcnQgdHlwZSBFbnRpdHlPcHRpb25zID0ge1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xuICByZWFkb25seSBzb2Z0RGVsZXRlPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIEZpZWxkT3B0aW9ucyA9IHtcbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgaXNJZD86IHRydWU7XG4gIHJlYWRvbmx5IHR5cGU/OiBhbnk7XG4gIHJlYWRvbmx5IHJlZmVyZW5jZT86IEVudGl0eUdldHRlciB8IFJlZmVyZW5jZU9wdGlvbnM7XG4gIHJlYWRvbmx5IHZpcnR1YWw/OiBRdWVyeVJhdztcbiAgcmVhZG9ubHkgb25JbnNlcnQ/OiBPbkZpZWxkQ2FsbGJhY2s7XG4gIHJlYWRvbmx5IG9uVXBkYXRlPzogT25GaWVsZENhbGxiYWNrO1xuICByZWFkb25seSBvbkRlbGV0ZT86IE9uRmllbGRDYWxsYmFjaztcbn07XG5cbmV4cG9ydCB0eXBlIE9uRmllbGRDYWxsYmFjayA9IFNjYWxhciB8IFF1ZXJ5UmF3IHwgKCgpID0+IFNjYWxhciB8IFF1ZXJ5UmF3KTtcblxuZXhwb3J0IHR5cGUgRW50aXR5R2V0dGVyPEUgPSBhbnk+ID0gKCkgPT4gVHlwZTxFPjtcblxuZXhwb3J0IHR5cGUgUmVmZXJlbmNlT3B0aW9uczxFID0gYW55PiA9IHsgZW50aXR5OiBFbnRpdHlHZXR0ZXI8RT4gfTtcblxuZXhwb3J0IHR5cGUgQ2FzY2FkZVR5cGUgPSAncGVyc2lzdCcgfCAnZGVsZXRlJztcblxuZXhwb3J0IHR5cGUgUmVsYXRpb25PcHRpb25zPEUgPSBhbnk+ID0ge1xuICBlbnRpdHk/OiBFbnRpdHlHZXR0ZXI8RT47XG4gIHJlYWRvbmx5IGNhcmRpbmFsaXR5PzogUmVsYXRpb25DYXJkaW5hbGl0eTtcbiAgcmVhZG9ubHkgY2FzY2FkZT86IGJvb2xlYW4gfCBDYXNjYWRlVHlwZTtcbiAgbWFwcGVkQnk/OiBSZWxhdGlvbk1hcHBlZEJ5PEU+O1xuICB0aHJvdWdoPzogRW50aXR5R2V0dGVyPFJlbGF0aW9uVmFsdWU8RT4+O1xuICByZWZlcmVuY2VzPzogUmVsYXRpb25SZWZlcmVuY2VzO1xufTtcblxudHlwZSBSZWxhdGlvbk9wdGlvbnNPd25lcjxFPiA9IFBpY2s8UmVsYXRpb25PcHRpb25zPEU+LCAnZW50aXR5JyB8ICdyZWZlcmVuY2VzJyB8ICdjYXNjYWRlJz47XG50eXBlIFJlbGF0aW9uT3B0aW9uc0ludmVyc2VTaWRlPEU+ID0gUGljazxSZWxhdGlvbk9wdGlvbnM8RT4sICdlbnRpdHknIHwgJ21hcHBlZEJ5JyB8ICdjYXNjYWRlJz47XG50eXBlIFJlbGF0aW9uT3B0aW9uc1Rocm91Z2hPd25lcjxFPiA9IFBpY2s8UmVsYXRpb25PcHRpb25zPEU+LCAnZW50aXR5JyB8ICd0aHJvdWdoJyB8ICdyZWZlcmVuY2VzJyB8ICdjYXNjYWRlJz47XG5cbmV4cG9ydCB0eXBlIFJlbGF0aW9uS2V5TWFwPEU+ID0geyByZWFkb25seSBbSyBpbiBSZWxhdGlvbktleTxFPl06IEsgfTtcblxuZXhwb3J0IHR5cGUgUmVsYXRpb25LZXlNYXBwZXI8RT4gPSAoa2V5TWFwOiBSZWxhdGlvbktleU1hcDxFPikgPT4gUmVsYXRpb25LZXk8RT47XG5cbmV4cG9ydCB0eXBlIFJlbGF0aW9uUmVmZXJlbmNlcyA9IHsgbG9jYWw6IHN0cmluZzsgZm9yZWlnbjogc3RyaW5nIH1bXTtcblxuZXhwb3J0IHR5cGUgUmVsYXRpb25NYXBwZWRCeTxFPiA9IFJlbGF0aW9uS2V5PEU+IHwgUmVsYXRpb25LZXlNYXBwZXI8RT47XG5cbmV4cG9ydCB0eXBlIFJlbGF0aW9uQ2FyZGluYWxpdHkgPSAnMTEnIHwgJ20xJyB8ICcxbScgfCAnbW0nO1xuXG5leHBvcnQgdHlwZSBSZWxhdGlvbk9uZVRvT25lT3B0aW9uczxFPiA9IFJlbGF0aW9uT3B0aW9uc093bmVyPEU+IHwgUmVsYXRpb25PcHRpb25zSW52ZXJzZVNpZGU8RT47XG5cbmV4cG9ydCB0eXBlIFJlbGF0aW9uT25lVG9NYW55T3B0aW9uczxFPiA9IFJlbGF0aW9uT3B0aW9uc093bmVyPEU+IHwgUmVsYXRpb25PcHRpb25zSW52ZXJzZVNpZGU8RT4gfCBSZWxhdGlvbk9wdGlvbnNUaHJvdWdoT3duZXI8RT47XG5cbmV4cG9ydCB0eXBlIFJlbGF0aW9uTWFueVRvT25lT3B0aW9uczxFPiA9IFJlbGF0aW9uT3B0aW9uc093bmVyPEU+IHwgUmVsYXRpb25PcHRpb25zSW52ZXJzZVNpZGU8RT47XG5cbmV4cG9ydCB0eXBlIFJlbGF0aW9uTWFueVRvTWFueU9wdGlvbnM8RT4gPSBSZWxhdGlvbk9wdGlvbnNUaHJvdWdoT3duZXI8RT4gfCBSZWxhdGlvbk9wdGlvbnNJbnZlcnNlU2lkZTxFPjtcblxuZXhwb3J0IHR5cGUgRW50aXR5TWV0YTxFPiA9IHtcbiAgcmVhZG9ubHkgZW50aXR5OiBUeXBlPEU+O1xuICBuYW1lPzogc3RyaW5nO1xuICBpZD86IElkS2V5PEU+O1xuICBzb2Z0RGVsZXRlPzogRmllbGRLZXk8RT47XG4gIGZpZWxkczoge1xuICAgIFtLIGluIEZpZWxkS2V5PEU+XT86IEZpZWxkT3B0aW9ucztcbiAgfTtcbiAgcmVsYXRpb25zOiB7XG4gICAgW0sgaW4gUmVsYXRpb25LZXk8RT5dPzogUmVsYXRpb25PcHRpb25zO1xuICB9O1xuICBwcm9jZXNzZWQ/OiBib29sZWFuO1xufTtcbiJdfQ==
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGUvZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdhLFFBQUEsS0FBSyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJ5UmF3IH0gZnJvbSAnLi9xdWVyeSc7XG5pbXBvcnQgeyBTY2FsYXIsIFR5cGUgfSBmcm9tICcuL3V0aWxpdHknO1xuXG5leHBvcnQgY29uc3QgaWRLZXkgPSBTeW1ib2woJ2lkS2V5Jyk7XG5cbmV4cG9ydCB0eXBlIEtleTxFPiA9IGtleW9mIEUgJiBzdHJpbmc7XG5cbmV4cG9ydCB0eXBlIEZpZWxkS2V5PEU+ID0ge1xuICByZWFkb25seSBbSyBpbiBrZXlvZiBFXTogRVtLXSBleHRlbmRzIFNjYWxhciA/IEsgOiBuZXZlcjtcbn1bS2V5PEU+XTtcblxuZXhwb3J0IHR5cGUgUmVsYXRpb25LZXk8RT4gPSB7XG4gIHJlYWRvbmx5IFtLIGluIGtleW9mIEVdOiBFW0tdIGV4dGVuZHMgU2NhbGFyID8gbmV2ZXIgOiBLO1xufVtLZXk8RT5dO1xuXG5leHBvcnQgdHlwZSBGaWVsZFZhbHVlPEU+ID0gRVtGaWVsZEtleTxFPl07XG5cbmV4cG9ydCB0eXBlIElkS2V5PEU+ID0gRSBleHRlbmRzIHsgW2lkS2V5XT86IGluZmVyIEsgfVxuICA/IEsgJiBGaWVsZEtleTxFPlxuICA6IEUgZXh0ZW5kcyB7IF9pZD86IHVua25vd24gfVxuICA/ICdfaWQnICYgRmllbGRLZXk8RT5cbiAgOiBFIGV4dGVuZHMgeyBpZD86IHVua25vd24gfVxuICA/ICdpZCcgJiBGaWVsZEtleTxFPlxuICA6IEZpZWxkS2V5PEU+O1xuXG5leHBvcnQgdHlwZSBJZFZhbHVlPEU+ID0gRVtJZEtleTxFPl07XG5cbmV4cG9ydCB0eXBlIFJlbGF0aW9uVmFsdWU8RT4gPSBFW1JlbGF0aW9uS2V5PEU+XTtcblxuZXhwb3J0IHR5cGUgRW50aXR5T3B0aW9ucyA9IHtcbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgc29mdERlbGV0ZT86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBGaWVsZE9wdGlvbnMgPSB7XG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGlzSWQ/OiB0cnVlO1xuICByZWFkb25seSB0eXBlPzogYW55O1xuICByZWFkb25seSByZWZlcmVuY2U/OiBFbnRpdHlHZXR0ZXI7XG4gIHJlYWRvbmx5IHZpcnR1YWw/OiBRdWVyeVJhdztcbiAgcmVhZG9ubHkgb25JbnNlcnQ/OiBPbkZpZWxkQ2FsbGJhY2s7XG4gIHJlYWRvbmx5IG9uVXBkYXRlPzogT25GaWVsZENhbGxiYWNrO1xuICByZWFkb25seSBvbkRlbGV0ZT86IE9uRmllbGRDYWxsYmFjaztcbn07XG5cbmV4cG9ydCB0eXBlIE9uRmllbGRDYWxsYmFjayA9IFNjYWxhciB8IFF1ZXJ5UmF3IHwgKCgpID0+IFNjYWxhciB8IFF1ZXJ5UmF3KTtcblxuZXhwb3J0IHR5cGUgRW50aXR5R2V0dGVyPEUgPSBhbnk+ID0gKCkgPT4gVHlwZTxFPjtcblxuZXhwb3J0IHR5cGUgQ2FzY2FkZVR5cGUgPSAncGVyc2lzdCcgfCAnZGVsZXRlJztcblxuZXhwb3J0IHR5cGUgUmVsYXRpb25PcHRpb25zPEUgPSBhbnk+ID0ge1xuICBlbnRpdHk/OiBFbnRpdHlHZXR0ZXI8RT47XG4gIGNhcmRpbmFsaXR5OiBSZWxhdGlvbkNhcmRpbmFsaXR5O1xuICByZWFkb25seSBjYXNjYWRlPzogYm9vbGVhbiB8IENhc2NhZGVUeXBlO1xuICBtYXBwZWRCeT86IFJlbGF0aW9uTWFwcGVkQnk8RT47XG4gIHRocm91Z2g/OiBFbnRpdHlHZXR0ZXI8UmVsYXRpb25WYWx1ZTxFPj47XG4gIHJlZmVyZW5jZXM/OiBSZWxhdGlvblJlZmVyZW5jZXM7XG59O1xuXG50eXBlIFJlbGF0aW9uT3B0aW9uc093bmVyPEU+ID0gUGljazxSZWxhdGlvbk9wdGlvbnM8RT4sICdlbnRpdHknIHwgJ3JlZmVyZW5jZXMnIHwgJ2Nhc2NhZGUnPjtcbnR5cGUgUmVsYXRpb25PcHRpb25zSW52ZXJzZVNpZGU8RT4gPSBSZXF1aXJlZDxQaWNrPFJlbGF0aW9uT3B0aW9uczxFPiwgJ2VudGl0eScgfCAnbWFwcGVkQnknPj4gJiBQaWNrPFJlbGF0aW9uT3B0aW9uczxFPiwgJ2Nhc2NhZGUnPjtcbnR5cGUgUmVsYXRpb25PcHRpb25zVGhyb3VnaE93bmVyPEU+ID0gUmVxdWlyZWQ8UGljazxSZWxhdGlvbk9wdGlvbnM8RT4sICdlbnRpdHknPj4gJiBQaWNrPFJlbGF0aW9uT3B0aW9uczxFPiwgJ3Rocm91Z2gnIHwgJ3JlZmVyZW5jZXMnIHwgJ2Nhc2NhZGUnPjtcblxuZXhwb3J0IHR5cGUgUmVsYXRpb25LZXlNYXA8RT4gPSB7IHJlYWRvbmx5IFtLIGluIGtleW9mIEVdOiBLIH07XG5cbmV4cG9ydCB0eXBlIFJlbGF0aW9uS2V5TWFwcGVyPEU+ID0gKGtleU1hcDogUmVsYXRpb25LZXlNYXA8RT4pID0+IEtleTxFPjtcblxuZXhwb3J0IHR5cGUgUmVsYXRpb25SZWZlcmVuY2VzID0geyByZWFkb25seSBsb2NhbDogc3RyaW5nOyByZWFkb25seSBmb3JlaWduOiBzdHJpbmcgfVtdO1xuXG5leHBvcnQgdHlwZSBSZWxhdGlvbk1hcHBlZEJ5PEU+ID0gS2V5PEU+IHwgUmVsYXRpb25LZXlNYXBwZXI8RT47XG5cbmV4cG9ydCB0eXBlIFJlbGF0aW9uQ2FyZGluYWxpdHkgPSAnMTEnIHwgJ20xJyB8ICcxbScgfCAnbW0nO1xuXG5leHBvcnQgdHlwZSBSZWxhdGlvbk9uZVRvT25lT3B0aW9uczxFPiA9IFJlbGF0aW9uT3B0aW9uc093bmVyPEU+IHwgUmVsYXRpb25PcHRpb25zSW52ZXJzZVNpZGU8RT47XG5cbmV4cG9ydCB0eXBlIFJlbGF0aW9uT25lVG9NYW55T3B0aW9uczxFPiA9IFJlbGF0aW9uT3B0aW9uc0ludmVyc2VTaWRlPEU+IHwgUmVsYXRpb25PcHRpb25zVGhyb3VnaE93bmVyPEU+O1xuXG5leHBvcnQgdHlwZSBSZWxhdGlvbk1hbnlUb09uZU9wdGlvbnM8RT4gPSBSZWxhdGlvbk9wdGlvbnNPd25lcjxFPiB8IFJlbGF0aW9uT3B0aW9uc0ludmVyc2VTaWRlPEU+O1xuXG5leHBvcnQgdHlwZSBSZWxhdGlvbk1hbnlUb01hbnlPcHRpb25zPEU+ID0gUmVsYXRpb25PcHRpb25zVGhyb3VnaE93bmVyPEU+IHwgUmVsYXRpb25PcHRpb25zSW52ZXJzZVNpZGU8RT47XG5cbmV4cG9ydCB0eXBlIEVudGl0eU1ldGE8RT4gPSB7XG4gIHJlYWRvbmx5IGVudGl0eTogVHlwZTxFPjtcbiAgbmFtZT86IHN0cmluZztcbiAgaWQ/OiBJZEtleTxFPjtcbiAgc29mdERlbGV0ZT86IEZpZWxkS2V5PEU+O1xuICBmaWVsZHM6IHtcbiAgICBbSyBpbiBGaWVsZEtleTxFPl0/OiBGaWVsZE9wdGlvbnM7XG4gIH07XG4gIHJlbGF0aW9uczoge1xuICAgIFtLIGluIFJlbGF0aW9uS2V5PEU+XT86IFJlbGF0aW9uT3B0aW9ucztcbiAgfTtcbiAgcHJvY2Vzc2VkPzogYm9vbGVhbjtcbn07XG4iXX0=
package/type/utility.d.ts CHANGED
@@ -4,7 +4,7 @@ export declare type BooleanLike = boolean | 0 | 1;
4
4
  export declare type MongoId = {
5
5
  toHexString: () => string;
6
6
  };
7
- export declare type Scalar = boolean | string | number | bigint | Symbol | Date | RegExp | Buffer | MongoId;
7
+ export declare type Scalar = string | number | boolean | bigint | Symbol | Date | RegExp | Buffer | MongoId;
8
8
  export declare type ExpandScalar<T> = null | (T extends Date ? Date | string : T);
9
9
  export declare type Writable<T> = {
10
10
  -readonly [K in keyof T]: T[K];
package/type/utility.js CHANGED
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlL3V0aWxpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFR5cGU8VD4gPSBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBUO1xuXG5leHBvcnQgdHlwZSBCb29sZWFuTGlrZSA9IGJvb2xlYW4gfCAwIHwgMTtcblxuZXhwb3J0IHR5cGUgTW9uZ29JZCA9IHtcbiAgdG9IZXhTdHJpbmc6ICgpID0+IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFNjYWxhciA9IGJvb2xlYW4gfCBzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQgfCBTeW1ib2wgfCBEYXRlIHwgUmVnRXhwIHwgQnVmZmVyIHwgTW9uZ29JZDtcblxuZXhwb3J0IHR5cGUgRXhwYW5kU2NhbGFyPFQ+ID0gbnVsbCB8IChUIGV4dGVuZHMgRGF0ZSA/IERhdGUgfCBzdHJpbmcgOiBUKTtcblxuZXhwb3J0IHR5cGUgV3JpdGFibGU8VD4gPSB7IC1yZWFkb25seSBbSyBpbiBrZXlvZiBUXTogVFtLXSB9O1xuXG5leHBvcnQgdHlwZSBVbnBhY2tlZDxUPiA9IFQgZXh0ZW5kcyAoaW5mZXIgVSlbXSA/IFUgOiBUIGV4dGVuZHMgKC4uLmFyZ3M6IGFueVtdKSA9PiBpbmZlciBVID8gVSA6IFQgZXh0ZW5kcyBQcm9taXNlPGluZmVyIFU+ID8gVSA6IFQ7XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlL3V0aWxpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFR5cGU8VD4gPSBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBUO1xuXG5leHBvcnQgdHlwZSBCb29sZWFuTGlrZSA9IGJvb2xlYW4gfCAwIHwgMTtcblxuZXhwb3J0IHR5cGUgTW9uZ29JZCA9IHtcbiAgdG9IZXhTdHJpbmc6ICgpID0+IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFNjYWxhciA9IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBiaWdpbnQgfCBTeW1ib2wgfCBEYXRlIHwgUmVnRXhwIHwgQnVmZmVyIHwgTW9uZ29JZDtcblxuZXhwb3J0IHR5cGUgRXhwYW5kU2NhbGFyPFQ+ID0gbnVsbCB8IChUIGV4dGVuZHMgRGF0ZSA/IERhdGUgfCBzdHJpbmcgOiBUKTtcblxuZXhwb3J0IHR5cGUgV3JpdGFibGU8VD4gPSB7IC1yZWFkb25seSBbSyBpbiBrZXlvZiBUXTogVFtLXSB9O1xuXG5leHBvcnQgdHlwZSBVbnBhY2tlZDxUPiA9IFQgZXh0ZW5kcyAoaW5mZXIgVSlbXSA/IFUgOiBUIGV4dGVuZHMgKC4uLmFyZ3M6IGFueVtdKSA9PiBpbmZlciBVID8gVSA6IFQgZXh0ZW5kcyBQcm9taXNlPGluZmVyIFU+ID8gVSA6IFQ7XG4iXX0=
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const decorator_1 = require("../entity/decorator");
4
+ const entityMock_1 = require("../test/entityMock");
5
+ const dialect_util_1 = require("./dialect.util");
6
+ const raw_1 = require("./raw");
7
+ it('augmentFilter empty', () => {
8
+ const meta = (0, decorator_1.getMeta)(entityMock_1.User);
9
+ expect((0, dialect_util_1.augmentFilter)(meta)).toEqual({});
10
+ expect((0, dialect_util_1.augmentFilter)(meta, {})).toEqual({});
11
+ expect((0, dialect_util_1.augmentFilter)(meta, {}, {})).toEqual({});
12
+ });
13
+ it('augmentFilter', () => {
14
+ const meta = (0, decorator_1.getMeta)(entityMock_1.User);
15
+ expect((0, dialect_util_1.augmentFilter)(meta, { name: 'a' }, { name: 'b' })).toEqual({ name: 'b' });
16
+ expect((0, dialect_util_1.augmentFilter)(meta, { name: 'a' }, { id: 1 })).toEqual({ name: 'a', id: 1 });
17
+ expect((0, dialect_util_1.augmentFilter)(meta, { name: 'a' }, { $and: [1, 2] })).toEqual({ name: 'a', $and: [1, 2] });
18
+ expect((0, dialect_util_1.augmentFilter)(meta, 1, { $or: [2, 3] })).toEqual({ id: 1, $or: [2, 3] });
19
+ const rawFilter = (0, raw_1.raw)(() => 'a > 1');
20
+ expect((0, dialect_util_1.augmentFilter)(meta, rawFilter, 1)).toEqual({ $and: [rawFilter], id: 1 });
21
+ expect((0, dialect_util_1.augmentFilter)(meta, 1, rawFilter)).toEqual({ id: 1, $and: [rawFilter] });
22
+ });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbGVjdC51dGlsLnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9kaWFsZWN0LnV0aWwuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG1EQUE4QztBQUM5QyxtREFBMEM7QUFDMUMsaURBQStDO0FBQy9DLCtCQUE0QjtBQUU1QixFQUFFLENBQUMscUJBQXFCLEVBQUUsR0FBRyxFQUFFO0lBQzdCLE1BQU0sSUFBSSxHQUFHLElBQUEsbUJBQU8sRUFBQyxpQkFBSSxDQUFDLENBQUM7SUFDM0IsTUFBTSxDQUFDLElBQUEsNEJBQWEsRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN4QyxNQUFNLENBQUMsSUFBQSw0QkFBYSxFQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM1QyxNQUFNLENBQUMsSUFBQSw0QkFBYSxFQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDbEQsQ0FBQyxDQUFDLENBQUM7QUFFSCxFQUFFLENBQUMsZUFBZSxFQUFFLEdBQUcsRUFBRTtJQUN2QixNQUFNLElBQUksR0FBRyxJQUFBLG1CQUFPLEVBQUMsaUJBQUksQ0FBQyxDQUFDO0lBQzNCLE1BQU0sQ0FBQyxJQUFBLDRCQUFhLEVBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNqRixNQUFNLENBQUMsSUFBQSw0QkFBYSxFQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwRixNQUFNLENBQUMsSUFBQSw0QkFBYSxFQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEcsTUFBTSxDQUFDLElBQUEsNEJBQWEsRUFBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoRixNQUFNLFNBQVMsR0FBRyxJQUFBLFNBQUcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQyxNQUFNLENBQUMsSUFBQSw0QkFBYSxFQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoRixNQUFNLENBQUMsSUFBQSw0QkFBYSxFQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNsRixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldE1ldGEgfSBmcm9tICcuLi9lbnRpdHkvZGVjb3JhdG9yJztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi90ZXN0L2VudGl0eU1vY2snO1xuaW1wb3J0IHsgYXVnbWVudEZpbHRlciB9IGZyb20gJy4vZGlhbGVjdC51dGlsJztcbmltcG9ydCB7IHJhdyB9IGZyb20gJy4vcmF3JztcblxuaXQoJ2F1Z21lbnRGaWx0ZXIgZW1wdHknLCAoKSA9PiB7XG4gIGNvbnN0IG1ldGEgPSBnZXRNZXRhKFVzZXIpO1xuICBleHBlY3QoYXVnbWVudEZpbHRlcihtZXRhKSkudG9FcXVhbCh7fSk7XG4gIGV4cGVjdChhdWdtZW50RmlsdGVyKG1ldGEsIHt9KSkudG9FcXVhbCh7fSk7XG4gIGV4cGVjdChhdWdtZW50RmlsdGVyKG1ldGEsIHt9LCB7fSkpLnRvRXF1YWwoe30pO1xufSk7XG5cbml0KCdhdWdtZW50RmlsdGVyJywgKCkgPT4ge1xuICBjb25zdCBtZXRhID0gZ2V0TWV0YShVc2VyKTtcbiAgZXhwZWN0KGF1Z21lbnRGaWx0ZXIobWV0YSwgeyBuYW1lOiAnYScgfSwgeyBuYW1lOiAnYicgfSkpLnRvRXF1YWwoeyBuYW1lOiAnYicgfSk7XG4gIGV4cGVjdChhdWdtZW50RmlsdGVyKG1ldGEsIHsgbmFtZTogJ2EnIH0sIHsgaWQ6IDEgfSkpLnRvRXF1YWwoeyBuYW1lOiAnYScsIGlkOiAxIH0pO1xuICBleHBlY3QoYXVnbWVudEZpbHRlcihtZXRhLCB7IG5hbWU6ICdhJyB9LCB7ICRhbmQ6IFsxLCAyXSB9KSkudG9FcXVhbCh7IG5hbWU6ICdhJywgJGFuZDogWzEsIDJdIH0pO1xuICBleHBlY3QoYXVnbWVudEZpbHRlcihtZXRhLCAxLCB7ICRvcjogWzIsIDNdIH0pKS50b0VxdWFsKHsgaWQ6IDEsICRvcjogWzIsIDNdIH0pO1xuICBjb25zdCByYXdGaWx0ZXIgPSByYXcoKCkgPT4gJ2EgPiAxJyk7XG4gIGV4cGVjdChhdWdtZW50RmlsdGVyKG1ldGEsIHJhd0ZpbHRlciwgMSkpLnRvRXF1YWwoeyAkYW5kOiBbcmF3RmlsdGVyXSwgaWQ6IDEgfSk7XG4gIGV4cGVjdChhdWdtZW50RmlsdGVyKG1ldGEsIDEsIHJhd0ZpbHRlcikpLnRvRXF1YWwoeyBpZDogMSwgJGFuZDogW3Jhd0ZpbHRlcl0gfSk7XG59KTtcbiJdfQ==
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const object_util_1 = require("./object.util");
4
+ it('clone', () => {
5
+ expect((0, object_util_1.clone)({})).toEqual({});
6
+ expect((0, object_util_1.clone)({ a: 1 })).toEqual({ a: 1 });
7
+ expect((0, object_util_1.clone)([])).toEqual([]);
8
+ expect((0, object_util_1.clone)([{ a: 1 }])).toEqual([{ a: 1 }]);
9
+ const source = [{ a: 1 }];
10
+ const cloned = (0, object_util_1.clone)(source);
11
+ expect(cloned[0]).not.toBe(source[0]);
12
+ expect(cloned).not.toBe(source);
13
+ expect(cloned[0]).toEqual(source[0]);
14
+ expect(cloned).toEqual(source);
15
+ });
16
+ it('hasKeys', () => {
17
+ expect((0, object_util_1.hasKeys)({})).toBe(false);
18
+ expect((0, object_util_1.hasKeys)({ a: 1 })).toBe(true);
19
+ });
20
+ it('getKeys', () => {
21
+ expect((0, object_util_1.getKeys)(undefined)).toEqual([]);
22
+ expect((0, object_util_1.getKeys)(null)).toEqual([]);
23
+ expect((0, object_util_1.getKeys)({})).toEqual([]);
24
+ expect((0, object_util_1.getKeys)({ a: 1 })).toEqual(['a']);
25
+ });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LnV0aWwuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL29iamVjdC51dGlsLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwrQ0FBd0Q7QUFFeEQsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7SUFDZixNQUFNLENBQUMsSUFBQSxtQkFBSyxFQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzlCLE1BQU0sQ0FBQyxJQUFBLG1CQUFLLEVBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLE1BQU0sQ0FBQyxJQUFBLG1CQUFLLEVBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDOUIsTUFBTSxDQUFDLElBQUEsbUJBQUssRUFBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUU5QyxNQUFNLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDMUIsTUFBTSxNQUFNLEdBQUcsSUFBQSxtQkFBSyxFQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRTdCLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNqQyxDQUFDLENBQUMsQ0FBQztBQUVILEVBQUUsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFO0lBQ2pCLE1BQU0sQ0FBQyxJQUFBLHFCQUFPLEVBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsTUFBTSxDQUFDLElBQUEscUJBQU8sRUFBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3ZDLENBQUMsQ0FBQyxDQUFDO0FBRUgsRUFBRSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUU7SUFDakIsTUFBTSxDQUFDLElBQUEscUJBQU8sRUFBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2QyxNQUFNLENBQUMsSUFBQSxxQkFBTyxFQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sQ0FBQyxJQUFBLHFCQUFPLEVBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEMsTUFBTSxDQUFDLElBQUEscUJBQU8sRUFBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUMzQyxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNsb25lLCBoYXNLZXlzLCBnZXRLZXlzIH0gZnJvbSAnLi9vYmplY3QudXRpbCc7XG5cbml0KCdjbG9uZScsICgpID0+IHtcbiAgZXhwZWN0KGNsb25lKHt9KSkudG9FcXVhbCh7fSk7XG4gIGV4cGVjdChjbG9uZSh7IGE6IDEgfSkpLnRvRXF1YWwoeyBhOiAxIH0pO1xuICBleHBlY3QoY2xvbmUoW10pKS50b0VxdWFsKFtdKTtcbiAgZXhwZWN0KGNsb25lKFt7IGE6IDEgfV0pKS50b0VxdWFsKFt7IGE6IDEgfV0pO1xuXG4gIGNvbnN0IHNvdXJjZSA9IFt7IGE6IDEgfV07XG4gIGNvbnN0IGNsb25lZCA9IGNsb25lKHNvdXJjZSk7XG5cbiAgZXhwZWN0KGNsb25lZFswXSkubm90LnRvQmUoc291cmNlWzBdKTtcbiAgZXhwZWN0KGNsb25lZCkubm90LnRvQmUoc291cmNlKTtcbiAgZXhwZWN0KGNsb25lZFswXSkudG9FcXVhbChzb3VyY2VbMF0pO1xuICBleHBlY3QoY2xvbmVkKS50b0VxdWFsKHNvdXJjZSk7XG59KTtcblxuaXQoJ2hhc0tleXMnLCAoKSA9PiB7XG4gIGV4cGVjdChoYXNLZXlzKHt9KSkudG9CZShmYWxzZSk7XG4gIGV4cGVjdChoYXNLZXlzKHsgYTogMSB9KSkudG9CZSh0cnVlKTtcbn0pO1xuXG5pdCgnZ2V0S2V5cycsICgpID0+IHtcbiAgZXhwZWN0KGdldEtleXModW5kZWZpbmVkKSkudG9FcXVhbChbXSk7XG4gIGV4cGVjdChnZXRLZXlzKG51bGwpKS50b0VxdWFsKFtdKTtcbiAgZXhwZWN0KGdldEtleXMoe30pKS50b0VxdWFsKFtdKTtcbiAgZXhwZWN0KGdldEtleXMoeyBhOiAxIH0pKS50b0VxdWFsKFsnYSddKTtcbn0pO1xuIl19
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const sql_util_1 = require("./sql.util");
4
+ it('flatObject', () => {
5
+ expect((0, sql_util_1.flatObject)(undefined)).toEqual({});
6
+ expect((0, sql_util_1.flatObject)(null)).toEqual({});
7
+ expect((0, sql_util_1.flatObject)({})).toEqual({});
8
+ const sort = { name: 1, measureUnit: { name: -1, category: { creator: { profile: { picture: 1 } } } } };
9
+ expect((0, sql_util_1.flatObject)(sort)).toEqual({ name: 1, 'measureUnit.name': -1, 'measureUnit.category.creator.profile.picture': 1 });
10
+ });
11
+ it('unflatObjects - empty', () => {
12
+ const res1 = (0, sql_util_1.unflatObjects)(undefined);
13
+ expect(res1).toBe(undefined);
14
+ const res2 = (0, sql_util_1.unflatObjects)([]);
15
+ expect(res2).toEqual([]);
16
+ });
17
+ it('unflatObjects', () => {
18
+ const source = [
19
+ {
20
+ id: 1,
21
+ name: 'Auxiliar',
22
+ address: null,
23
+ description: null,
24
+ createdAt: 1,
25
+ updatedAt: null,
26
+ creatorId: 1,
27
+ companyId: 1,
28
+ },
29
+ {
30
+ id: 2,
31
+ name: 'Principal',
32
+ address: null,
33
+ description: null,
34
+ createdAt: 1,
35
+ updatedAt: 1578759519913,
36
+ creatorId: 1,
37
+ companyId: 1,
38
+ },
39
+ ];
40
+ const result = (0, sql_util_1.unflatObjects)(source);
41
+ const expected = [
42
+ {
43
+ id: 1,
44
+ name: 'Auxiliar',
45
+ address: null,
46
+ description: null,
47
+ createdAt: 1,
48
+ updatedAt: null,
49
+ creatorId: 1,
50
+ companyId: 1,
51
+ },
52
+ {
53
+ id: 2,
54
+ name: 'Principal',
55
+ address: null,
56
+ description: null,
57
+ createdAt: 1,
58
+ updatedAt: 1578759519913,
59
+ creatorId: 1,
60
+ companyId: 1,
61
+ },
62
+ ];
63
+ expect(result).toEqual(expected);
64
+ });
65
+ it('unflatObjects deep', () => {
66
+ const source = [
67
+ {
68
+ id: 9,
69
+ buyPrice: 1000,
70
+ number: 10,
71
+ 'item.id': 1,
72
+ 'item.name': 'Arepa de Yuca y Queso x 6',
73
+ 'item.createdAt': 1,
74
+ 'item.buyLedgerAccount': 1,
75
+ 'item.saleLedgerAccount': 1,
76
+ 'item.tax': 1,
77
+ 'item.companyId': 1,
78
+ 'item.measureUnit': 1,
79
+ 'item.inventoryable': 1,
80
+ 'item.buyLedgerAccount.id': 1,
81
+ 'item.buyLedgerAccount.name': 'Ventas',
82
+ 'item.saleLedgerAccount.id': 1,
83
+ 'item.saleLedgerAccount.name': 'Ventas',
84
+ 'item.tax.id': 1,
85
+ 'item.tax.name': 'IVA 0%',
86
+ 'item.tax.percentage': 0,
87
+ 'item.tax.category.pk': '1',
88
+ 'item.tax.category.name': 'Impuestos',
89
+ 'item.tax.category.description': 'Nacionales',
90
+ 'item.measureUnit.id': 1,
91
+ 'item.measureUnit.name': 'Unidad',
92
+ 'item.creatorId': null,
93
+ 'item.creator.id': null,
94
+ 'item.creator.name': null,
95
+ },
96
+ {
97
+ id: 15,
98
+ buyPrice: 2000,
99
+ number: 20,
100
+ 'item.id': 2,
101
+ 'item.name': 'Pony Malta 2 litros',
102
+ 'item.createdAt': 1,
103
+ 'item.companyId': 1,
104
+ 'item.creatorId': 5,
105
+ 'item.creator.id': 5,
106
+ 'item.creator.name': 'Roshi Master',
107
+ },
108
+ ];
109
+ const result = (0, sql_util_1.unflatObjects)(source);
110
+ const expected = [
111
+ {
112
+ id: 9,
113
+ buyPrice: 1000,
114
+ number: 10,
115
+ item: {
116
+ id: 1,
117
+ name: 'Arepa de Yuca y Queso x 6',
118
+ createdAt: 1,
119
+ buyLedgerAccount: {
120
+ id: 1,
121
+ name: 'Ventas',
122
+ },
123
+ saleLedgerAccount: {
124
+ id: 1,
125
+ name: 'Ventas',
126
+ },
127
+ tax: {
128
+ id: 1,
129
+ name: 'IVA 0%',
130
+ percentage: 0,
131
+ category: {
132
+ pk: '1',
133
+ name: 'Impuestos',
134
+ description: 'Nacionales',
135
+ },
136
+ },
137
+ companyId: 1,
138
+ measureUnit: {
139
+ id: 1,
140
+ name: 'Unidad',
141
+ },
142
+ inventoryable: 1,
143
+ },
144
+ },
145
+ {
146
+ id: 15,
147
+ buyPrice: 2000,
148
+ number: 20,
149
+ item: {
150
+ id: 2,
151
+ name: 'Pony Malta 2 litros',
152
+ createdAt: 1,
153
+ companyId: 1,
154
+ creatorId: 5,
155
+ creator: {
156
+ id: 5,
157
+ name: 'Roshi Master',
158
+ },
159
+ },
160
+ },
161
+ ];
162
+ expect(result).toEqual(expected);
163
+ });
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FsLnV0aWwuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL3NxbC51dGlsLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSx5Q0FBdUQ7QUFFdkQsRUFBRSxDQUFDLFlBQVksRUFBRSxHQUFHLEVBQUU7SUFDcEIsTUFBTSxDQUFDLElBQUEscUJBQVUsRUFBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMxQyxNQUFNLENBQUMsSUFBQSxxQkFBVSxFQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLE1BQU0sQ0FBQyxJQUFBLHFCQUFVLEVBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbkMsTUFBTSxJQUFJLEdBQXVCLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDNUgsTUFBTSxDQUFDLElBQUEscUJBQVUsRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsOENBQThDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUMzSCxDQUFDLENBQUMsQ0FBQztBQUVILEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLEVBQUU7SUFDL0IsTUFBTSxJQUFJLEdBQUcsSUFBQSx3QkFBYSxFQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDN0Is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LElBQUksRUFBRSxxQkFBcUI7Z0JBQzNCLFNBQVMsRUFBRSxDQUFDO2dCQUNaLFNBQVMsRUFBRSxDQUFDO2dCQUNaLFNBQVMsRUFBRSxDQUFDO2dCQUNaLE9BQU8sRUFBRTtvQkFDUCxFQUFFLEVBQUUsQ0FBQztvQkFDTCxJQUFJLEVBQUUsY0FBYztpQkFDckI7YUFDRjtTQUNGO0tBQ0YsQ0FBQztJQUNGLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDbkMsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJdGVtLCBTdG9yZWhvdXNlLCBJdGVtQWRqdXN0bWVudCB9IGZyb20gJ0B1cWwvY29yZS90ZXN0JztcbmltcG9ydCB7IFF1ZXJ5U29ydE1hcCB9IGZyb20gJ0B1cWwvY29yZS90eXBlJztcbmltcG9ydCB7IGZsYXRPYmplY3QsIHVuZmxhdE9iamVjdHMgfSBmcm9tICcuL3NxbC51dGlsJztcblxuaXQoJ2ZsYXRPYmplY3QnLCAoKSA9PiB7XG4gIGV4cGVjdChmbGF0T2JqZWN0KHVuZGVmaW5lZCkpLnRvRXF1YWwoe30pO1xuICBleHBlY3QoZmxhdE9iamVjdChudWxsKSkudG9FcXVhbCh7fSk7XG4gIGV4cGVjdChmbGF0T2JqZWN0KHt9KSkudG9FcXVhbCh7fSk7XG4gIGNvbnN0IHNvcnQ6IFF1ZXJ5U29ydE1hcDxJdGVtPiA9IHsgbmFtZTogMSwgbWVhc3VyZVVuaXQ6IHsgbmFtZTogLTEsIGNhdGVnb3J5OiB7IGNyZWF0b3I6IHsgcHJvZmlsZTogeyBwaWN0dXJlOiAxIH0gfSB9IH0gfTtcbiAgZXhwZWN0KGZsYXRPYmplY3Qoc29ydCkpLnRvRXF1YWwoeyBuYW1lOiAxLCAnbWVhc3VyZVVuaXQubmFtZSc6IC0xLCAnbWVhc3VyZVVuaXQuY2F0ZWdvcnkuY3JlYXRvci5wcm9maWxlLnBpY3R1cmUnOiAxIH0pO1xufSk7XG5cbml0KCd1bmZsYXRPYmplY3RzIC0gZW1wdHknLCAoKSA9PiB7XG4gIGNvbnN0IHJlczEgPSB1bmZsYXRPYmplY3RzKHVuZGVmaW5lZCk7XG4gIGV4cGVjdChyZXMxKS50b0JlKHVuZGVmaW5lZCk7XG4gIGNvbnN0IHJlczIgPSB1bmZsYXRPYmplY3RzKFtdKTtcbiAgZXhwZWN0KHJlczIpLnRvRXF1YWwoW10pO1xufSk7XG5cbml0KCd1bmZsYXRPYmplY3RzJywgKCkgPT4ge1xuICBjb25zdCBzb3VyY2U6IFN0b3JlaG91c2VbXSA9IFtcbiAgICB7XG4gICAgICBpZDogMSxcbiAgICAgIG5hbWU6ICdBdXhpbGlhcicsXG4gICAgICBhZGRyZXNzOiBudWxsLFxuICAgICAgZGVzY3JpcHRpb246IG51bGwsXG4gICAgICBjcmVhdGVkQXQ6IDEsXG4gICAgICB1cGRhdGVkQXQ6IG51bGwsXG4gICAgICBjcmVhdG9ySWQ6IDEsXG4gICAgICBjb21wYW55SWQ6IDEsXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogMixcbiAgICAgIG5hbWU6ICdQcmluY2lwYWwnLFxuICAgICAgYWRkcmVzczogbnVsbCxcbiAgICAgIGRlc2NyaXB0aW9uOiBudWxsLFxuICAgICAgY3JlYXRlZEF0OiAxLFxuICAgICAgdXBkYXRlZEF0OiAxNTc4NzU5NTE5OTEzLFxuICAgICAgY3JlYXRvcklkOiAxLFxuICAgICAgY29tcGFueUlkOiAxLFxuICAgIH0sXG4gIF07XG4gIGNvbnN0IHJlc3VsdCA9IHVuZmxhdE9iamVjdHMoc291cmNlKTtcbiAgY29uc3QgZXhwZWN0ZWQ6IFN0b3JlaG91c2VbXSA9IFtcbiAgICB7XG4gICAgICBpZDogMSxcbiAgICAgIG5hbWU6ICdBdXhpbGlhcicsXG4gICAgICBhZGRyZXNzOiBudWxsLFxuICAgICAgZGVzY3JpcHRpb246IG51bGwsXG4gICAgICBjcmVhdGVkQXQ6IDEsXG4gICAgICB1cGRhdGVkQXQ6IG51bGwsXG4gICAgICBjcmVhdG9ySWQ6IDEsXG4gICAgICBjb21wYW55SWQ6IDEsXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogMixcbiAgICAgIG5hbWU6ICdQcmluY2lwYWwnLFxuICAgICAgYWRkcmVzczogbnVsbCxcbiAgICAgIGRlc2NyaXB0aW9uOiBudWxsLFxuICAgICAgY3JlYXRlZEF0OiAxLFxuICAgICAgdXBkYXRlZEF0OiAxNTc4NzU5NTE5OTEzLFxuICAgICAgY3JlYXRvcklkOiAxLFxuICAgICAgY29tcGFueUlkOiAxLFxuICAgIH0sXG4gIF07XG4gIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoZXhwZWN0ZWQpO1xufSk7XG5cbml0KCd1bmZsYXRPYmplY3RzIGRlZXAnLCAoKSA9PiB7XG4gIGNvbnN0IHNvdXJjZSA9IFtcbiAgICB7XG4gICAgICBpZDogOSxcbiAgICAgIGJ1eVByaWNlOiAxMDAwLFxuICAgICAgbnVtYmVyOiAxMCxcbiAgICAgICdpdGVtLmlkJzogMSxcbiAgICAgICdpdGVtLm5hbWUnOiAnQXJlcGEgZGUgWXVjYSB5IFF1ZXNvIHggNicsXG4gICAgICAnaXRlbS5jcmVhdGVkQXQnOiAxLFxuICAgICAgJ2l0ZW0uYnV5TGVkZ2VyQWNjb3VudCc6IDEsXG4gICAgICAnaXRlbS5zYWxlTGVkZ2VyQWNjb3VudCc6IDEsXG4gICAgICAnaXRlbS50YXgnOiAxLFxuICAgICAgJ2l0ZW0uY29tcGFueUlkJzogMSxcbiAgICAgICdpdGVtLm1lYXN1cmVVbml0JzogMSxcbiAgICAgICdpdGVtLmludmVudG9yeWFibGUnOiAxLFxuICAgICAgJ2l0ZW0uYnV5TGVkZ2VyQWNjb3VudC5pZCc6IDEsXG4gICAgICAnaXRlbS5idXlMZWRnZXJBY2NvdW50Lm5hbWUnOiAnVmVudGFzJyxcbiAgICAgICdpdGVtLnNhbGVMZWRnZXJBY2NvdW50LmlkJzogMSxcbiAgICAgICdpdGVtLnNhbGVMZWRnZXJBY2NvdW50Lm5hbWUnOiAnVmVudGFzJyxcbiAgICAgICdpdGVtLnRheC5pZCc6IDEsXG4gICAgICAnaXRlbS50YXgubmFtZSc6ICdJVkEgMCUnLFxuICAgICAgJ2l0ZW0udGF4LnBlcmNlbnRhZ2UnOiAwLFxuICAgICAgJ2l0ZW0udGF4LmNhdGVnb3J5LnBrJzogJzEnLFxuICAgICAgJ2l0ZW0udGF4LmNhdGVnb3J5Lm5hbWUnOiAnSW1wdWVzdG9zJyxcbiAgICAgICdpdGVtLnRheC5jYXRlZ29yeS5kZXNjcmlwdGlvbic6ICdOYWNpb25hbGVzJyxcbiAgICAgICdpdGVtLm1lYXN1cmVVbml0LmlkJzogMSxcbiAgICAgICdpdGVtLm1lYXN1cmVVbml0Lm5hbWUnOiAnVW5pZGFkJyxcbiAgICAgICdpdGVtLmNyZWF0b3JJZCc6IG51bGwgYXMgc3RyaW5nLFxuICAgICAgJ2l0ZW0uY3JlYXRvci5pZCc6IG51bGwgYXMgc3RyaW5nLFxuICAgICAgJ2l0ZW0uY3JlYXRvci5uYW1lJzogbnVsbCBhcyBzdHJpbmcsXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogMTUsXG4gICAgICBidXlQcmljZTogMjAwMCxcbiAgICAgIG51bWJlcjogMjAsXG4gICAgICAnaXRlbS5pZCc6IDIsXG4gICAgICAnaXRlbS5uYW1lJzogJ1BvbnkgTWFsdGEgMiBsaXRyb3MnLFxuICAgICAgJ2l0ZW0uY3JlYXRlZEF0JzogMSxcbiAgICAgICdpdGVtLmNvbXBhbnlJZCc6IDEsXG4gICAgICAnaXRlbS5jcmVhdG9ySWQnOiA1LFxuICAgICAgJ2l0ZW0uY3JlYXRvci5pZCc6IDUsXG4gICAgICAnaXRlbS5jcmVhdG9yLm5hbWUnOiAnUm9zaGkgTWFzdGVyJyxcbiAgICB9LFxuICBdO1xuICBjb25zdCByZXN1bHQgPSB1bmZsYXRPYmplY3RzKHNvdXJjZSBhcyBJdGVtW10pO1xuICBjb25zdCBleHBlY3RlZDogSXRlbUFkanVzdG1lbnRbXSA9IFtcbiAgICB7XG4gICAgICBpZDogOSxcbiAgICAgIGJ1eVByaWNlOiAxMDAwLFxuICAgICAgbnVtYmVyOiAxMCxcbiAgICAgIGl0ZW06IHtcbiAgICAgICAgaWQ6IDEsXG4gICAgICAgIG5hbWU6ICdBcmVwYSBkZSBZdWNhIHkgUXVlc28geCA2JyxcbiAgICAgICAgY3JlYXRlZEF0OiAxLFxuICAgICAgICBidXlMZWRnZXJBY2NvdW50OiB7XG4gICAgICAgICAgaWQ6IDEsXG4gICAgICAgICAgbmFtZTogJ1ZlbnRhcycsXG4gICAgICAgIH0sXG4gICAgICAgIHNhbGVMZWRnZXJBY2NvdW50OiB7XG4gICAgICAgICAgaWQ6IDEsXG4gICAgICAgICAgbmFtZTogJ1ZlbnRhcycsXG4gICAgICAgIH0sXG4gICAgICAgIHRheDoge1xuICAgICAgICAgIGlkOiAxLFxuICAgICAgICAgIG5hbWU6ICdJVkEgMCUnLFxuICAgICAgICAgIHBlcmNlbnRhZ2U6IDAsXG4gICAgICAgICAgY2F0ZWdvcnk6IHtcbiAgICAgICAgICAgIHBrOiAnMScsXG4gICAgICAgICAgICBuYW1lOiAnSW1wdWVzdG9zJyxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnTmFjaW9uYWxlcycsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgY29tcGFueUlkOiAxLFxuICAgICAgICBtZWFzdXJlVW5pdDoge1xuICAgICAgICAgIGlkOiAxLFxuICAgICAgICAgIG5hbWU6ICdVbmlkYWQnLFxuICAgICAgICB9LFxuICAgICAgICBpbnZlbnRvcnlhYmxlOiAxIGFzIGFueSBhcyBib29sZWFuLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiAxNSxcbiAgICAgIGJ1eVByaWNlOiAyMDAwLFxuICAgICAgbnVtYmVyOiAyMCxcbiAgICAgIGl0ZW06IHtcbiAgICAgICAgaWQ6IDIsXG4gICAgICAgIG5hbWU6ICdQb255IE1hbHRhIDIgbGl0cm9zJyxcbiAgICAgICAgY3JlYXRlZEF0OiAxLFxuICAgICAgICBjb21wYW55SWQ6IDEsXG4gICAgICAgIGNyZWF0b3JJZDogNSxcbiAgICAgICAgY3JlYXRvcjoge1xuICAgICAgICAgIGlkOiA1LFxuICAgICAgICAgIG5hbWU6ICdSb3NoaSBNYXN0ZXInLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICBdO1xuICBleHBlY3QocmVzdWx0KS50b0VxdWFsKGV4cGVjdGVkKTtcbn0pO1xuIl19
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const string_util_1 = require("./string.util");
4
+ it('kebabCase', () => {
5
+ const res1 = (0, string_util_1.kebabCase)('SomeWordsAndMore');
6
+ expect(res1).toBe('some-words-and-more');
7
+ const res2 = (0, string_util_1.kebabCase)('someWordsAndMore');
8
+ expect(res2).toBe('some-words-and-more');
9
+ });
10
+ it('upperFirst', () => {
11
+ const res1 = (0, string_util_1.upperFirst)('id');
12
+ expect(res1).toBe('Id');
13
+ const res2 = (0, string_util_1.upperFirst)('Id');
14
+ expect(res2).toBe('Id');
15
+ const res3 = (0, string_util_1.upperFirst)('idSomething');
16
+ expect(res3).toBe('IdSomething');
17
+ });
18
+ it('lowerFirst', () => {
19
+ const res1 = (0, string_util_1.lowerFirst)('id');
20
+ expect(res1).toBe('id');
21
+ const res2 = (0, string_util_1.lowerFirst)('Id');
22
+ expect(res2).toBe('id');
23
+ const res3 = (0, string_util_1.lowerFirst)('IdSomething');
24
+ expect(res3).toBe('idSomething');
25
+ });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLnV0aWwuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL3N0cmluZy51dGlsLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwrQ0FBa0U7QUFFbEUsRUFBRSxDQUFDLFdBQVcsRUFBRSxHQUFHLEVBQUU7SUFDbkIsTUFBTSxJQUFJLEdBQUcsSUFBQSx1QkFBUyxFQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDM0MsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sSUFBSSxHQUFHLElBQUEsdUJBQVMsRUFBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzNDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUMzQyxDQUFDLENBQUMsQ0FBQztBQUVILEVBQUUsQ0FBQyxZQUFZLEVBQUUsR0FBRyxFQUFFO0lBQ3BCLE1BQU0sSUFBSSxHQUFHLElBQUEsd0JBQVUsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLE1BQU0sSUFBSSxHQUFHLElBQUEsd0JBQVUsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLE1BQU0sSUFBSSxHQUFHLElBQUEsd0JBQVUsRUFBQyxhQUFhLENBQUMsQ0FBQztJQUN2QyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ25DLENBQUMsQ0FBQyxDQUFDO0FBRUgsRUFBRSxDQUFDLFlBQVksRUFBRSxHQUFHLEVBQUU7SUFDcEIsTUFBTSxJQUFJLEdBQUcsSUFBQSx3QkFBVSxFQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsTUFBTSxJQUFJLEdBQUcsSUFBQSx3QkFBVSxFQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsTUFBTSxJQUFJLEdBQUcsSUFBQSx3QkFBVSxFQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDbkMsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBrZWJhYkNhc2UsIGxvd2VyRmlyc3QsIHVwcGVyRmlyc3QgfSBmcm9tICcuL3N0cmluZy51dGlsJztcblxuaXQoJ2tlYmFiQ2FzZScsICgpID0+IHtcbiAgY29uc3QgcmVzMSA9IGtlYmFiQ2FzZSgnU29tZVdvcmRzQW5kTW9yZScpO1xuICBleHBlY3QocmVzMSkudG9CZSgnc29tZS13b3Jkcy1hbmQtbW9yZScpO1xuICBjb25zdCByZXMyID0ga2ViYWJDYXNlKCdzb21lV29yZHNBbmRNb3JlJyk7XG4gIGV4cGVjdChyZXMyKS50b0JlKCdzb21lLXdvcmRzLWFuZC1tb3JlJyk7XG59KTtcblxuaXQoJ3VwcGVyRmlyc3QnLCAoKSA9PiB7XG4gIGNvbnN0IHJlczEgPSB1cHBlckZpcnN0KCdpZCcpO1xuICBleHBlY3QocmVzMSkudG9CZSgnSWQnKTtcbiAgY29uc3QgcmVzMiA9IHVwcGVyRmlyc3QoJ0lkJyk7XG4gIGV4cGVjdChyZXMyKS50b0JlKCdJZCcpO1xuICBjb25zdCByZXMzID0gdXBwZXJGaXJzdCgnaWRTb21ldGhpbmcnKTtcbiAgZXhwZWN0KHJlczMpLnRvQmUoJ0lkU29tZXRoaW5nJyk7XG59KTtcblxuaXQoJ2xvd2VyRmlyc3QnLCAoKSA9PiB7XG4gIGNvbnN0IHJlczEgPSBsb3dlckZpcnN0KCdpZCcpO1xuICBleHBlY3QocmVzMSkudG9CZSgnaWQnKTtcbiAgY29uc3QgcmVzMiA9IGxvd2VyRmlyc3QoJ0lkJyk7XG4gIGV4cGVjdChyZXMyKS50b0JlKCdpZCcpO1xuICBjb25zdCByZXMzID0gbG93ZXJGaXJzdCgnSWRTb21ldGhpbmcnKTtcbiAgZXhwZWN0KHJlczMpLnRvQmUoJ2lkU29tZXRoaW5nJyk7XG59KTtcbiJdfQ==