remult 0.10.12 → 0.11.2
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/assign.js +0 -1
- package/classType.js +0 -1
- package/graphql.js +0 -1
- package/index.js +0 -1
- package/inputTypes.js +0 -1
- package/package.json +1 -1
- package/postgres/index.js +0 -1
- package/postgres/postgres-data-provider.d.ts +3 -3
- package/postgres/postgres-data-provider.js +136 -191
- package/postgres/postgresColumnSyntax.js +0 -1
- package/remult-express.js +0 -1
- package/remult-knex/index.d.ts +6 -5
- package/remult-knex/index.js +243 -287
- package/remult-mongo.js +150 -218
- package/server/JsonEntityFileStorage.js +0 -1
- package/server/expressBridge.d.ts +5 -0
- package/server/expressBridge.js +17 -2
- package/server/index.js +0 -1
- package/server/register-actions-on-server.js +0 -1
- package/server/register-entities-on-server.js +0 -1
- package/src/__EntityValueProvider.js +0 -1
- package/src/__RowsOfDataForTesting.js +0 -1
- package/src/backend-tests/backend-database-test-setup.backend-spec.d.ts +1 -1
- package/src/backend-tests/backend-database-test-setup.backend-spec.js +75 -53
- package/src/backend-tests/my-test.backend-spec.js +0 -1
- package/src/column-interfaces.js +0 -1
- package/src/column.js +0 -1
- package/src/context.js +0 -1
- package/src/data-api.js +0 -1
- package/src/data-interfaces.d.ts +0 -2
- package/src/data-interfaces.js +0 -1
- package/src/data-providers/array-entity-data-provider.js +0 -1
- package/src/data-providers/in-memory-database.js +0 -1
- package/src/data-providers/json-data-provider.js +0 -1
- package/src/data-providers/rest-data-provider.js +0 -1
- package/src/data-providers/sql-database.d.ts +0 -2
- package/src/data-providers/sql-database.js +199 -299
- package/src/data-providers/web-sql-data-provider.js +38 -57
- package/src/entity.js +0 -1
- package/src/filter/filter-consumer-bridge-to-sql-request.d.ts +15 -1
- package/src/filter/filter-consumer-bridge-to-sql-request.js +80 -51
- package/src/filter/filter-consumer-bridge-to-url-builder.js +0 -1
- package/src/filter/filter-interfaces.js +0 -1
- package/src/id-entity.js +0 -1
- package/src/remult3/RepositoryImplementation.d.ts +9 -1
- package/src/remult3/RepositoryImplementation.js +50 -19
- package/src/remult3/index.js +0 -1
- package/src/remult3/remult3.d.ts +5 -3
- package/src/remult3/remult3.js +0 -1
- package/src/server-action.js +0 -1
- package/src/shared-tests/db-tests-setup.js +0 -1
- package/src/shared-tests/db-tests.db-tests.js +2 -3
- package/src/shared-tests/deleteAll.js +0 -1
- package/src/shared-tests/entityWithValidations.js +0 -1
- package/src/shared-tests/index.js +0 -1
- package/src/shared-tests/test-custom-id-column.spec.js +0 -1
- package/src/shared-tests/test-special-value.spec.js +0 -1
- package/src/shared-tests/test-update-with-null.spec.js +0 -1
- package/src/sort.js +0 -1
- package/src/sql-command.js +0 -1
- package/src/tests/Done.js +0 -1
- package/src/tests/TestDataApiResponse.js +0 -1
- package/src/tests/c.js +0 -1
- package/src/tests/createData.js +0 -1
- package/src/tests/d.js +0 -1
- package/src/tests/dWithPrefilter.js +0 -1
- package/src/tests/entityForCustomFilter.js +24 -23
- package/src/tests/entityWithValidationsOnColumn.js +0 -1
- package/src/tests/h.js +0 -1
- package/src/tests/remult-3-entities.js +0 -1
- package/src/tests/tasks.js +0 -1
- package/src/tests/testModel/models.js +0 -1
- package/src/validators.js +0 -1
- package/urlBuilder.js +0 -1
- package/valueConverters.js +1 -2
- package/assign.js.map +0 -1
- package/classType.js.map +0 -1
- package/graphql.js.map +0 -1
- package/index.js.map +0 -1
- package/inputTypes.js.map +0 -1
- package/postgres/index.js.map +0 -1
- package/postgres/postgres-data-provider.js.map +0 -1
- package/postgres/postgresColumnSyntax.js.map +0 -1
- package/remult-express.js.map +0 -1
- package/remult-knex/index.js.map +0 -1
- package/remult-mongo.js.map +0 -1
- package/server/JsonEntityFileStorage.js.map +0 -1
- package/server/expressBridge.js.map +0 -1
- package/server/index.js.map +0 -1
- package/server/register-actions-on-server.js.map +0 -1
- package/server/register-entities-on-server.js.map +0 -1
- package/src/__EntityValueProvider.js.map +0 -1
- package/src/__RowsOfDataForTesting.js.map +0 -1
- package/src/backend-tests/backend-database-test-setup.backend-spec.js.map +0 -1
- package/src/backend-tests/my-test.backend-spec.js.map +0 -1
- package/src/column-interfaces.js.map +0 -1
- package/src/column.js.map +0 -1
- package/src/context.js.map +0 -1
- package/src/data-api.js.map +0 -1
- package/src/data-interfaces.js.map +0 -1
- package/src/data-providers/array-entity-data-provider.js.map +0 -1
- package/src/data-providers/in-memory-database.js.map +0 -1
- package/src/data-providers/json-data-provider.js.map +0 -1
- package/src/data-providers/rest-data-provider.js.map +0 -1
- package/src/data-providers/sql-database.js.map +0 -1
- package/src/data-providers/web-sql-data-provider.js.map +0 -1
- package/src/entity.js.map +0 -1
- package/src/filter/filter-consumer-bridge-to-sql-request.js.map +0 -1
- package/src/filter/filter-consumer-bridge-to-url-builder.js.map +0 -1
- package/src/filter/filter-interfaces.js.map +0 -1
- package/src/id-entity.js.map +0 -1
- package/src/remult3/RepositoryImplementation.js.map +0 -1
- package/src/remult3/index.js.map +0 -1
- package/src/remult3/remult3.js.map +0 -1
- package/src/server-action.js.map +0 -1
- package/src/shared-tests/db-tests-setup.js.map +0 -1
- package/src/shared-tests/db-tests.db-tests.js.map +0 -1
- package/src/shared-tests/deleteAll.js.map +0 -1
- package/src/shared-tests/entityWithValidations.js.map +0 -1
- package/src/shared-tests/index.js.map +0 -1
- package/src/shared-tests/test-custom-id-column.spec.js.map +0 -1
- package/src/shared-tests/test-special-value.spec.js.map +0 -1
- package/src/shared-tests/test-update-with-null.spec.js.map +0 -1
- package/src/sort.js.map +0 -1
- package/src/sql-command.js.map +0 -1
- package/src/tests/Done.js.map +0 -1
- package/src/tests/TestDataApiResponse.js.map +0 -1
- package/src/tests/c.js.map +0 -1
- package/src/tests/createData.js.map +0 -1
- package/src/tests/d.js.map +0 -1
- package/src/tests/dWithPrefilter.js.map +0 -1
- package/src/tests/entityForCustomFilter.js.map +0 -1
- package/src/tests/entityWithValidationsOnColumn.js.map +0 -1
- package/src/tests/h.js.map +0 -1
- package/src/tests/remult-3-entities.js.map +0 -1
- package/src/tests/tasks.js.map +0 -1
- package/src/tests/testModel/models.js.map +0 -1
- package/src/validators.js.map +0 -1
- package/urlBuilder.js.map +0 -1
- package/valueConverters.js.map +0 -1
package/assign.js
CHANGED
package/classType.js
CHANGED
package/graphql.js
CHANGED
package/index.js
CHANGED
|
@@ -55,4 +55,3 @@ var urlBuilder_1 = require("./urlBuilder");
|
|
|
55
55
|
Object.defineProperty(exports, "UrlBuilder", { enumerable: true, get: function () { return urlBuilder_1.UrlBuilder; } });
|
|
56
56
|
var validators_1 = require("./src/validators");
|
|
57
57
|
Object.defineProperty(exports, "Validators", { enumerable: true, get: function () { return validators_1.Validators; } });
|
|
58
|
-
//# sourceMappingURL=index.js.map
|
package/inputTypes.js
CHANGED
package/package.json
CHANGED
package/postgres/index.js
CHANGED
|
@@ -22,9 +22,9 @@ export declare function verifyStructureOfAllEntities(db: SqlDatabase, remult: Re
|
|
|
22
22
|
export declare class PostgresSchemaBuilder {
|
|
23
23
|
private pool;
|
|
24
24
|
verifyStructureOfAllEntities(remult: Remult): Promise<void>;
|
|
25
|
-
createIfNotExist(
|
|
26
|
-
addColumnIfNotExist<T extends EntityMetadata>(
|
|
27
|
-
verifyAllColumns<T extends EntityMetadata>(
|
|
25
|
+
createIfNotExist(entity: EntityMetadata): Promise<void>;
|
|
26
|
+
addColumnIfNotExist<T extends EntityMetadata>(entity: T, c: ((e: T) => FieldMetadata)): Promise<void>;
|
|
27
|
+
verifyAllColumns<T extends EntityMetadata>(entity: T): Promise<void>;
|
|
28
28
|
additionalWhere: string;
|
|
29
29
|
constructor(pool: SqlDatabase, schema?: string);
|
|
30
30
|
}
|
|
@@ -5,8 +5,8 @@ var tslib_1 = require("tslib");
|
|
|
5
5
|
var __1 = require("../");
|
|
6
6
|
var pg_1 = require("pg");
|
|
7
7
|
var context_1 = require("../src/context");
|
|
8
|
-
var sql_database_1 = require("../src/data-providers/sql-database");
|
|
9
8
|
var postgresColumnSyntax_1 = require("./postgresColumnSyntax");
|
|
9
|
+
var filter_consumer_bridge_to_sql_request_1 = require("../src/filter/filter-consumer-bridge-to-sql-request");
|
|
10
10
|
var PostgresDataProvider = /** @class */ (function () {
|
|
11
11
|
function PostgresDataProvider(pool) {
|
|
12
12
|
this.pool = pool;
|
|
@@ -113,55 +113,54 @@ var PostgresSchemaBuilder = /** @class */ (function () {
|
|
|
113
113
|
}
|
|
114
114
|
PostgresSchemaBuilder.prototype.verifyStructureOfAllEntities = function (remult) {
|
|
115
115
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
116
|
-
var allEntities_1, allEntities_1_1, entity,
|
|
117
|
-
var e_1,
|
|
118
|
-
return tslib_1.__generator(this, function (
|
|
119
|
-
switch (
|
|
116
|
+
var allEntities_1, allEntities_1_1, entityClass, entity, e, err_2, e_1_1;
|
|
117
|
+
var e_1, _a;
|
|
118
|
+
return tslib_1.__generator(this, function (_b) {
|
|
119
|
+
switch (_b.label) {
|
|
120
120
|
case 0:
|
|
121
121
|
console.log("start verify structure");
|
|
122
|
-
|
|
122
|
+
_b.label = 1;
|
|
123
123
|
case 1:
|
|
124
|
-
|
|
124
|
+
_b.trys.push([1, 12, 13, 14]);
|
|
125
125
|
allEntities_1 = tslib_1.__values(context_1.allEntities), allEntities_1_1 = allEntities_1.next();
|
|
126
|
-
|
|
126
|
+
_b.label = 2;
|
|
127
127
|
case 2:
|
|
128
128
|
if (!!allEntities_1_1.done) return [3 /*break*/, 11];
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
129
|
+
entityClass = allEntities_1_1.value;
|
|
130
|
+
entity = remult.repo(entityClass).metadata;
|
|
131
|
+
return [4 /*yield*/, filter_consumer_bridge_to_sql_request_1.getDbNameProvider(entity)];
|
|
132
132
|
case 3:
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
return [4 /*yield*/, metadata.getDbName()];
|
|
133
|
+
e = _b.sent();
|
|
134
|
+
_b.label = 4;
|
|
136
135
|
case 4:
|
|
137
|
-
|
|
138
|
-
return [
|
|
136
|
+
_b.trys.push([4, 9, , 10]);
|
|
137
|
+
if (!!entity.options.sqlExpression) return [3 /*break*/, 8];
|
|
138
|
+
return [4 /*yield*/, e.entityName];
|
|
139
139
|
case 5:
|
|
140
|
-
|
|
141
|
-
return [4 /*yield*/, this.
|
|
140
|
+
if (!((_b.sent()).toLowerCase().indexOf('from ') < 0)) return [3 /*break*/, 8];
|
|
141
|
+
return [4 /*yield*/, this.createIfNotExist(entity)];
|
|
142
142
|
case 6:
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
case 7:
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
_c = "failed verify structore of ";
|
|
150
|
-
return [4 /*yield*/, metadata.getDbName()];
|
|
143
|
+
_b.sent();
|
|
144
|
+
return [4 /*yield*/, this.verifyAllColumns(entity)];
|
|
145
|
+
case 7:
|
|
146
|
+
_b.sent();
|
|
147
|
+
_b.label = 8;
|
|
148
|
+
case 8: return [3 /*break*/, 10];
|
|
151
149
|
case 9:
|
|
152
|
-
|
|
150
|
+
err_2 = _b.sent();
|
|
151
|
+
console.log("failed verify structure of " + e.entityName + " ", err_2);
|
|
153
152
|
return [3 /*break*/, 10];
|
|
154
153
|
case 10:
|
|
155
154
|
allEntities_1_1 = allEntities_1.next();
|
|
156
155
|
return [3 /*break*/, 2];
|
|
157
156
|
case 11: return [3 /*break*/, 14];
|
|
158
157
|
case 12:
|
|
159
|
-
e_1_1 =
|
|
158
|
+
e_1_1 = _b.sent();
|
|
160
159
|
e_1 = { error: e_1_1 };
|
|
161
160
|
return [3 /*break*/, 14];
|
|
162
161
|
case 13:
|
|
163
162
|
try {
|
|
164
|
-
if (allEntities_1_1 && !allEntities_1_1.done && (
|
|
163
|
+
if (allEntities_1_1 && !allEntities_1_1.done && (_a = allEntities_1.return)) _a.call(allEntities_1);
|
|
165
164
|
}
|
|
166
165
|
finally { if (e_1) throw e_1.error; }
|
|
167
166
|
return [7 /*endfinally*/];
|
|
@@ -170,207 +169,154 @@ var PostgresSchemaBuilder = /** @class */ (function () {
|
|
|
170
169
|
});
|
|
171
170
|
});
|
|
172
171
|
};
|
|
173
|
-
PostgresSchemaBuilder.prototype.createIfNotExist = function (
|
|
172
|
+
PostgresSchemaBuilder.prototype.createIfNotExist = function (entity) {
|
|
174
173
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
175
|
-
var c,
|
|
174
|
+
var c, e;
|
|
176
175
|
var _this = this;
|
|
177
|
-
return tslib_1.__generator(this, function (
|
|
178
|
-
switch (
|
|
176
|
+
return tslib_1.__generator(this, function (_a) {
|
|
177
|
+
switch (_a.label) {
|
|
179
178
|
case 0:
|
|
180
179
|
c = this.pool.createCommand();
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
return [4 /*yield*/, e.
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
case 9:
|
|
228
|
-
e_2_1 = _j.sent();
|
|
229
|
-
e_2 = { error: e_2_1 };
|
|
230
|
-
return [3 /*break*/, 11];
|
|
231
|
-
case 10:
|
|
232
|
-
try {
|
|
233
|
-
if (_b && !_b.done && (_h = _a.return)) _h.call(_a);
|
|
234
|
-
}
|
|
235
|
-
finally { if (e_2) throw e_2.error; }
|
|
236
|
-
return [7 /*endfinally*/];
|
|
237
|
-
case 11:
|
|
238
|
-
_g = 'create table ';
|
|
239
|
-
return [4 /*yield*/, e.getDbName()];
|
|
240
|
-
case 12:
|
|
241
|
-
sql = _g + (_j.sent()) + ' (' + result + '\r\n)';
|
|
242
|
-
//console.log(sql);
|
|
243
|
-
return [4 /*yield*/, this.pool.execute(sql)];
|
|
244
|
-
case 13:
|
|
245
|
-
//console.log(sql);
|
|
246
|
-
_j.sent();
|
|
247
|
-
_j.label = 14;
|
|
248
|
-
case 14: return [2 /*return*/];
|
|
249
|
-
}
|
|
250
|
-
});
|
|
251
|
-
}); })];
|
|
180
|
+
return [4 /*yield*/, filter_consumer_bridge_to_sql_request_1.getDbNameProvider(entity)];
|
|
181
|
+
case 1:
|
|
182
|
+
e = _a.sent();
|
|
183
|
+
return [4 /*yield*/, c.execute("select 1 from information_Schema.tables where table_name=" + c.addParameterAndReturnSqlToken((e.entityName).toLowerCase()) + this.additionalWhere).then(function (r) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
184
|
+
var result, _a, _b, x, sql;
|
|
185
|
+
var e_2, _c;
|
|
186
|
+
return tslib_1.__generator(this, function (_d) {
|
|
187
|
+
switch (_d.label) {
|
|
188
|
+
case 0:
|
|
189
|
+
if (!(r.rows.length == 0)) return [3 /*break*/, 2];
|
|
190
|
+
result = '';
|
|
191
|
+
try {
|
|
192
|
+
for (_a = tslib_1.__values(entity.fields), _b = _a.next(); !_b.done; _b = _a.next()) {
|
|
193
|
+
x = _b.value;
|
|
194
|
+
if (!e.isDbReadonly(x) || x == entity.idMetadata.field && entity.options.dbAutoIncrementId) {
|
|
195
|
+
if (result.length != 0)
|
|
196
|
+
result += ',';
|
|
197
|
+
result += '\r\n ';
|
|
198
|
+
if (x == entity.idMetadata.field && entity.options.dbAutoIncrementId)
|
|
199
|
+
result += e.nameOf(x) + ' serial';
|
|
200
|
+
else {
|
|
201
|
+
result += postgresColumnSyntax_1.postgresColumnSyntax(x, e.nameOf(x));
|
|
202
|
+
if (x == entity.idMetadata.field)
|
|
203
|
+
result += ' primary key';
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
209
|
+
finally {
|
|
210
|
+
try {
|
|
211
|
+
if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
|
|
212
|
+
}
|
|
213
|
+
finally { if (e_2) throw e_2.error; }
|
|
214
|
+
}
|
|
215
|
+
sql = 'create table ' + e.entityName + ' (' + result + '\r\n)';
|
|
216
|
+
//console.log(sql);
|
|
217
|
+
return [4 /*yield*/, this.pool.execute(sql)];
|
|
218
|
+
case 1:
|
|
219
|
+
//console.log(sql);
|
|
220
|
+
_d.sent();
|
|
221
|
+
_d.label = 2;
|
|
222
|
+
case 2: return [2 /*return*/];
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
}); })];
|
|
252
226
|
case 2:
|
|
253
|
-
|
|
227
|
+
_a.sent();
|
|
254
228
|
return [2 /*return*/];
|
|
255
229
|
}
|
|
256
230
|
});
|
|
257
231
|
});
|
|
258
232
|
};
|
|
259
|
-
PostgresSchemaBuilder.prototype.addColumnIfNotExist = function (
|
|
233
|
+
PostgresSchemaBuilder.prototype.addColumnIfNotExist = function (entity, c) {
|
|
260
234
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
261
|
-
var
|
|
262
|
-
return tslib_1.__generator(this, function (
|
|
263
|
-
switch (
|
|
264
|
-
case 0: return [4 /*yield*/,
|
|
235
|
+
var e, cmd, colName, sql, err_3;
|
|
236
|
+
return tslib_1.__generator(this, function (_a) {
|
|
237
|
+
switch (_a.label) {
|
|
238
|
+
case 0: return [4 /*yield*/, filter_consumer_bridge_to_sql_request_1.getDbNameProvider(entity)];
|
|
265
239
|
case 1:
|
|
266
|
-
|
|
240
|
+
e = _a.sent();
|
|
241
|
+
if (e.isDbReadonly(c(entity)))
|
|
267
242
|
return [2 /*return*/];
|
|
268
|
-
|
|
243
|
+
_a.label = 2;
|
|
269
244
|
case 2:
|
|
270
|
-
|
|
245
|
+
_a.trys.push([2, 6, , 7]);
|
|
271
246
|
cmd = this.pool.createCommand();
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
_e = (_d = cmd).addParameterAndReturnSqlToken;
|
|
275
|
-
return [4 /*yield*/, e.getDbName()];
|
|
247
|
+
colName = e.nameOf(c(entity));
|
|
248
|
+
return [4 /*yield*/, cmd.execute("select 1 \n FROM information_schema.columns \n WHERE table_name=" + cmd.addParameterAndReturnSqlToken((e.entityName).toLocaleLowerCase()) + " and column_name=" + cmd.addParameterAndReturnSqlToken((colName).toLocaleLowerCase()) + this.additionalWhere)];
|
|
276
249
|
case 3:
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
return [4 /*yield*/, c(e).getDbName()];
|
|
280
|
-
case 4: return [4 /*yield*/, _b.apply(_a, [_f + _h.apply(_g, [(_o.sent()).toLocaleLowerCase()]) + this.additionalWhere])];
|
|
281
|
-
case 5:
|
|
282
|
-
if (!((_o.sent()).rows.length == 0)) return [3 /*break*/, 9];
|
|
283
|
-
_j = "alter table ";
|
|
284
|
-
return [4 /*yield*/, e.getDbName()];
|
|
285
|
-
case 6:
|
|
286
|
-
_k = _j + (_o.sent()) + " add column ";
|
|
287
|
-
_l = postgresColumnSyntax_1.postgresColumnSyntax;
|
|
288
|
-
_m = [c(e)];
|
|
289
|
-
return [4 /*yield*/, c(e).getDbName()];
|
|
290
|
-
case 7:
|
|
291
|
-
sql = _k + _l.apply(void 0, _m.concat([_o.sent()]));
|
|
250
|
+
if (!((_a.sent()).rows.length == 0)) return [3 /*break*/, 5];
|
|
251
|
+
sql = "alter table " + e.entityName + " add column " + postgresColumnSyntax_1.postgresColumnSyntax(c(entity), colName);
|
|
292
252
|
//console.log(sql);
|
|
293
253
|
return [4 /*yield*/, this.pool.execute(sql)];
|
|
294
|
-
case
|
|
254
|
+
case 4:
|
|
295
255
|
//console.log(sql);
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
case
|
|
299
|
-
case
|
|
300
|
-
err_3 =
|
|
256
|
+
_a.sent();
|
|
257
|
+
_a.label = 5;
|
|
258
|
+
case 5: return [3 /*break*/, 7];
|
|
259
|
+
case 6:
|
|
260
|
+
err_3 = _a.sent();
|
|
301
261
|
console.log(err_3);
|
|
302
|
-
return [3 /*break*/,
|
|
303
|
-
case
|
|
262
|
+
return [3 /*break*/, 7];
|
|
263
|
+
case 7: return [2 /*return*/];
|
|
304
264
|
}
|
|
305
265
|
});
|
|
306
266
|
});
|
|
307
267
|
};
|
|
308
|
-
PostgresSchemaBuilder.prototype.verifyAllColumns = function (
|
|
268
|
+
PostgresSchemaBuilder.prototype.verifyAllColumns = function (entity) {
|
|
309
269
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
310
|
-
var cmd, cols, _a, _b,
|
|
311
|
-
var e_3,
|
|
312
|
-
return tslib_1.__generator(this, function (
|
|
313
|
-
switch (
|
|
270
|
+
var cmd, e, cols, _a, _b, col, sql, e_3_1, err_4;
|
|
271
|
+
var e_3, _c;
|
|
272
|
+
return tslib_1.__generator(this, function (_d) {
|
|
273
|
+
switch (_d.label) {
|
|
314
274
|
case 0:
|
|
315
|
-
|
|
275
|
+
_d.trys.push([0, 11, , 12]);
|
|
316
276
|
cmd = this.pool.createCommand();
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
return [4 /*yield*/, e.
|
|
321
|
-
case 1: return [4 /*yield*/, _b.apply(_a, [_c + _e.apply(_d, [(_q.sent()).toLocaleLowerCase()]) + " " + this.additionalWhere])];
|
|
277
|
+
return [4 /*yield*/, filter_consumer_bridge_to_sql_request_1.getDbNameProvider(entity)];
|
|
278
|
+
case 1:
|
|
279
|
+
e = _d.sent();
|
|
280
|
+
return [4 /*yield*/, cmd.execute("select column_name \n FROM information_schema.columns \n WHERE table_name=" + cmd.addParameterAndReturnSqlToken((e.entityName).toLocaleLowerCase()) + " " + this.additionalWhere)];
|
|
322
281
|
case 2:
|
|
323
|
-
cols = (
|
|
324
|
-
|
|
282
|
+
cols = (_d.sent()).rows.map(function (x) { return x.column_name; });
|
|
283
|
+
_d.label = 3;
|
|
325
284
|
case 3:
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
285
|
+
_d.trys.push([3, 8, 9, 10]);
|
|
286
|
+
_a = tslib_1.__values(entity.fields), _b = _a.next();
|
|
287
|
+
_d.label = 4;
|
|
329
288
|
case 4:
|
|
330
|
-
if (!!
|
|
331
|
-
col =
|
|
332
|
-
return [
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
_j = (_h = cols).includes;
|
|
336
|
-
return [4 /*yield*/, col.getDbName()];
|
|
337
|
-
case 6:
|
|
338
|
-
if (!!_j.apply(_h, [(_q.sent()).toLocaleLowerCase()])) return [3 /*break*/, 10];
|
|
339
|
-
_k = "alter table ";
|
|
340
|
-
return [4 /*yield*/, e.getDbName()];
|
|
341
|
-
case 7:
|
|
342
|
-
_l = _k + (_q.sent()) + " add column ";
|
|
343
|
-
_m = postgresColumnSyntax_1.postgresColumnSyntax;
|
|
344
|
-
_o = [col];
|
|
345
|
-
return [4 /*yield*/, col.getDbName()];
|
|
346
|
-
case 8:
|
|
347
|
-
sql = _l + _m.apply(void 0, _o.concat([_q.sent()]));
|
|
289
|
+
if (!!_b.done) return [3 /*break*/, 7];
|
|
290
|
+
col = _b.value;
|
|
291
|
+
if (!!e.isDbReadonly(col)) return [3 /*break*/, 6];
|
|
292
|
+
if (!!cols.includes(e.nameOf(col).toLocaleLowerCase())) return [3 /*break*/, 6];
|
|
293
|
+
sql = "alter table " + e.entityName + " add column " + postgresColumnSyntax_1.postgresColumnSyntax(col, e.nameOf(col));
|
|
348
294
|
//console.log(sql);
|
|
349
295
|
return [4 /*yield*/, this.pool.execute(sql)];
|
|
350
|
-
case
|
|
296
|
+
case 5:
|
|
351
297
|
//console.log(sql);
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
case
|
|
355
|
-
|
|
298
|
+
_d.sent();
|
|
299
|
+
_d.label = 6;
|
|
300
|
+
case 6:
|
|
301
|
+
_b = _a.next();
|
|
356
302
|
return [3 /*break*/, 4];
|
|
357
|
-
case
|
|
358
|
-
case
|
|
359
|
-
e_3_1 =
|
|
303
|
+
case 7: return [3 /*break*/, 10];
|
|
304
|
+
case 8:
|
|
305
|
+
e_3_1 = _d.sent();
|
|
360
306
|
e_3 = { error: e_3_1 };
|
|
361
|
-
return [3 /*break*/,
|
|
362
|
-
case
|
|
307
|
+
return [3 /*break*/, 10];
|
|
308
|
+
case 9:
|
|
363
309
|
try {
|
|
364
|
-
if (
|
|
310
|
+
if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
|
|
365
311
|
}
|
|
366
312
|
finally { if (e_3) throw e_3.error; }
|
|
367
313
|
return [7 /*endfinally*/];
|
|
368
|
-
case
|
|
369
|
-
case
|
|
370
|
-
err_4 =
|
|
314
|
+
case 10: return [3 /*break*/, 12];
|
|
315
|
+
case 11:
|
|
316
|
+
err_4 = _d.sent();
|
|
371
317
|
console.log(err_4);
|
|
372
|
-
return [3 /*break*/,
|
|
373
|
-
case
|
|
318
|
+
return [3 /*break*/, 12];
|
|
319
|
+
case 12: return [2 /*return*/];
|
|
374
320
|
}
|
|
375
321
|
});
|
|
376
322
|
});
|
|
@@ -444,4 +390,3 @@ function createPostgresConnection(options) {
|
|
|
444
390
|
});
|
|
445
391
|
}
|
|
446
392
|
exports.createPostgresConnection = createPostgresConnection;
|
|
447
|
-
//# sourceMappingURL=postgres-data-provider.js.map
|
package/remult-express.js
CHANGED
|
@@ -3,4 +3,3 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.remultExpress = void 0;
|
|
4
4
|
var expressBridge_1 = require("./server/expressBridge");
|
|
5
5
|
Object.defineProperty(exports, "remultExpress", { enumerable: true, get: function () { return expressBridge_1.remultExpress; } });
|
|
6
|
-
//# sourceMappingURL=remult-express.js.map
|
package/remult-knex/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DataProvider, EntityDataProvider, EntityMetadata, FieldMetadata, Filter, Remult } from "..";
|
|
2
2
|
import { Knex } from 'knex';
|
|
3
3
|
import { FilterConsumer } from "../src/filter/filter-interfaces";
|
|
4
|
-
import { CustomSqlFilterObject } from "../src/filter/filter-consumer-bridge-to-sql-request";
|
|
4
|
+
import { CustomSqlFilterObject, dbNameProvider } from "../src/filter/filter-consumer-bridge-to-sql-request";
|
|
5
5
|
export declare class KnexDataProvider implements DataProvider {
|
|
6
6
|
knex: Knex;
|
|
7
7
|
constructor(knex: Knex);
|
|
@@ -10,11 +10,12 @@ export declare class KnexDataProvider implements DataProvider {
|
|
|
10
10
|
supportsCustomFilter?: boolean;
|
|
11
11
|
}
|
|
12
12
|
export declare class FilterConsumerBridgeToKnexRequest implements FilterConsumer {
|
|
13
|
+
private nameProvider;
|
|
13
14
|
_addWhere: boolean;
|
|
14
15
|
promises: Promise<void>[];
|
|
15
16
|
result: ((builder: Knex.QueryBuilder) => void)[];
|
|
16
17
|
resolveWhere(): Promise<((builder: Knex.QueryBuilder<any, any>) => void)[]>;
|
|
17
|
-
constructor();
|
|
18
|
+
constructor(nameProvider: dbNameProvider);
|
|
18
19
|
custom(key: string, customItem: any): void;
|
|
19
20
|
or(orElements: Filter[]): void;
|
|
20
21
|
isNull(col: FieldMetadata): void;
|
|
@@ -33,9 +34,9 @@ export declare class FilterConsumerBridgeToKnexRequest implements FilterConsumer
|
|
|
33
34
|
export declare class KnexSchemaBuilder {
|
|
34
35
|
private knex;
|
|
35
36
|
verifyStructureOfAllEntities(remult: Remult): Promise<void>;
|
|
36
|
-
createIfNotExist(
|
|
37
|
-
addColumnIfNotExist<T extends EntityMetadata>(
|
|
38
|
-
verifyAllColumns<T extends EntityMetadata>(
|
|
37
|
+
createIfNotExist(entity: EntityMetadata): Promise<void>;
|
|
38
|
+
addColumnIfNotExist<T extends EntityMetadata>(entity: T, c: ((e: T) => FieldMetadata)): Promise<void>;
|
|
39
|
+
verifyAllColumns<T extends EntityMetadata>(entity: T): Promise<void>;
|
|
39
40
|
additionalWhere: string;
|
|
40
41
|
constructor(knex: Knex);
|
|
41
42
|
}
|