myorm_pg 2.1.0 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -2
- package/lib/Index.d.ts +4 -0
- package/lib/Index.d.ts.map +1 -1
- package/lib/Index.js +3 -1
- package/lib/Index.js.map +1 -1
- package/lib/core/design/Type.d.ts +1 -0
- package/lib/core/design/Type.d.ts.map +1 -1
- package/lib/core/design/Type.js +7 -1
- package/lib/core/design/Type.js.map +1 -1
- package/lib/core/exceptions/ConstraintFailException.d.ts +1 -1
- package/lib/core/exceptions/ConstraintFailException.d.ts.map +1 -1
- package/lib/core/exceptions/ConstraintFailException.js +2 -2
- package/lib/core/exceptions/ConstraintFailException.js.map +1 -1
- package/lib/core/objects/DBOperationLogHandler.d.ts +16 -0
- package/lib/core/objects/DBOperationLogHandler.d.ts.map +1 -0
- package/lib/core/objects/DBOperationLogHandler.js +17 -0
- package/lib/core/objects/DBOperationLogHandler.js.map +1 -0
- package/lib/core/objects/interfaces/IDBContext.d.ts +32 -1
- package/lib/core/objects/interfaces/IDBContext.d.ts.map +1 -1
- package/lib/core/objects/interfaces/IDBSet.d.ts +4 -3
- package/lib/core/objects/interfaces/IDBSet.d.ts.map +1 -1
- package/lib/core/objects/interfaces/IStatement.d.ts +3 -1
- package/lib/core/objects/interfaces/IStatement.d.ts.map +1 -1
- package/lib/core/objects/interfaces/IStatement.js +2 -0
- package/lib/core/objects/interfaces/IStatement.js.map +1 -1
- package/lib/implementations/PGDBContext.d.ts +37 -3
- package/lib/implementations/PGDBContext.d.ts.map +1 -1
- package/lib/implementations/PGDBContext.js +209 -0
- package/lib/implementations/PGDBContext.js.map +1 -1
- package/lib/implementations/PGDBManager.d.ts +4 -0
- package/lib/implementations/PGDBManager.d.ts.map +1 -1
- package/lib/implementations/PGDBManager.js +20 -0
- package/lib/implementations/PGDBManager.js.map +1 -1
- package/lib/implementations/PGDBSet.d.ts +5 -1
- package/lib/implementations/PGDBSet.d.ts.map +1 -1
- package/lib/implementations/PGDBSet.js +218 -107
- package/lib/implementations/PGDBSet.js.map +1 -1
- package/lib/implementations/PGSetHelper.d.ts +19 -0
- package/lib/implementations/PGSetHelper.d.ts.map +1 -0
- package/lib/implementations/PGSetHelper.js +48 -0
- package/lib/implementations/PGSetHelper.js.map +1 -0
- package/package.json +1 -1
|
@@ -12,7 +12,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.JoinSelectable = exports.JoiningQuery = void 0;
|
|
16
|
+
const SchemasDecorators_1 = __importDefault(require("../core/decorators/SchemasDecorators"));
|
|
17
|
+
const Type_1 = __importDefault(require("../core/design/Type"));
|
|
18
|
+
const ConstraintFailException_1 = __importDefault(require("../core/exceptions/ConstraintFailException"));
|
|
19
|
+
const InvalidOperationException_1 = __importDefault(require("../core/exceptions/InvalidOperationException"));
|
|
15
20
|
const PGDBSet_1 = __importDefault(require("./PGDBSet"));
|
|
21
|
+
const PGSetHelper_1 = __importDefault(require("./PGSetHelper"));
|
|
16
22
|
class PGDBContext {
|
|
17
23
|
constructor(manager) {
|
|
18
24
|
this._manager = manager;
|
|
@@ -62,6 +68,209 @@ class PGDBContext {
|
|
|
62
68
|
return yield this._manager.Execute(query);
|
|
63
69
|
});
|
|
64
70
|
}
|
|
71
|
+
Join(...args) {
|
|
72
|
+
return new JoiningQuery(this, args);
|
|
73
|
+
}
|
|
65
74
|
}
|
|
66
75
|
exports.default = PGDBContext;
|
|
76
|
+
class JoiningQuery {
|
|
77
|
+
constructor(context, stack) {
|
|
78
|
+
this._stack = [];
|
|
79
|
+
this._onStatements = [];
|
|
80
|
+
this._context = context;
|
|
81
|
+
this._stack.push(...stack.map(s => { return { Type: s }; }));
|
|
82
|
+
let notMappedTypes = this._stack.filter(s => this._context.Collection(s.Type) == undefined);
|
|
83
|
+
if (notMappedTypes.length > 0) {
|
|
84
|
+
this._stack = [];
|
|
85
|
+
throw new InvalidOperationException_1.default(`The type ${notMappedTypes[0].Type.name} is not mapped`);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
On(cT, cKey, uT, uKey) {
|
|
89
|
+
this.CheckIfTypeIsAllowed(cT);
|
|
90
|
+
this.CheckIfTypeIsAllowed(cT);
|
|
91
|
+
let leftIndex = this._stack.findIndex(s => s.Type == cT);
|
|
92
|
+
let rightIndex = this._stack.findIndex(s => s.Type == uT);
|
|
93
|
+
if (rightIndex - leftIndex != 1)
|
|
94
|
+
throw new InvalidOperationException_1.default(`The On statement must follow the same order than Join`);
|
|
95
|
+
this._onStatements.push([cKey.toString(), uKey.toString()]);
|
|
96
|
+
return this;
|
|
97
|
+
}
|
|
98
|
+
Where(cT, statement) {
|
|
99
|
+
this.CheckIfTypeIsAllowed(cT);
|
|
100
|
+
let set = this._context.Collection(cT);
|
|
101
|
+
set.Where(statement);
|
|
102
|
+
return this;
|
|
103
|
+
}
|
|
104
|
+
And(cT, statement) {
|
|
105
|
+
this.CheckIfTypeIsAllowed(cT);
|
|
106
|
+
let set = this._context.Collection(cT);
|
|
107
|
+
set.And(statement);
|
|
108
|
+
return this;
|
|
109
|
+
}
|
|
110
|
+
Or(cT, statement) {
|
|
111
|
+
this.CheckIfTypeIsAllowed(cT);
|
|
112
|
+
let set = this._context.Collection(cT);
|
|
113
|
+
set.Or(statement);
|
|
114
|
+
return this;
|
|
115
|
+
}
|
|
116
|
+
Select(cT) {
|
|
117
|
+
return new JoinSelectable(cT, this._context, this._stack, this._onStatements);
|
|
118
|
+
}
|
|
119
|
+
CheckIfTypeIsAllowed(cT) {
|
|
120
|
+
let set = this._context.Collection(cT);
|
|
121
|
+
if (!set)
|
|
122
|
+
throw new InvalidOperationException_1.default(`The type ${cT.name} is not mapped`);
|
|
123
|
+
let index = this._stack.findIndex(s => s.Type == cT);
|
|
124
|
+
if (index == -1)
|
|
125
|
+
throw new InvalidOperationException_1.default(`The type ${cT.name} is not inside the Join list`);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
exports.JoiningQuery = JoiningQuery;
|
|
129
|
+
class JoinSelectable {
|
|
130
|
+
constructor(cT, context, stack, onStack) {
|
|
131
|
+
this._stack = [];
|
|
132
|
+
this._onStatements = [];
|
|
133
|
+
this._type = cT;
|
|
134
|
+
this._context = context;
|
|
135
|
+
this._stack = stack;
|
|
136
|
+
this._onStatements = onStack;
|
|
137
|
+
}
|
|
138
|
+
Join(key) {
|
|
139
|
+
var _a;
|
|
140
|
+
(_a = this._context.Collection(this._type)) === null || _a === void 0 ? void 0 : _a.Join(key);
|
|
141
|
+
return this;
|
|
142
|
+
}
|
|
143
|
+
OrderBy(key) {
|
|
144
|
+
var _a;
|
|
145
|
+
(_a = this._context.Collection(this._type)) === null || _a === void 0 ? void 0 : _a.OrderBy(key);
|
|
146
|
+
return this;
|
|
147
|
+
}
|
|
148
|
+
OrderDescendingBy(key) {
|
|
149
|
+
var _a;
|
|
150
|
+
(_a = this._context.Collection(this._type)) === null || _a === void 0 ? void 0 : _a.OrderDescendingBy(key);
|
|
151
|
+
return this;
|
|
152
|
+
}
|
|
153
|
+
ToListAsync() {
|
|
154
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
155
|
+
if (this._stack.length > this._onStatements.length + 1)
|
|
156
|
+
throw new InvalidOperationException_1.default(`There is no enought On clausules to join all selected types`);
|
|
157
|
+
if (this._stack.length < this._onStatements.length + 1)
|
|
158
|
+
throw new InvalidOperationException_1.default(`There is more On clausules than join types selecteds`);
|
|
159
|
+
let selectedSideSet = this._context.Collection(this._type);
|
|
160
|
+
let leftSideType = this._stack[0].Type;
|
|
161
|
+
let selectedTable = Type_1.default.GetTableName(this._type);
|
|
162
|
+
let query = `select distinct "${selectedTable}".* from "${Type_1.default.GetTableName(leftSideType)}" `;
|
|
163
|
+
for (let i = 1; i < this._stack.length; i++) {
|
|
164
|
+
let rightSideType = this._stack[i].Type;
|
|
165
|
+
let leftSideTable = Type_1.default.GetTableName(leftSideType);
|
|
166
|
+
let rigthSideTable = Type_1.default.GetTableName(rightSideType);
|
|
167
|
+
let onStatement = this._onStatements[i - 1];
|
|
168
|
+
let leftSideField = onStatement[0];
|
|
169
|
+
let rightSideField = onStatement[1];
|
|
170
|
+
let leftSideIsArray = Type_1.default.GetDesingType(leftSideType, leftSideField) == Array;
|
|
171
|
+
let rightSideIsArray = Type_1.default.GetDesingType(rightSideType, rightSideField) == Array;
|
|
172
|
+
let rightSideTypeMap = Type_1.default.GetColumnNameAndType(rightSideType);
|
|
173
|
+
let leftSideTypeMap = Type_1.default.GetColumnNameAndType(leftSideType);
|
|
174
|
+
query += ` inner join "${rigthSideTable}" on `;
|
|
175
|
+
if ((leftSideIsArray && rightSideIsArray) || (!leftSideIsArray && !rightSideIsArray)) {
|
|
176
|
+
query += ` "${leftSideTable}".${Type_1.default.GetColumnName(leftSideType, leftSideField)} = "${rigthSideTable}".${Type_1.default.GetColumnName(rightSideType, rightSideField)} `;
|
|
177
|
+
}
|
|
178
|
+
else if (leftSideIsArray && !rightSideIsArray) {
|
|
179
|
+
let relation = SchemasDecorators_1.default.GetRelationAttribute(leftSideType, leftSideField);
|
|
180
|
+
if (relation) {
|
|
181
|
+
let rType = relation.TypeBuilder();
|
|
182
|
+
let key = SchemasDecorators_1.default.ExtractPrimaryKey(rType);
|
|
183
|
+
if (!key)
|
|
184
|
+
throw new ConstraintFailException_1.default(`The type ${rType.name} was no one primary key field`);
|
|
185
|
+
let relationMap = Type_1.default.GetColumnNameAndType(rType);
|
|
186
|
+
let leftSideDBType = Type_1.default.CastType(relationMap.filter(s => s.Field == key)[0].Type);
|
|
187
|
+
let rightSideDBType = Type_1.default.CastType(rightSideTypeMap.filter(s => s.Field == rightSideField)[0].Type);
|
|
188
|
+
let leftColumnName = leftSideTypeMap.filter(s => s.Field == leftSideField)[0].Column;
|
|
189
|
+
let rightColumnName = rightSideTypeMap.filter(s => s.Field == rightSideField)[0].Column;
|
|
190
|
+
if (leftSideDBType != rightSideDBType) {
|
|
191
|
+
throw new InvalidOperationException_1.default(`${leftSideType.name}.${leftSideField} and ${rightSideType.name}.${rightSideField} must be the same type to join`);
|
|
192
|
+
}
|
|
193
|
+
query += ` "${rigthSideTable}".${rightColumnName} = ANY("${leftSideTable}".${leftColumnName})`;
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
let dataType = SchemasDecorators_1.default.GetDataTypeAttribute(leftSideType, leftSideField);
|
|
197
|
+
if (!dataType) {
|
|
198
|
+
throw new InvalidOperationException_1.default(`Can not find the DataAttributeof ${leftSideType.name}.${leftSideField}`);
|
|
199
|
+
}
|
|
200
|
+
let elementType = Type_1.default.ExtractElementType(dataType);
|
|
201
|
+
if (!elementType)
|
|
202
|
+
throw new InvalidOperationException_1.default(`Can not determine the array element type of ${leftSideType.name}.${leftSideField}`);
|
|
203
|
+
let leftColumnName = leftSideTypeMap.filter(s => s.Field == leftSideField)[0].Column;
|
|
204
|
+
let rightSideDBType = Type_1.default.CastType(rightSideTypeMap.filter(s => s.Field == rightSideField)[0].Type);
|
|
205
|
+
let rightColumnName = rightSideTypeMap.filter(s => s.Field == rightSideField)[0].Column;
|
|
206
|
+
let areNumbers = Type_1.default.IsNumber(Type_1.default.CastType(elementType)) && Type_1.default.IsNumber(rightSideDBType);
|
|
207
|
+
let areString = Type_1.default.IsText(Type_1.default.CastType(elementType)) && Type_1.default.IsText(rightSideDBType);
|
|
208
|
+
let areDate = Type_1.default.IsDate(Type_1.default.CastType(elementType)) && Type_1.default.IsDate(rightSideDBType);
|
|
209
|
+
let areArray = Type_1.default.IsArray(Type_1.default.CastType(elementType)) && Type_1.default.IsArray(rightSideDBType);
|
|
210
|
+
let areSameType = this._context["_manager"]["CastToPostgreSQLType"](elementType) == this._context["_manager"]["CastToPostgreSQLType"](rightSideDBType);
|
|
211
|
+
let areSerial = this._context["_manager"]["CastToPostgreSQLType"](elementType) == "serial" && this._context["_manager"]["CastToPostgreSQLType"](rightSideDBType) == "serial";
|
|
212
|
+
if (!(areNumbers || areString || areDate || areArray || areSameType || areSerial))
|
|
213
|
+
throw new InvalidOperationException_1.default(`${leftSideType.name}.${leftSideField} and ${rightSideType.name}.${rightSideField} must be the same type to join`);
|
|
214
|
+
query += ` "${rigthSideTable}".${rightColumnName} = ANY("${leftSideTable}".${leftColumnName})`;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
else if (rightSideIsArray && !leftSideIsArray) {
|
|
218
|
+
let relation = SchemasDecorators_1.default.GetRelationAttribute(rightSideType, rightSideField);
|
|
219
|
+
if (relation) {
|
|
220
|
+
let rType = relation.TypeBuilder();
|
|
221
|
+
let key = SchemasDecorators_1.default.ExtractPrimaryKey(rType);
|
|
222
|
+
if (!key)
|
|
223
|
+
throw new ConstraintFailException_1.default(`The type ${rType.name} was no one primary key field`);
|
|
224
|
+
let relationMap = Type_1.default.GetColumnNameAndType(rType);
|
|
225
|
+
let rightSideDBType = Type_1.default.CastType(relationMap.filter(s => s.Field == key)[0].Type);
|
|
226
|
+
let leftSideDBType = Type_1.default.CastType(rightSideTypeMap.filter(s => s.Field == leftSideField)[0].Type);
|
|
227
|
+
let leftColumnName = leftSideTypeMap.filter(s => s.Field == leftSideField)[0].Column;
|
|
228
|
+
let rightColumnName = rightSideTypeMap.filter(s => s.Field == rightSideField)[0].Column;
|
|
229
|
+
if (leftSideDBType != rightSideDBType) {
|
|
230
|
+
throw new InvalidOperationException_1.default(`${leftSideType.name}.${leftSideField} and ${rightSideType.name}.${rightSideField} must be the same type to join`);
|
|
231
|
+
}
|
|
232
|
+
query += ` "${leftSideTable}".${leftColumnName} = ANY("${rigthSideTable}".${rightColumnName})`;
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
let dataType = SchemasDecorators_1.default.GetDataTypeAttribute(rightSideType, rightSideField);
|
|
236
|
+
if (!dataType) {
|
|
237
|
+
throw new InvalidOperationException_1.default(`Can not find the DataAttributeof ${rightSideType.name}.${rightSideField}`);
|
|
238
|
+
}
|
|
239
|
+
let elementType = Type_1.default.ExtractElementType(dataType);
|
|
240
|
+
if (!elementType)
|
|
241
|
+
throw new InvalidOperationException_1.default(`Can not determine the array element type of ${rightSideType.name}.${rightSideField}`);
|
|
242
|
+
let leftColumnName = leftSideTypeMap.filter(s => s.Field == leftSideField)[0].Column;
|
|
243
|
+
let leftSideDBType = Type_1.default.CastType(leftSideTypeMap.filter(s => s.Field == leftSideField)[0].Type);
|
|
244
|
+
let rightColumnName = rightSideTypeMap.filter(s => s.Field == rightSideField)[0].Column;
|
|
245
|
+
let areNumbers = Type_1.default.IsNumber(Type_1.default.CastType(elementType)) && Type_1.default.IsNumber(leftSideDBType);
|
|
246
|
+
let areString = Type_1.default.IsText(Type_1.default.CastType(elementType)) && Type_1.default.IsText(leftSideDBType);
|
|
247
|
+
let areDate = Type_1.default.IsDate(Type_1.default.CastType(elementType)) && Type_1.default.IsDate(leftSideDBType);
|
|
248
|
+
let areArray = Type_1.default.IsArray(Type_1.default.CastType(elementType)) && Type_1.default.IsArray(leftSideDBType);
|
|
249
|
+
let areSameType = this._context["_manager"]["CastToPostgreSQLType"](elementType) == this._context["_manager"]["CastToPostgreSQLType"](leftSideDBType);
|
|
250
|
+
let areSerial = this._context["_manager"]["CastToPostgreSQLType"](elementType) == "serial" && this._context["_manager"]["CastToPostgreSQLType"](leftSideDBType) == "serial";
|
|
251
|
+
if (!(areNumbers || areString || areDate || areArray || areSameType || areSerial))
|
|
252
|
+
throw new InvalidOperationException_1.default(`${leftSideType.name}.${leftSideField} and ${rightSideType.name}.${rightSideField} must be the same type to join`);
|
|
253
|
+
query += ` "${leftSideTable}".${leftColumnName} = ANY("${rigthSideTable}".${rightColumnName})`;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
leftSideType = this._stack[i].Type;
|
|
257
|
+
}
|
|
258
|
+
let where = "";
|
|
259
|
+
for (let type of this._stack) {
|
|
260
|
+
let set = this._context.Collection(type.Type);
|
|
261
|
+
let statements = set["_statements"];
|
|
262
|
+
for (let s of statements) {
|
|
263
|
+
let operation = s.StatementType.toString();
|
|
264
|
+
if (operation == "where" && where.length > 0)
|
|
265
|
+
operation = "and";
|
|
266
|
+
where += ` ${operation} ${set["EvaluateStatement"](s)}`;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
PGSetHelper_1.default.InjectSQL(selectedSideSet, query);
|
|
270
|
+
PGSetHelper_1.default.InjectWhere(selectedSideSet, where);
|
|
271
|
+
return yield selectedSideSet.ToListAsync();
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
exports.JoinSelectable = JoinSelectable;
|
|
67
276
|
//# sourceMappingURL=PGDBContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PGDBContext.js","sourceRoot":"","sources":["../../src/implementations/PGDBContext.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAKA,wDAAgC;AAEhC,MAA8B,WAAW;IAMrC,YAAY,OAAqB;QAE7B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC5B,CAAC;IAGM,cAAc;QAEjB,IAAG,IAAI,CAAC,YAAY,IAAI,SAAS;YAC7B,OAAO,IAAI,CAAC,YAAY,CAAC;QAE7B,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QAEvB,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9B,KAAI,IAAI,IAAI,IAAI,KAAK,EACrB;YACI,IAAI,IAAY,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,iBAAO,EAC7C;gBACI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAE,IAAY,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;aACxD;SACJ;QAED,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAEM,QAAQ,CAAC,IAAuC;QAEnD,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACnE,CAAC;IAEM,UAAU,CAAI,IAAmC;QAEpD,KAAI,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EACjC;YACI,IAAI,IAAI,GAAI,IAAY,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;YAExC,IAAG,IAAI,IAAI,SAAS;gBAChB,SAAS;YACb,IAAG,IAAI,IAAI,IAAI;gBACX,OAAQ,IAAY,CAAC,IAAI,CAAc,CAAC;SAC/C;QAED,OAAO,SAAS,CAAA;IACpB,CAAC;IAEY,mBAAmB;;YAE5B,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,YAAY,CAAC;YAEvD,IAAG,CAAC,CAAA,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;gBACzC,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAE/C,KAAI,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE,EACrC;gBACI,MAAM,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;aACrD;QAEL,CAAC;KAAA;IAEY,eAAe,CAAC,KAAc;;YACxC,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC;KAAA;IAEY,YAAY,CAAC,KAAc;;YACpC,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC;KAAA;CAEJ;AA1ED,8BA0EC"}
|
|
1
|
+
{"version":3,"file":"PGDBContext.js","sourceRoot":"","sources":["../../src/implementations/PGDBContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import 'reflect-metadata';
|
|
2
2
|
import IDBManager from '../core/objects/interfaces/IDBManager';
|
|
3
3
|
import PGDBConnection from './PGDBConnection';
|
|
4
|
+
import DBOperationLogHandler from '../core/objects/DBOperationLogHandler';
|
|
4
5
|
export default class PGDBManager implements IDBManager {
|
|
5
6
|
private _connection;
|
|
7
|
+
private _logger?;
|
|
6
8
|
constructor(connection: PGDBConnection);
|
|
7
9
|
CheckConnection(): Promise<boolean>;
|
|
8
10
|
CheckDatabase(dababase: string): Promise<boolean>;
|
|
@@ -24,5 +26,7 @@ export default class PGDBManager implements IDBManager {
|
|
|
24
26
|
* @returns {string} the postgres type correspondent
|
|
25
27
|
*/
|
|
26
28
|
private CastToPostgreSQLType;
|
|
29
|
+
SetLogger(logger: DBOperationLogHandler): void;
|
|
30
|
+
private Log;
|
|
27
31
|
}
|
|
28
32
|
//# sourceMappingURL=PGDBManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PGDBManager.d.ts","sourceRoot":"","sources":["../../src/implementations/PGDBManager.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAI1B,OAAO,UAAU,MAAM,uCAAuC,CAAC;AAE/D,OAAO,cAAc,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"PGDBManager.d.ts","sourceRoot":"","sources":["../../src/implementations/PGDBManager.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAI1B,OAAO,UAAU,MAAM,uCAAuC,CAAC;AAE/D,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAK9C,OAAO,qBAAkC,MAAM,uCAAuC,CAAC;AAGvF,MAAM,CAAC,OAAO,OAAO,WAAY,YAAW,UAAU;IAElD,OAAO,CAAC,WAAW,CAAmB;IACtC,OAAO,CAAC,OAAO,CAAC,CAAyB;gBAEtB,UAAU,EAAG,cAAc;IAKjC,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAoBzC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAajD,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW/C,UAAU,CAAC,IAAI,EAAG,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAgB7C,WAAW,CAAC,IAAI,EAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAc3C,WAAW,CAAC,IAAI,EAAG,QAAQ,EAAE,GAAG,EAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiB5D,YAAY,CAAC,IAAI,EAAG,QAAQ,EAAE,GAAG,EAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiE1D,uBAAuB,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BhD,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa7C,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;WAanC,KAAK,CAAC,IAAI,EAAG,MAAM,EAAE,IAAI,EAAG,MAAM,EAAE,QAAQ,EAAG,MAAM,EAAE,IAAI,EAAG,MAAM,EAAE,IAAI,EAAG,MAAM,GAAI,WAAW;WAKlG,mBAAmB;IA8BjC,OAAO,CAAC,cAAc;IAmBtB;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IA0BrB,SAAS,CAAC,MAAM,EAAG,qBAAqB,GAAI,IAAI;IAEvD,OAAO,CAAC,GAAG;CAMd"}
|
|
@@ -20,12 +20,14 @@ const SchemasDecorators_1 = __importDefault(require("../core/decorators/SchemasD
|
|
|
20
20
|
const InvalidOperationException_1 = __importDefault(require("../core/exceptions/InvalidOperationException"));
|
|
21
21
|
const Index_1 = require("../Index");
|
|
22
22
|
const RelationType_1 = require("../core/enums/RelationType");
|
|
23
|
+
const DBOperationLogHandler_1 = require("../core/objects/DBOperationLogHandler");
|
|
23
24
|
class PGDBManager {
|
|
24
25
|
constructor(connection) {
|
|
25
26
|
this._connection = connection;
|
|
26
27
|
}
|
|
27
28
|
CheckConnection() {
|
|
28
29
|
return __awaiter(this, void 0, void 0, function* () {
|
|
30
|
+
this.Log("Checking connection", DBOperationLogHandler_1.LogType.CHECKCONNECTION);
|
|
29
31
|
try {
|
|
30
32
|
yield this._connection.Open();
|
|
31
33
|
return true;
|
|
@@ -40,6 +42,7 @@ class PGDBManager {
|
|
|
40
42
|
}
|
|
41
43
|
CheckDatabase(dababase) {
|
|
42
44
|
return this.CreatePromisse(() => __awaiter(this, void 0, void 0, function* () {
|
|
45
|
+
this.Log(`Checking database ${dababase}`, DBOperationLogHandler_1.LogType.CHECKDATABASE);
|
|
43
46
|
yield this._connection.AsPostgres().Open();
|
|
44
47
|
let result = yield this._connection.Execute(`select * from pg_database where datname = '${dababase}'`);
|
|
45
48
|
return result.rows.length > 0;
|
|
@@ -47,6 +50,7 @@ class PGDBManager {
|
|
|
47
50
|
}
|
|
48
51
|
CreateDataBase(dababase) {
|
|
49
52
|
return this.CreatePromisse(() => __awaiter(this, void 0, void 0, function* () {
|
|
53
|
+
this.Log(`Creating database ${dababase}`, DBOperationLogHandler_1.LogType.CREATEDATABASE);
|
|
50
54
|
yield this._connection.AsPostgres().Open();
|
|
51
55
|
yield this._connection.Execute(`create database ${dababase} with owner ${this._connection.UserName};`);
|
|
52
56
|
}));
|
|
@@ -54,6 +58,7 @@ class PGDBManager {
|
|
|
54
58
|
CheckTable(cTor) {
|
|
55
59
|
return this.CreatePromisse(() => __awaiter(this, void 0, void 0, function* () {
|
|
56
60
|
let table = Type_1.default.GetTableName(cTor);
|
|
61
|
+
this.Log(`Checking table ${table}`, DBOperationLogHandler_1.LogType.CHECKTABLE);
|
|
57
62
|
yield this._connection.Open();
|
|
58
63
|
let result = yield this._connection.Execute(`select * from information_schema.tables where table_catalog = '${this._connection.DataBaseName}' and table_name = '${table}';`);
|
|
59
64
|
return result.rows.length > 0;
|
|
@@ -62,6 +67,7 @@ class PGDBManager {
|
|
|
62
67
|
CreateTable(cTor) {
|
|
63
68
|
return this.CreatePromisse(() => __awaiter(this, void 0, void 0, function* () {
|
|
64
69
|
let table = Type_1.default.GetTableName(cTor);
|
|
70
|
+
this.Log(`Creating table ${table}`, DBOperationLogHandler_1.LogType.CREATETABLE);
|
|
65
71
|
yield this._connection.Open();
|
|
66
72
|
yield this._connection.Execute(`create table if not exists "${table}"();`);
|
|
67
73
|
}));
|
|
@@ -70,6 +76,7 @@ class PGDBManager {
|
|
|
70
76
|
return this.CreatePromisse(() => __awaiter(this, void 0, void 0, function* () {
|
|
71
77
|
let table = Type_1.default.GetTableName(cTor);
|
|
72
78
|
let column = Type_1.default.GetColumnName(cTor, key);
|
|
79
|
+
this.Log(`Checking column ${table}.${column}`, DBOperationLogHandler_1.LogType.CHECKCOLUMN);
|
|
73
80
|
yield this._connection.Open();
|
|
74
81
|
let result = yield this._connection.Execute(`select * from information_schema.columns where table_name = '${table}' and column_name = '${column}';`);
|
|
75
82
|
return result.rows.length > 0;
|
|
@@ -79,6 +86,7 @@ class PGDBManager {
|
|
|
79
86
|
return this.CreatePromisse(() => __awaiter(this, void 0, void 0, function* () {
|
|
80
87
|
let table = Type_1.default.GetTableName(cTor);
|
|
81
88
|
let column = Type_1.default.GetColumnName(cTor, key);
|
|
89
|
+
this.Log(`Creating column ${table}.${column}`, DBOperationLogHandler_1.LogType.CHECKCOLUMN);
|
|
82
90
|
let type = "";
|
|
83
91
|
try {
|
|
84
92
|
type = this.CastToPostgreSQLType(Type_1.default.GetDesingTimeTypeName(cTor, key));
|
|
@@ -114,6 +122,7 @@ class PGDBManager {
|
|
|
114
122
|
}
|
|
115
123
|
UpdateDatabaseForEntity(cTor) {
|
|
116
124
|
return this.CreatePromisse(() => __awaiter(this, void 0, void 0, function* () {
|
|
125
|
+
this.Log(`Checking entity ${cTor.name}`, DBOperationLogHandler_1.LogType.CHECKENTITY);
|
|
117
126
|
let table_name = Type_1.default.GetTableName(cTor);
|
|
118
127
|
if (table_name == undefined)
|
|
119
128
|
throw new TypeNotSuportedException_1.default(`The type ${cTor.name} is not supported. Can not determine the table name of type`);
|
|
@@ -131,6 +140,7 @@ class PGDBManager {
|
|
|
131
140
|
return __awaiter(this, void 0, void 0, function* () {
|
|
132
141
|
return this.CreatePromisse(() => __awaiter(this, void 0, void 0, function* () {
|
|
133
142
|
yield this._connection.Open();
|
|
143
|
+
this.Log(query, DBOperationLogHandler_1.LogType.QUERY);
|
|
134
144
|
yield this._connection.Execute(query);
|
|
135
145
|
}));
|
|
136
146
|
});
|
|
@@ -139,6 +149,7 @@ class PGDBManager {
|
|
|
139
149
|
return __awaiter(this, void 0, void 0, function* () {
|
|
140
150
|
return this.CreatePromisse(() => __awaiter(this, void 0, void 0, function* () {
|
|
141
151
|
yield this._connection.Open();
|
|
152
|
+
this.Log(query, DBOperationLogHandler_1.LogType.QUERY);
|
|
142
153
|
return yield this._connection.Execute(query);
|
|
143
154
|
}));
|
|
144
155
|
});
|
|
@@ -193,6 +204,7 @@ class PGDBManager {
|
|
|
193
204
|
case "integer": return "integer";
|
|
194
205
|
case "number": return "bigint";
|
|
195
206
|
case "long": return "bigint";
|
|
207
|
+
case "double": return "double";
|
|
196
208
|
case "text": return "text";
|
|
197
209
|
case "string": return "text";
|
|
198
210
|
case "date": return "date";
|
|
@@ -210,6 +222,14 @@ class PGDBManager {
|
|
|
210
222
|
default: throw new TypeNotSuportedException_1.default(`The type ${type} is not suported`);
|
|
211
223
|
}
|
|
212
224
|
}
|
|
225
|
+
SetLogger(logger) { this._logger = logger; }
|
|
226
|
+
Log(message, type) {
|
|
227
|
+
if (this._logger)
|
|
228
|
+
try {
|
|
229
|
+
this._logger(message, type);
|
|
230
|
+
}
|
|
231
|
+
catch (_a) { }
|
|
232
|
+
}
|
|
213
233
|
}
|
|
214
234
|
exports.default = PGDBManager;
|
|
215
235
|
//# sourceMappingURL=PGDBManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PGDBManager.js","sourceRoot":"","sources":["../../src/implementations/PGDBManager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,4BAA0B;AAC1B,2GAAmF;AAInF,+DAAuC;AACvC,sEAA8C;AAC9C,6FAAqE;AACrE,6GAAqF;AACrF,oCAAmC;AACnC,6DAA0D;
|
|
1
|
+
{"version":3,"file":"PGDBManager.js","sourceRoot":"","sources":["../../src/implementations/PGDBManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import IDBSet, { IFluentField, IFluentQueryableObject } from "../core/objects/interfaces/IDBSet";
|
|
2
2
|
import IStatement from "../core/objects/interfaces/IStatement";
|
|
3
3
|
import PGDBContext from "./PGDBContext";
|
|
4
|
-
export default class PGDBSet<T extends
|
|
4
|
+
export default class PGDBSet<T extends Object> implements IDBSet<T>, IFluentQueryableObject<T, PGDBSet<T>> {
|
|
5
5
|
private _type;
|
|
6
6
|
private _table;
|
|
7
7
|
private _maps;
|
|
@@ -26,6 +26,7 @@ export default class PGDBSet<T extends object> implements IDBSet<T>, IFluentQuer
|
|
|
26
26
|
Join<K extends keyof T>(key: K): IDBSet<T>;
|
|
27
27
|
OrderDescendingBy<K extends keyof T>(key: K): IDBSet<T>;
|
|
28
28
|
Limit(limit: number): IDBSet<T>;
|
|
29
|
+
CountAsync(): Promise<number>;
|
|
29
30
|
ToListAsync(): Promise<T[]>;
|
|
30
31
|
FirstOrDefaultAsync(): Promise<T | undefined>;
|
|
31
32
|
WhereField<U extends keyof T, R extends PGDBSet<T>>(field: U): IFluentField<T, U, R>;
|
|
@@ -36,10 +37,13 @@ export default class PGDBSet<T extends object> implements IDBSet<T>, IFluentQuer
|
|
|
36
37
|
private CreatePromisse;
|
|
37
38
|
CleanQueryTree(): void;
|
|
38
39
|
private CreateValueStatement;
|
|
40
|
+
private EvaluateWhere;
|
|
39
41
|
private EvaluateStatement;
|
|
40
42
|
private EvaluateOrderBy;
|
|
41
43
|
private GetOperators;
|
|
42
44
|
private Reset;
|
|
45
|
+
private ResetFilters;
|
|
43
46
|
private IsCorrectType;
|
|
47
|
+
private BuildObjects;
|
|
44
48
|
}
|
|
45
49
|
//# sourceMappingURL=PGDBSet.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PGDBSet.d.ts","sourceRoot":"","sources":["../../src/implementations/PGDBSet.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAC,YAAY,EAAE,sBAAsB,EAAC,MAAM,mCAAmC,CAAC;AAI/F,OAAO,UAAU,MAAM,uCAAuC,CAAC;AAO/D,OAAO,WAAW,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"PGDBSet.d.ts","sourceRoot":"","sources":["../../src/implementations/PGDBSet.ts"],"names":[],"mappings":"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"}
|