@iamkirbki/database-handler-core 4.4.3 → 4.4.5

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 (28) hide show
  1. package/dist/abstract/Controller.js +18 -39
  2. package/dist/abstract/Model.d.ts.map +1 -1
  3. package/dist/abstract/Model.js +100 -98
  4. package/dist/abstract/SchemaTableBuilder.js +4 -1
  5. package/dist/abstract/model/ModelRelation.d.ts +4 -4
  6. package/dist/abstract/model/ModelRelation.d.ts.map +1 -1
  7. package/dist/abstract/model/ModelRelation.js +47 -49
  8. package/dist/base/Query.js +56 -79
  9. package/dist/base/Record.js +75 -90
  10. package/dist/base/Table.d.ts.map +1 -1
  11. package/dist/base/Table.js +130 -153
  12. package/dist/helpers/QueryBuilders/BaseQueryBuilders/BaseSelectQueryBuilder.js +7 -18
  13. package/dist/helpers/QueryBuilders/ExpressionBuilders/JsonAggregateExpression.js +5 -1
  14. package/dist/helpers/QueryBuilders/QueryDecorators/ExpressionDecorator.js +7 -18
  15. package/dist/helpers/QueryBuilders/QueryDecorators/GroupByDecorator.js +8 -19
  16. package/dist/helpers/QueryBuilders/QueryDecorators/JoinDecorator.js +26 -39
  17. package/dist/helpers/QueryBuilders/QueryDecorators/LimitDecorator.js +9 -20
  18. package/dist/helpers/QueryBuilders/QueryDecorators/OrderByDecorator.js +8 -19
  19. package/dist/helpers/QueryBuilders/QueryDecorators/WhereDecorator.js +9 -20
  20. package/dist/helpers/QueryBuilders/QueryStatementBuilder.js +87 -101
  21. package/dist/runtime/Repository.d.ts +1 -1
  22. package/dist/runtime/Repository.d.ts.map +1 -1
  23. package/dist/runtime/Repository.js +98 -102
  24. package/dist/types/model.d.ts +3 -0
  25. package/dist/types/model.d.ts.map +1 -1
  26. package/dist/types/table.d.ts +1 -0
  27. package/dist/types/table.d.ts.map +1 -1
  28. package/package.json +1 -1
@@ -1,12 +1,3 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import QueryDecorator from "./QueryDecorator.js";
11
2
  import QueryStatementBuilder from "../QueryStatementBuilder.js";
12
3
  export default class WhereDecorator extends QueryDecorator {
@@ -14,16 +5,14 @@ export default class WhereDecorator extends QueryDecorator {
14
5
  super(component);
15
6
  this.conditions = conditions;
16
7
  }
17
- build() {
18
- return __awaiter(this, void 0, void 0, function* () {
19
- var _a, _b;
20
- var _c;
21
- const context = yield this.component.build();
22
- const combinedConditions = [...QueryStatementBuilder.normalizeQueryConditions(this.conditions)];
23
- (_a = context.conditions) !== null && _a !== void 0 ? _a : (context.conditions = {});
24
- (_b = (_c = context.conditions).where) !== null && _b !== void 0 ? _b : (_c.where = []);
25
- context.conditions.where.push(...combinedConditions);
26
- return context;
27
- });
8
+ async build() {
9
+ var _a, _b;
10
+ var _c;
11
+ const context = await this.component.build();
12
+ const combinedConditions = [...QueryStatementBuilder.normalizeQueryConditions(this.conditions)];
13
+ (_a = context.conditions) !== null && _a !== void 0 ? _a : (context.conditions = {});
14
+ (_b = (_c = context.conditions).where) !== null && _b !== void 0 ? _b : (_c.where = []);
15
+ context.conditions.where.push(...combinedConditions);
16
+ return context;
28
17
  }
29
18
  }
@@ -1,12 +1,3 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import BaseSelectQueryBuilder from "./BaseQueryBuilders/BaseSelectQueryBuilder.js";
11
2
  import ExpressionDecorator from "./QueryDecorators/ExpressionDecorator.js";
12
3
  import QueryExpressionBuilder from "./QueryExpressionBuilder.js";
@@ -26,112 +17,104 @@ export default class QueryStatementBuilder {
26
17
  this._tableColumnsCache = tableColumnInformation;
27
18
  }
28
19
  }
29
- build() {
30
- return __awaiter(this, void 0, void 0, function* () {
31
- let sql = yield this.buildBaseLayer();
32
- if (this._layers.pretty) {
33
- sql = yield this.buildPrettyLayer(sql);
34
- }
35
- if (this._layers.final) {
36
- sql = yield this.buildFinalLayer(sql);
37
- }
38
- return sql;
39
- });
20
+ async build() {
21
+ let sql = await this.buildBaseLayer();
22
+ if (this._layers.pretty) {
23
+ sql = await this.buildPrettyLayer(sql);
24
+ }
25
+ if (this._layers.final) {
26
+ sql = await this.buildFinalLayer(sql);
27
+ }
28
+ return sql;
40
29
  }
41
- buildBaseLayer() {
42
- return __awaiter(this, void 0, void 0, function* () {
43
- var _a, _b, _c;
44
- var _d, _e;
45
- if (!this._layers.base.from) {
46
- throw new Error("Base layer must specify 'from' table name.");
30
+ async buildBaseLayer() {
31
+ var _a, _b, _c;
32
+ var _d, _e;
33
+ if (!this._layers.base.from) {
34
+ throw new Error("Base layer must specify 'from' table name.");
35
+ }
36
+ let builder = new BaseSelectQueryBuilder(this._layers.base.from, this._layers.base.select || [], this._layers.base.joinsSelect || [], this._layers.base.expressionsSelect || []);
37
+ if (this._layers.base.joins && this._layers.base.joins.length > 0) {
38
+ builder = new JoinDecorator(builder, { base: this._layers.base, pretty: this._layers.pretty, final: this._layers.final }, this._tableColumnsCache);
39
+ }
40
+ if (this._layers.base.expressions && this._layers.base.expressions.length > 0) {
41
+ const expressions = QueryExpressionBuilder.buildExpressionsPart(this._layers.base.expressions || []);
42
+ builder = new ExpressionDecorator(builder, expressions || []);
43
+ if (builder instanceof ExpressionDecorator) {
44
+ this._valueClauseKeywords = new Set([...this._valueClauseKeywords, ...builder.valueClauseKeywords]);
45
+ (_a = (_d = this._layers).pretty) !== null && _a !== void 0 ? _a : (_d.pretty = {});
46
+ (_b = (_e = this._layers).final) !== null && _b !== void 0 ? _b : (_e.final = {});
47
+ this._layers.pretty.where = this.addUnique(this._layers.pretty.where, builder.whereClauses);
48
+ this._layers.pretty.groupBy = this.addUnique(this._layers.pretty.groupBy, builder.groupByClauses);
49
+ this._layers.pretty.having = this.addUnique(this._layers.pretty.having, builder.havingClauses);
50
+ this._layers.base.orderBy = this.addUnique((_c = this._layers.base.orderBy) === null || _c === void 0 ? void 0 : _c.map(ob => ({ column: `${ob.column}`, direction: ob.direction })), builder.orderByClauses);
47
51
  }
48
- let builder = new BaseSelectQueryBuilder(this._layers.base.from, this._layers.base.select || [], this._layers.base.joinsSelect || [], this._layers.base.expressionsSelect || []);
49
- if (this._layers.base.joins && this._layers.base.joins.length > 0) {
50
- builder = new JoinDecorator(builder, { base: this._layers.base, pretty: this._layers.pretty, final: this._layers.final }, this._tableColumnsCache);
52
+ if (this._layers.base.where) {
53
+ builder = new WhereDecorator(builder, this._layers.base.joins ? QueryStatementBuilder.normalizeAndQualifyConditions(this._layers.base.where, this._layers.base.from) : this._layers.base.where);
51
54
  }
52
- if (this._layers.base.expressions && this._layers.base.expressions.length > 0) {
53
- const expressions = QueryExpressionBuilder.buildExpressionsPart(this._layers.base.expressions || []);
54
- builder = new ExpressionDecorator(builder, expressions || []);
55
+ }
56
+ else if (this._layers.base.where) {
57
+ builder = new WhereDecorator(builder, this._layers.base.joins ? QueryStatementBuilder.normalizeAndQualifyConditions(this._layers.base.where, this._layers.base.from) : this._layers.base.where);
58
+ }
59
+ if (this._layers.base.where) {
60
+ builder = new WhereDecorator(builder, this._layers.base.joins ? QueryStatementBuilder.normalizeAndQualifyConditions(this._layers.base.where, this._layers.base.from) : this._layers.base.where);
61
+ }
62
+ if (this._layers.base.orderBy) {
63
+ builder = new OrderByDecorator(builder, this._layers.base.orderBy);
64
+ }
65
+ this._contexts.base = await builder.build();
66
+ const renderer = new SqlRenderer(this._contexts.base);
67
+ return renderer.build();
68
+ }
69
+ async buildPrettyLayer(sql) {
70
+ var _a, _b, _c, _d, _e, _f, _g;
71
+ var _h;
72
+ let builder = new BaseSelectQueryBuilder(`( ${sql} ) AS BASE_QUERY`, [...((_a = this._contexts.base) === null || _a === void 0 ? void 0 : _a.select) || [], ...((_b = this._layers.pretty) === null || _b === void 0 ? void 0 : _b.select) || []], ((_d = (_c = this._contexts.base) === null || _c === void 0 ? void 0 : _c.joinsSelect) === null || _d === void 0 ? void 0 : _d.map(j => j.split("AS")[1].trim())) || []);
73
+ if (this._layers.pretty) {
74
+ const expressions = ((_e = this._layers.pretty.expressions) === null || _e === void 0 ? void 0 : _e.length)
75
+ ? QueryExpressionBuilder.buildExpressionsPart(this._layers.pretty.expressions)
76
+ : [];
77
+ if (expressions.length > 0) {
78
+ builder = new ExpressionDecorator(builder, expressions);
55
79
  if (builder instanceof ExpressionDecorator) {
56
- this._valueClauseKeywords = new Set([...this._valueClauseKeywords, ...builder.valueClauseKeywords]);
57
- (_a = (_d = this._layers).pretty) !== null && _a !== void 0 ? _a : (_d.pretty = {});
58
- (_b = (_e = this._layers).final) !== null && _b !== void 0 ? _b : (_e.final = {});
59
80
  this._layers.pretty.where = this.addUnique(this._layers.pretty.where, builder.whereClauses);
60
81
  this._layers.pretty.groupBy = this.addUnique(this._layers.pretty.groupBy, builder.groupByClauses);
61
82
  this._layers.pretty.having = this.addUnique(this._layers.pretty.having, builder.havingClauses);
62
- this._layers.base.orderBy = this.addUnique((_c = this._layers.base.orderBy) === null || _c === void 0 ? void 0 : _c.map(ob => ({ column: `${ob.column}`, direction: ob.direction })), builder.orderByClauses);
83
+ (_f = (_h = this._layers).final) !== null && _f !== void 0 ? _f : (_h.final = {});
84
+ this._layers.final.orderBy = this.addUnique((_g = this._layers.final.orderBy) === null || _g === void 0 ? void 0 : _g.map(ob => ({ column: `BASE_QUERY.${ob.column}`, direction: ob.direction })), builder.orderByClauses);
63
85
  }
64
- if (this._layers.base.where) {
65
- builder = new WhereDecorator(builder, this._layers.base.joins ? QueryStatementBuilder.normalizeAndQualifyConditions(this._layers.base.where, this._layers.base.from) : this._layers.base.where);
86
+ if (this._layers.pretty.where) {
87
+ builder = new WhereDecorator(builder, QueryStatementBuilder.normalizeAndQualifyConditions(this._layers.pretty.where, "BASE_QUERY", [], this._valueClauseKeywords));
66
88
  }
67
89
  }
68
- else if (this._layers.base.where) {
69
- builder = new WhereDecorator(builder, this._layers.base.joins ? QueryStatementBuilder.normalizeAndQualifyConditions(this._layers.base.where, this._layers.base.from) : this._layers.base.where);
90
+ else if (this._layers.pretty.where) {
91
+ builder = new WhereDecorator(builder, QueryStatementBuilder.normalizeAndQualifyConditions(this._layers.pretty.where, "BASE_QUERY", [], this._valueClauseKeywords));
70
92
  }
71
- if (this._layers.base.where) {
72
- builder = new WhereDecorator(builder, this._layers.base.joins ? QueryStatementBuilder.normalizeAndQualifyConditions(this._layers.base.where, this._layers.base.from) : this._layers.base.where);
93
+ if (this._layers.pretty.groupBy) {
94
+ builder = new GroupByDecorator(builder, this._layers.pretty.groupBy);
73
95
  }
74
- if (this._layers.base.orderBy) {
75
- builder = new OrderByDecorator(builder, this._layers.base.orderBy);
96
+ if (this._layers.pretty.having) {
97
+ builder = new WhereDecorator(builder, QueryStatementBuilder.normalizeAndQualifyConditions(this._layers.pretty.having, "BASE_QUERY"));
76
98
  }
77
- this._contexts.base = yield builder.build();
78
- const renderer = new SqlRenderer(this._contexts.base);
79
- return renderer.build();
80
- });
99
+ }
100
+ this._contexts.pretty = await builder.build();
101
+ const renderer = new SqlRenderer(this._contexts.pretty);
102
+ return renderer.build();
81
103
  }
82
- buildPrettyLayer(sql) {
83
- return __awaiter(this, void 0, void 0, function* () {
84
- var _a, _b, _c, _d, _e, _f, _g;
85
- var _h;
86
- let builder = new BaseSelectQueryBuilder(`( ${sql} ) AS BASE_QUERY`, [...((_a = this._contexts.base) === null || _a === void 0 ? void 0 : _a.select) || [], ...((_b = this._layers.pretty) === null || _b === void 0 ? void 0 : _b.select) || []], ((_d = (_c = this._contexts.base) === null || _c === void 0 ? void 0 : _c.joinsSelect) === null || _d === void 0 ? void 0 : _d.map(j => j.split("AS")[1].trim())) || []);
87
- if (this._layers.pretty) {
88
- const expressions = ((_e = this._layers.pretty.expressions) === null || _e === void 0 ? void 0 : _e.length)
89
- ? QueryExpressionBuilder.buildExpressionsPart(this._layers.pretty.expressions)
90
- : [];
91
- if (expressions.length > 0) {
92
- builder = new ExpressionDecorator(builder, expressions);
93
- if (builder instanceof ExpressionDecorator) {
94
- this._layers.pretty.where = this.addUnique(this._layers.pretty.where, builder.whereClauses);
95
- this._layers.pretty.groupBy = this.addUnique(this._layers.pretty.groupBy, builder.groupByClauses);
96
- this._layers.pretty.having = this.addUnique(this._layers.pretty.having, builder.havingClauses);
97
- (_f = (_h = this._layers).final) !== null && _f !== void 0 ? _f : (_h.final = {});
98
- this._layers.final.orderBy = this.addUnique((_g = this._layers.final.orderBy) === null || _g === void 0 ? void 0 : _g.map(ob => ({ column: `BASE_QUERY.${ob.column}`, direction: ob.direction })), builder.orderByClauses);
99
- }
100
- if (this._layers.pretty.where) {
101
- builder = new WhereDecorator(builder, QueryStatementBuilder.normalizeAndQualifyConditions(this._layers.pretty.where, "BASE_QUERY", [], this._valueClauseKeywords));
102
- }
103
- }
104
- else if (this._layers.pretty.where) {
105
- builder = new WhereDecorator(builder, QueryStatementBuilder.normalizeAndQualifyConditions(this._layers.pretty.where, "BASE_QUERY", [], this._valueClauseKeywords));
106
- }
107
- if (this._layers.pretty.groupBy) {
108
- builder = new GroupByDecorator(builder, this._layers.pretty.groupBy);
109
- }
110
- if (this._layers.pretty.having) {
111
- builder = new WhereDecorator(builder, QueryStatementBuilder.normalizeAndQualifyConditions(this._layers.pretty.having, "BASE_QUERY"));
112
- }
104
+ async buildFinalLayer(sql) {
105
+ var _a;
106
+ let builder = new BaseSelectQueryBuilder(`( ${sql} ) AS PRETTY_QUERY`, ((_a = this._layers.final) === null || _a === void 0 ? void 0 : _a.select) || []);
107
+ if (this._layers.final) {
108
+ if (this._layers.final.orderBy) {
109
+ builder = new OrderByDecorator(builder, this._layers.final.orderBy);
113
110
  }
114
- this._contexts.pretty = yield builder.build();
115
- const renderer = new SqlRenderer(this._contexts.pretty);
116
- return renderer.build();
117
- });
118
- }
119
- buildFinalLayer(sql) {
120
- return __awaiter(this, void 0, void 0, function* () {
121
- var _a;
122
- let builder = new BaseSelectQueryBuilder(`( ${sql} ) AS PRETTY_QUERY`, ((_a = this._layers.final) === null || _a === void 0 ? void 0 : _a.select) || []);
123
- if (this._layers.final) {
124
- if (this._layers.final.orderBy) {
125
- builder = new OrderByDecorator(builder, this._layers.final.orderBy);
126
- }
127
- if (this._layers.final.limit) {
128
- builder = new LimitDecorator(builder, this._layers.final.limit, this._layers.final.offset);
129
- }
111
+ if (this._layers.final.limit) {
112
+ builder = new LimitDecorator(builder, this._layers.final.limit, this._layers.final.offset);
130
113
  }
131
- this._contexts.final = yield builder.build();
132
- const renderer = new SqlRenderer(this._contexts.final);
133
- return renderer.build();
134
- });
114
+ }
115
+ this._contexts.final = await builder.build();
116
+ const renderer = new SqlRenderer(this._contexts.final);
117
+ return renderer.build();
135
118
  }
136
119
  static normalizeAndQualifyConditions(where, tableName, normalizeBlacklist = [], valueClauseKeywords = new Set()) {
137
120
  const conditions = this.normalizeQueryConditions(where);
@@ -142,9 +125,12 @@ export default class QueryStatementBuilder {
142
125
  if (isValueClauseKeyword) {
143
126
  return;
144
127
  }
145
- return Object.assign(Object.assign({}, condition), { column: shouldSkipQualification
128
+ return {
129
+ ...condition,
130
+ column: shouldSkipQualification
146
131
  ? condition.column
147
- : `${tableName}.${condition.column}` });
132
+ : `${tableName}.${condition.column}`,
133
+ };
148
134
  }).filter(cond => cond !== undefined);
149
135
  }
150
136
  static normalizeQueryConditions(where) {
@@ -22,7 +22,7 @@ export default class Repository<Type extends columnType, ModelType extends Model
22
22
  first(queryLayers: QueryLayers, Model: Model<Type>): Promise<Type | undefined>;
23
23
  get(QueryLayers: QueryLayers, Model: Model<Type>): Promise<Type[]>;
24
24
  all(Model: Model<Type>, QueryLayers: QueryLayers): Promise<Type[]>;
25
- update(primaryKey: QueryIsEqualParameter, newAttributes: Partial<Type>): Promise<Record<Type> | undefined>;
25
+ update(primaryKey: QueryIsEqualParameter, newAttributes: Partial<Type>, table: string): Promise<Record<Type> | undefined>;
26
26
  private join;
27
27
  toSql(queryLayers: QueryLayers, Model: Model<Type>): Promise<string>;
28
28
  private buildJoinObject;
@@ -1 +1 @@
1
- {"version":3,"file":"Repository.d.ts","sourceRoot":"","sources":["../../src/runtime/Repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,yBAAyB,CAAC;AACjD,OAAO,MAAM,MAAM,sBAAsB,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAQ,mBAAmB,EAAE,QAAQ,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEpK,MAAM,CAAC,OAAO,OAAO,UAAU,CAAC,IAAI,SAAS,UAAU,EAAE,SAAS,SAAS,KAAK,CAAC,IAAI,CAAC;IAClF,OAAO,CAAC,MAAM,CAAC,UAAU,CAAqE;IAC9F,OAAO,CAAC,MAAM,CAAqC;IACnD,OAAO,CAAC,mBAAmB,CAAoC;IAC/D,OAAO,CAAC,KAAK,CAAO;IACpB,OAAO,CAAC,qBAAqB,CAAC,CAAS;IACvC,OAAO,CAAC,YAAY,CAAe;gBAG/B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,SAAS,EACrB,qBAAqB,CAAC,EAAE,MAAM,EAC9B,YAAY,GAAE,YAA0D;WAS9D,WAAW,CAAC,SAAS,SAAS,UAAU,EAClD,UAAU,EAAE,UAAU,KAAK,CAAC,SAAS,CAAC,EACtC,SAAS,EAAE,MAAM,EACjB,qBAAqB,CAAC,EAAE,MAAM,EAC9B,YAAY,CAAC,EAAE,YAAY,GAC5B,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;WAiB5B,cAAc,IAAI,IAAI;IAIpC,OAAO,CAAC,sBAAsB;IAajB,0BAA0B,CACnC,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,SAAS,EACxB,QAAQ,EAAE,QAAQ,GACnB,OAAO,CAAC,IAAI,CAAC;IAKH,0BAA0B,CACnC,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,SAAS,EACxB,QAAQ,EAAE,QAAQ,GACnB,OAAO,CAAC,IAAI,CAAC;IAMH,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAaxE,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKpD,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAKjC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS;IAI3B,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrC,KAAK,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IAY9E,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IASlE,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAIlE,MAAM,CAAC,UAAU,EAAE,qBAAqB,EAAE,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;YAOzG,IAAI;IAaL,KAAK,CACd,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GACnB,OAAO,CAAC,MAAM,CAAC;IAYlB,OAAO,CAAC,eAAe;IA4FhB,yBAAyB,CAAC,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,mBAAmB,GAAG,yBAAyB,EAAE;IAKlH,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,GAAG,yBAAyB,EAAE;CAIxF"}
1
+ {"version":3,"file":"Repository.d.ts","sourceRoot":"","sources":["../../src/runtime/Repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,yBAAyB,CAAC;AACjD,OAAO,MAAM,MAAM,sBAAsB,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAQ,mBAAmB,EAAE,QAAQ,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEpK,MAAM,CAAC,OAAO,OAAO,UAAU,CAAC,IAAI,SAAS,UAAU,EAAE,SAAS,SAAS,KAAK,CAAC,IAAI,CAAC;IAClF,OAAO,CAAC,MAAM,CAAC,UAAU,CAAqE;IAC9F,OAAO,CAAC,MAAM,CAAqC;IACnD,OAAO,CAAC,mBAAmB,CAAoC;IAC/D,OAAO,CAAC,KAAK,CAAO;IACpB,OAAO,CAAC,qBAAqB,CAAC,CAAS;IACvC,OAAO,CAAC,YAAY,CAAe;gBAG/B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,SAAS,EACrB,qBAAqB,CAAC,EAAE,MAAM,EAC9B,YAAY,GAAE,YAA0D;WAS9D,WAAW,CAAC,SAAS,SAAS,UAAU,EAClD,UAAU,EAAE,UAAU,KAAK,CAAC,SAAS,CAAC,EACtC,SAAS,EAAE,MAAM,EACjB,qBAAqB,CAAC,EAAE,MAAM,EAC9B,YAAY,CAAC,EAAE,YAAY,GAC5B,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;WAiB5B,cAAc,IAAI,IAAI;IAIpC,OAAO,CAAC,sBAAsB;IAajB,0BAA0B,CACnC,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,SAAS,EACxB,QAAQ,EAAE,QAAQ,GACnB,OAAO,CAAC,IAAI,CAAC;IAKH,0BAA0B,CACnC,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,SAAS,EACxB,QAAQ,EAAE,QAAQ,GACnB,OAAO,CAAC,IAAI,CAAC;IAMH,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAaxE,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKpD,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAKjC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS;IAI3B,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrC,KAAK,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IAY9E,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IASlE,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAIlE,MAAM,CAAC,UAAU,EAAE,qBAAqB,EAAE,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;YAOxH,IAAI;IAaL,KAAK,CACd,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GACnB,OAAO,CAAC,MAAM,CAAC;IAYlB,OAAO,CAAC,eAAe;IAmHhB,yBAAyB,CAAC,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,mBAAmB,GAAG,yBAAyB,EAAE;IAKlH,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,GAAG,yBAAyB,EAAE;CAIxF"}
@@ -1,12 +1,3 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import Table from "../base/Table.js";
11
2
  class Repository {
12
3
  constructor(tableName, ModelClass, customDatabaseAdapter, tableFactory = (name, adapter) => new Table(name, adapter)) {
@@ -40,38 +31,30 @@ class Repository {
40
31
  [relation.pivotForeignKey]: isLocal ? modelOfOrigin.values[relation.foreignKey] : foreignKey
41
32
  };
42
33
  }
43
- insertRecordIntoPivotTable(foreignKey, modelOfOrigin, relation) {
44
- return __awaiter(this, void 0, void 0, function* () {
45
- const table = this.tableFactory(relation.pivotTable, this.customDatabaseAdapter);
46
- yield table.Insert(this.generatePivotTableKeys(foreignKey, modelOfOrigin, relation));
47
- });
34
+ async insertRecordIntoPivotTable(foreignKey, modelOfOrigin, relation) {
35
+ const table = this.tableFactory(relation.pivotTable, this.customDatabaseAdapter);
36
+ await table.Insert(this.generatePivotTableKeys(foreignKey, modelOfOrigin, relation));
48
37
  }
49
- deleteRecordFromPivotTable(foreignKey, modelOfOrigin, relation) {
50
- return __awaiter(this, void 0, void 0, function* () {
51
- const table = this.tableFactory(relation.pivotTable, this.customDatabaseAdapter);
52
- const record = yield table.Record({ base: { where: this.generatePivotTableKeys(foreignKey, modelOfOrigin, relation) } });
53
- yield (record === null || record === void 0 ? void 0 : record.Delete());
54
- });
38
+ async deleteRecordFromPivotTable(foreignKey, modelOfOrigin, relation) {
39
+ const table = this.tableFactory(relation.pivotTable, this.customDatabaseAdapter);
40
+ const record = await table.Record({ base: { where: this.generatePivotTableKeys(foreignKey, modelOfOrigin, relation) } });
41
+ await (record === null || record === void 0 ? void 0 : record.Delete());
55
42
  }
56
- getManyToManyRelation(relation) {
57
- return __awaiter(this, void 0, void 0, function* () {
58
- if (relation.pivotTable && this.manyToManyRelations.has(relation.pivotTable)) {
59
- return this.manyToManyRelations.get(relation.pivotTable);
60
- }
61
- if (yield this.doesTableExist(relation.pivotTable)) {
62
- this.manyToManyRelations.set(relation.pivotTable, relation);
63
- return relation;
64
- }
65
- else {
66
- throw new Error(`Pivot table ${relation.pivotTable} does not exist. Create it in alphabetical order before using many-to-many relationships.`);
67
- }
68
- });
43
+ async getManyToManyRelation(relation) {
44
+ if (relation.pivotTable && this.manyToManyRelations.has(relation.pivotTable)) {
45
+ return this.manyToManyRelations.get(relation.pivotTable);
46
+ }
47
+ if (await this.doesTableExist(relation.pivotTable)) {
48
+ this.manyToManyRelations.set(relation.pivotTable, relation);
49
+ return relation;
50
+ }
51
+ else {
52
+ throw new Error(`Pivot table ${relation.pivotTable} does not exist. Create it in alphabetical order before using many-to-many relationships.`);
53
+ }
69
54
  }
70
- doesTableExist(name) {
71
- return __awaiter(this, void 0, void 0, function* () {
72
- const table = this.tableFactory(name, this.customDatabaseAdapter);
73
- return yield table.exists();
74
- });
55
+ async doesTableExist(name) {
56
+ const table = this.tableFactory(name, this.customDatabaseAdapter);
57
+ return await table.exists();
75
58
  }
76
59
  syncModel(model) {
77
60
  var _a;
@@ -81,76 +64,72 @@ class Repository {
81
64
  getModel(name) {
82
65
  return this.models.get(name);
83
66
  }
84
- save(attributes) {
85
- return __awaiter(this, void 0, void 0, function* () {
86
- yield this.Table.Insert(attributes);
87
- });
88
- }
89
- first(queryLayers, Model) {
90
- return __awaiter(this, void 0, void 0, function* () {
91
- let record;
92
- if (Model.JoinedEntities.length > 0) {
93
- const result = (yield this.join(Model, Object.assign(Object.assign({}, queryLayers), { final: Object.assign(Object.assign({}, queryLayers.final), { limit: 1 }) })))[0];
94
- record = result ? { values: result } : undefined;
95
- }
96
- else {
97
- record = yield this.Table.Record(queryLayers);
98
- }
99
- return record === null || record === void 0 ? void 0 : record.values;
100
- });
67
+ async save(attributes) {
68
+ await this.Table.Insert(attributes);
101
69
  }
102
- get(QueryLayers, Model) {
103
- return __awaiter(this, void 0, void 0, function* () {
104
- if (Model.JoinedEntities.length > 0) {
105
- return yield this.join(Model, QueryLayers);
106
- }
107
- else {
108
- const records = yield this.Table.Records(QueryLayers);
109
- return records.map(record => record.values);
110
- }
111
- });
70
+ async first(queryLayers, Model) {
71
+ let record;
72
+ if (Model.JoinedEntities.length > 0) {
73
+ const result = (await this.join(Model, { ...queryLayers, final: { ...queryLayers.final, limit: 1 } }))[0];
74
+ record = result ? { values: result } : undefined;
75
+ }
76
+ else {
77
+ record = await this.Table.Record(queryLayers);
78
+ }
79
+ return record === null || record === void 0 ? void 0 : record.values;
112
80
  }
113
- all(Model, QueryLayers) {
114
- return __awaiter(this, void 0, void 0, function* () {
115
- return this.get(QueryLayers, Model);
116
- });
81
+ async get(QueryLayers, Model) {
82
+ if (Model.JoinedEntities.length > 0) {
83
+ return await this.join(Model, QueryLayers);
84
+ }
85
+ else {
86
+ const records = await this.Table.Records(QueryLayers);
87
+ return records.map(record => record.values);
88
+ }
117
89
  }
118
- update(primaryKey, newAttributes) {
119
- return __awaiter(this, void 0, void 0, function* () {
120
- const record = yield this.Table.Record({ base: { where: primaryKey } });
121
- if (record) {
122
- return yield record.Update(newAttributes, primaryKey);
123
- }
124
- });
90
+ async all(Model, QueryLayers) {
91
+ return this.get(QueryLayers, Model);
125
92
  }
126
- join(Model, queryLayers) {
127
- return __awaiter(this, void 0, void 0, function* () {
128
- const { joins, queryLayers: nextLayers } = this.buildJoinObject(Model, queryLayers);
129
- nextLayers.base.joins = joins;
130
- const records = yield this.Table.Join(nextLayers);
131
- return records.map(record => record.values);
132
- });
93
+ async update(primaryKey, newAttributes, table) {
94
+ const record = await this.Table.Record({ base: { from: table, where: primaryKey } });
95
+ if (record) {
96
+ return await record.Update(newAttributes, primaryKey);
97
+ }
133
98
  }
134
- toSql(queryLayers, Model) {
135
- return __awaiter(this, void 0, void 0, function* () {
136
- let nextLayers = queryLayers;
137
- if (Model.JoinedEntities.length > 0) {
138
- const result = this.buildJoinObject(Model, queryLayers);
139
- nextLayers = result.queryLayers;
140
- nextLayers.base.joins = result.joins;
141
- }
142
- return this.Table.toSql(nextLayers);
143
- });
99
+ async join(Model, queryLayers) {
100
+ const { joins, queryLayers: nextLayers } = this.buildJoinObject(Model, queryLayers);
101
+ nextLayers.base.joins = joins;
102
+ const records = await this.Table.Join(nextLayers);
103
+ return records.map(record => record.values);
104
+ }
105
+ async toSql(queryLayers, Model) {
106
+ let nextLayers = queryLayers;
107
+ if (Model.JoinedEntities.length > 0) {
108
+ const result = this.buildJoinObject(Model, queryLayers);
109
+ nextLayers = result.queryLayers;
110
+ nextLayers.base.joins = result.joins;
111
+ }
112
+ return this.Table.toSql(nextLayers);
144
113
  }
145
114
  buildJoinObject(Model, inputLayers) {
146
- const queryLayers = Object.assign(Object.assign({}, inputLayers), { base: Object.assign({}, inputLayers.base), final: inputLayers.final
147
- ? Object.assign({}, inputLayers.final) : undefined });
115
+ const queryLayers = {
116
+ ...inputLayers,
117
+ base: {
118
+ ...inputLayers.base,
119
+ },
120
+ final: inputLayers.final
121
+ ? { ...inputLayers.final }
122
+ : undefined
123
+ };
148
124
  const joins = Model.JoinedEntities.flatMap(join => {
149
125
  var _a, _b;
150
126
  var _c;
151
- const relation = Model.Relations.find(rel => rel.model.Configuration.table
127
+ let relation = Model.Relations.find(rel => rel.model.Configuration.table
152
128
  .replace("_", "")
153
129
  .toLowerCase() === join.relation.toLowerCase());
130
+ if (!relation) {
131
+ relation = Model.Relations.find(rel => rel.path.split(".")[1] === join.path.split('.')[1]); //Try a little harder
132
+ }
154
133
  if (!relation) {
155
134
  throw new Error(`Relation for joined entity ${join.relation} not found.`);
156
135
  }
@@ -164,16 +143,31 @@ class Repository {
164
143
  const joinType = relation.type === 'hasOne' || relation.type === 'belongsTo'
165
144
  ? 'INNER'
166
145
  : 'LEFT';
167
- const [baseTable, baseKey] = relation.localKey.includes('.')
168
- ? relation.localKey.split('.')
169
- : [Model.Configuration.table, relation.localKey];
146
+ let baseTable;
147
+ let targetTable;
148
+ let baseKey;
149
+ const [firstPathSegment, secondPathSegment] = relation.path.split('.');
150
+ if (firstPathSegment !== Model.Configuration.table) {
151
+ baseTable = firstPathSegment;
152
+ targetTable = secondPathSegment;
153
+ }
154
+ else {
155
+ baseTable = Model.Configuration.table;
156
+ if (relation.localKey.includes('.')) {
157
+ [baseTable, baseKey] = relation.localKey.split('.');
158
+ }
159
+ else {
160
+ baseKey = relation.localKey;
161
+ }
162
+ }
170
163
  return [
171
164
  {
172
- fromTable: relation.model.Configuration.table,
173
- baseTable,
165
+ fromTable: targetTable ? targetTable : relation.model.Configuration.table,
166
+ baseTable: baseTable ? baseTable : Model.Configuration.table,
174
167
  joinType,
168
+ name: relation.name,
175
169
  on: [
176
- { [relation.foreignKey]: baseKey }
170
+ { [relation.foreignKey]: baseKey ? baseKey : relation.localKey }
177
171
  ]
178
172
  }
179
173
  ];
@@ -190,6 +184,7 @@ class Repository {
190
184
  fromTable: relation.pivotTable,
191
185
  baseTable: Model.Configuration.table,
192
186
  joinType: 'INNER',
187
+ name: relation.name,
193
188
  on: [
194
189
  { [relation.pivotForeignKey]: relation.localKey }
195
190
  ]
@@ -198,6 +193,7 @@ class Repository {
198
193
  fromTable: relation.model.Configuration.table,
199
194
  baseTable: relation.pivotTable,
200
195
  joinType: 'INNER',
196
+ name: relation.name,
201
197
  on: [
202
198
  { [relation.foreignKey]: relation.pivotLocalKey }
203
199
  ]
@@ -58,6 +58,8 @@ export type ModelConfig = {
58
58
  dateFormat?: string;
59
59
  };
60
60
  export type relation = {
61
+ name: string;
62
+ path: string;
61
63
  type: 'hasOne' | 'hasMany' | 'belongsTo' | 'manyToMany';
62
64
  model: unknown & Model<columnType>;
63
65
  foreignKey: string;
@@ -76,6 +78,7 @@ export type ModelWithTimestamps = {
76
78
  };
77
79
  export type joinedEntity = {
78
80
  relation: string;
81
+ path: string;
79
82
  queryScopes?: QueryWhereCondition;
80
83
  };
81
84
  //# sourceMappingURL=model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/types/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/types/model.ts"],"names":[],"mappings":"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"}
@@ -29,5 +29,6 @@ export type Join = {
29
29
  joinType: 'INNER' | 'LEFT' | 'RIGHT' | 'FULL';
30
30
  on: QueryIsEqualParameter | QueryIsEqualParameter[];
31
31
  where?: QueryIsEqualParameter | QueryIsEqualParameter[];
32
+ name?: string;
32
33
  };
33
34
  //# sourceMappingURL=table.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/types/table.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAC;AAE3D,MAAM,MAAM,eAAe,GAAG;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;CAAE,CAAC;AAExD,MAAM,MAAM,uBAAuB,GAAG;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAC9C,EAAE,EAAE,qBAAqB,GAAG,qBAAqB,EAAE,CAAC;IACpD,KAAK,CAAC,EAAE,qBAAqB,GAAG,qBAAqB,EAAE,CAAC;CAC3D,CAAA"}
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/types/table.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAC;AAE3D,MAAM,MAAM,eAAe,GAAG;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;CAAE,CAAC;AAExD,MAAM,MAAM,uBAAuB,GAAG;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAC9C,EAAE,EAAE,qBAAqB,GAAG,qBAAqB,EAAE,CAAC;IACpD,KAAK,CAAC,EAAE,qBAAqB,GAAG,qBAAqB,EAAE,CAAC;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iamkirbki/database-handler-core",
3
- "version": "4.4.3",
3
+ "version": "4.4.5",
4
4
  "author": "iamkirbki",
5
5
  "description": "Core database abstractions and interfaces",
6
6
  "license": "ISC",