remult 0.26.21 → 0.26.23-next.0
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/SseSubscriptionServer.d.ts +3 -4
- package/assign.js +1 -2
- package/esm/graphql.js +1 -1
- package/esm/remult-hono.js +3 -1
- package/esm/remult-knex/index.js +3 -1
- package/esm/remult-sqlite3.js +4 -1
- package/esm/remult-sveltekit.js +1 -0
- package/esm/server/index.js +3 -2
- package/esm/server/initAsyncHooks.js +3 -3
- package/esm/server/remult-admin.js +1 -4
- package/esm/server/remult-api-server.js +47 -48
- package/esm/src/CompoundIdField.js +9 -9
- package/esm/src/data-api.js +1 -1
- package/esm/src/data-providers/json-entity-opfs-storage.js +9 -5
- package/esm/src/data-providers/sql-database.js +9 -9
- package/esm/src/filter/filter-consumer-bridge-to-sql-request.js +3 -1
- package/esm/src/live-query/LiveQueryClient.js +0 -1
- package/esm/src/remult-proxy.js +1 -3
- package/esm/src/remult-static.js +1 -0
- package/esm/src/remult3/Fields.js +4 -3
- package/esm/src/remult3/RepositoryImplementation.js +143 -104
- package/esm/src/remult3/entity.js +1 -1
- package/esm/src/remult3/relation-loader.js +2 -2
- package/esm/src/remult3/remult3.js +9 -0
- package/esm/src/server-action.js +16 -12
- package/esm/src/sort.js +0 -2
- package/esm/src/validators.js +3 -3
- package/esm/src/valueConverters.js +2 -2
- package/graphql.js +3 -4
- package/index.js +2 -2
- package/live-query/data-provider-live-query-storage.js +6 -6
- package/migrations/compare-migration-snapshots.js +48 -49
- package/migrations/generate-migrations.js +1 -2
- package/migrations/migrate.js +2 -3
- package/migrations/migration-types.d.ts +1 -1
- package/migrations/migration-types.js +4 -4
- package/migrations/update-migrations-ts-file.js +1 -2
- package/myLog.js +1 -2
- package/package.json +1 -1
- package/postgres/postgres-data-provider.d.ts +2 -2
- package/postgres/postgres-data-provider.js +5 -5
- package/postgres/schema-builder.js +3 -3
- package/remult-express.js +4 -3
- package/remult-fastify.js +4 -3
- package/remult-fresh.js +1 -2
- package/remult-hapi.js +4 -3
- package/remult-hono.js +6 -3
- package/remult-knex/index.d.ts +1 -1
- package/remult-knex/index.js +7 -5
- package/remult-mongo.d.ts +1 -1
- package/remult-next.d.ts +4 -5
- package/remult-next.js +11 -6
- package/remult-nuxt.js +1 -2
- package/remult-solid-start.js +1 -2
- package/remult-sqlite3.js +4 -1
- package/remult-sveltekit.js +33 -35
- package/server/JsonEntityFileStorage.d.ts +1 -1
- package/server/get-remult-admin-html.js +1 -2
- package/server/index.d.ts +1 -1
- package/server/index.js +4 -3
- package/server/initAsyncHooks.d.ts +10 -10
- package/server/initAsyncHooks.js +5 -2
- package/server/initDataProvider.js +1 -2
- package/server/initDataProviderOrJson.js +1 -2
- package/server/remult-admin.js +3 -7
- package/server/remult-api-server.d.ts +22 -22
- package/server/remult-api-server.js +54 -48
- package/src/CompoundIdField.d.ts +1 -1
- package/src/CompoundIdField.js +9 -0
- package/src/buildRestDataProvider.d.ts +1 -1
- package/src/buildRestDataProvider.js +8 -8
- package/src/column-interfaces.d.ts +8 -8
- package/src/column-interfaces.js +1 -2
- package/src/column.d.ts +4 -4
- package/src/column.js +2 -2
- package/src/context.d.ts +4 -4
- package/src/context.js +5 -5
- package/src/data-api.d.ts +2 -2
- package/src/data-api.js +4 -4
- package/src/data-interfaces.js +1 -2
- package/src/data-providers/json-entity-opfs-storage.js +30 -16
- package/src/data-providers/rest-data-provider.d.ts +3 -3
- package/src/data-providers/rest-data-provider.js +4 -4
- package/src/data-providers/sql-database.js +11 -11
- package/src/filter/filter-consumer-bridge-to-sql-request.d.ts +3 -3
- package/src/filter/filter-consumer-bridge-to-sql-request.js +21 -19
- package/src/filter/filter-interfaces.d.ts +1 -1
- package/src/filter/filter-interfaces.js +10 -6
- package/src/isOfType.js +2 -3
- package/src/live-query/SubscriptionServer.js +95 -97
- package/src/remult-proxy.js +1 -3
- package/src/remult-static.d.ts +2 -2
- package/src/remult-static.js +7 -4
- package/src/remult3/Fields.d.ts +2 -2
- package/src/remult3/Fields.js +11 -9
- package/src/remult3/RepositoryImplementation.d.ts +41 -39
- package/src/remult3/RepositoryImplementation.js +416 -365
- package/src/remult3/__updateEntityBasedOnWhere.js +1 -2
- package/src/remult3/addValidator.d.ts +1 -1
- package/src/remult3/addValidator.js +1 -2
- package/src/remult3/classDescribers.d.ts +3 -3
- package/src/remult3/classDescribers.js +3 -4
- package/src/remult3/entity.js +2 -4
- package/src/remult3/getEntityRef.js +4 -4
- package/src/remult3/relation-loader.d.ts +1 -1
- package/src/remult3/relationInfoMember.d.ts +2 -2
- package/src/remult3/relationInfoMember.js +4 -5
- package/src/remult3/remult3.d.ts +13 -10
- package/src/remult3/remult3.js +9 -0
- package/src/remult3/repository-internals.d.ts +3 -3
- package/src/remult3/repository-internals.js +2 -2
- package/src/server-action.d.ts +1 -1
- package/src/server-action.js +65 -58
- package/src/sort.d.ts +1 -1
- package/src/sort.js +0 -2
- package/src/sql-command.d.ts +1 -1
- package/src/validators.d.ts +1 -1
- package/src/validators.js +13 -11
- package/src/valueConverters.js +3 -2
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
export const flags = {
|
|
2
2
|
error500RetryCount: 4,
|
|
3
3
|
};
|
|
4
|
+
/*y1 - typing discussion:
|
|
5
|
+
* all fields required in fields
|
|
6
|
+
* key as key of entity
|
|
7
|
+
* continue with?
|
|
8
|
+
* should and / or accept also undefined members? the code supports it, not sure if the api should
|
|
9
|
+
* Sql server expression supports undefined as a response
|
|
10
|
+
*/
|
|
4
11
|
//p1 - fix query docs to also explain how it can be used for infinite scroll and pagination.
|
|
5
12
|
//y1 - 'test expression columns without aliases'
|
|
13
|
+
//y1 - ts issue with fields - when a field is optional, it's $ is also optional and thats a problem
|
|
6
14
|
//p1 - see if I can fix the no alias problem in selects
|
|
7
15
|
//p1 - add luid - it's cool for order by.
|
|
8
16
|
//p1 - replace uuid with crypto.randomUUID and allow custom fallback
|
|
@@ -51,6 +59,7 @@ const result = await repo.batch(x=>({
|
|
|
51
59
|
//p1 - article on displayValue including it's definition for entities that is used in relations
|
|
52
60
|
//p1 - article auth.js with express - played with it, requires type="module" and a few more configurations - https://github.com/noam-honig/express-auth
|
|
53
61
|
//p2 - fix remult admin not to load the html into memory until used
|
|
62
|
+
//p2 - add update to entityRef and EntityBase
|
|
54
63
|
//y2 - currently for string fields we default for 255 in knex (which is their default) why not just use text (varchar max) - and only use exact length when one is provided?
|
|
55
64
|
//p2 - create foreign key constraints in user code - https://codesandbox.io/p/devbox/fk-validator-tdshcs
|
|
56
65
|
//p2 - admin url1 - pocketbase use /_ for the admin //{allowed?:Allowed,url?:string} also checkout the admin* as it should probably be something else and didn't work in hono
|
package/esm/src/server-action.js
CHANGED
|
@@ -81,7 +81,7 @@ export class myServerAction extends Action {
|
|
|
81
81
|
options;
|
|
82
82
|
originalMethod;
|
|
83
83
|
constructor(name, types, options, originalMethod) {
|
|
84
|
-
super(name, options.queue, options.allowed);
|
|
84
|
+
super(name, options.queue ?? false, options.allowed);
|
|
85
85
|
this.types = types;
|
|
86
86
|
this.options = options;
|
|
87
87
|
this.originalMethod = originalMethod;
|
|
@@ -146,7 +146,9 @@ export function BackendMethod(options) {
|
|
|
146
146
|
return await serverAction.doWork(args, undefined);
|
|
147
147
|
}
|
|
148
148
|
else
|
|
149
|
-
return await originalMethod.apply(
|
|
149
|
+
return await originalMethod.apply(
|
|
150
|
+
//@ts-expect-error I specifically referred to the this of the original function - so it'll be sent inside
|
|
151
|
+
this, args);
|
|
150
152
|
};
|
|
151
153
|
registerAction(target, result);
|
|
152
154
|
result[serverActionField] = serverAction;
|
|
@@ -173,7 +175,7 @@ export function BackendMethod(options) {
|
|
|
173
175
|
reg(controllerOptions.key +
|
|
174
176
|
'/' +
|
|
175
177
|
(options?.apiPrefix ? options.apiPrefix + '/' : '') +
|
|
176
|
-
key, options ? options.queue : false, options.allowed, async (d, req, res) => {
|
|
178
|
+
key, options ? options.queue ?? false : false, options.allowed, async (d, req, res) => {
|
|
177
179
|
d.args = d.args.map((x) => (isCustomUndefined(x) ? undefined : x));
|
|
178
180
|
let allowed = options.allowed;
|
|
179
181
|
try {
|
|
@@ -184,22 +186,23 @@ export function BackendMethod(options) {
|
|
|
184
186
|
if (remultStatic.allEntities.includes(constructor)) {
|
|
185
187
|
let repo = remult.repo(constructor);
|
|
186
188
|
let y;
|
|
187
|
-
|
|
189
|
+
const rowInfo = d.rowInfo;
|
|
190
|
+
if (rowInfo.isNewRow) {
|
|
188
191
|
y = repo.create();
|
|
189
192
|
let rowHelper = repo.getEntityRef(y);
|
|
190
|
-
await rowHelper._updateEntityBasedOnApi(
|
|
193
|
+
await rowHelper._updateEntityBasedOnApi(rowInfo.data);
|
|
191
194
|
}
|
|
192
195
|
else {
|
|
193
196
|
let rows = await repo.find({
|
|
194
197
|
where: {
|
|
195
|
-
...repo.metadata.idMetadata.getIdFilter(
|
|
196
|
-
$and: [repo.metadata.options.apiPrefilter],
|
|
198
|
+
...repo.metadata.idMetadata.getIdFilter(rowInfo.id),
|
|
199
|
+
$and: [repo.metadata.options.apiPrefilter ?? {}],
|
|
197
200
|
},
|
|
198
201
|
});
|
|
199
202
|
if (rows.length != 1)
|
|
200
203
|
throw new Error('not found or too many matches');
|
|
201
204
|
y = rows[0];
|
|
202
|
-
await repo.getEntityRef(y)._updateEntityBasedOnApi(
|
|
205
|
+
await repo.getEntityRef(y)._updateEntityBasedOnApi(rowInfo.data);
|
|
203
206
|
}
|
|
204
207
|
if (!remult.isAllowedForInstance(y, allowed))
|
|
205
208
|
throw new ForbiddenError();
|
|
@@ -265,7 +268,7 @@ export function BackendMethod(options) {
|
|
|
265
268
|
})(classOptions.key +
|
|
266
269
|
'/' +
|
|
267
270
|
(options?.apiPrefix ? options.apiPrefix + '/' : '') +
|
|
268
|
-
key, options
|
|
271
|
+
key, options?.queue ?? false, options.allowed).run({
|
|
269
272
|
args,
|
|
270
273
|
rowInfo: {
|
|
271
274
|
data: await defs.toApiJson(),
|
|
@@ -290,7 +293,7 @@ export function BackendMethod(options) {
|
|
|
290
293
|
})(x.classes.get(self.constructor).key +
|
|
291
294
|
'/' +
|
|
292
295
|
(options?.apiPrefix ? options.apiPrefix + '/' : '') +
|
|
293
|
-
key, options
|
|
296
|
+
key, options?.queue ?? false, options.allowed).run({
|
|
294
297
|
args,
|
|
295
298
|
fields: await defs.toApiJson(),
|
|
296
299
|
}, baseUrl, http);
|
|
@@ -304,12 +307,13 @@ export function BackendMethod(options) {
|
|
|
304
307
|
},
|
|
305
308
|
};
|
|
306
309
|
result = async function (...args) {
|
|
310
|
+
//@ts-ignore I specifically referred to the this of the original function - so it'll be sent inside
|
|
311
|
+
let self = this;
|
|
307
312
|
if (!isBackend()) {
|
|
308
|
-
let self = this;
|
|
309
313
|
return serverAction.doWork(args, self);
|
|
310
314
|
}
|
|
311
315
|
else
|
|
312
|
-
return await originalMethod.apply(
|
|
316
|
+
return await originalMethod.apply(self, args);
|
|
313
317
|
};
|
|
314
318
|
registerAction(target.constructor, result);
|
|
315
319
|
result[serverActionField] = serverAction;
|
package/esm/src/sort.js
CHANGED
|
@@ -83,8 +83,6 @@ export class Sort {
|
|
|
83
83
|
* @returns {Sort} A `Sort` instance representing the translated order by.
|
|
84
84
|
*/
|
|
85
85
|
static translateOrderByToSort(entityDefs, orderBy) {
|
|
86
|
-
if (!orderBy)
|
|
87
|
-
return undefined;
|
|
88
86
|
let sort = new Sort();
|
|
89
87
|
if (orderBy)
|
|
90
88
|
for (const key in orderBy) {
|
package/esm/src/validators.js
CHANGED
|
@@ -28,9 +28,9 @@ export class Validators {
|
|
|
28
28
|
static url = createValueValidator((val) => !!new URL(val), 'Invalid Url');
|
|
29
29
|
static in = createValueValidatorWithArgs((val, values) => values.includes(val), (values) => `Value must be one of: ${values
|
|
30
30
|
.map((y) => typeof y === 'object'
|
|
31
|
-
? y['id'] !== undefined
|
|
32
|
-
? y['id']
|
|
33
|
-
: y
|
|
31
|
+
? y?.['id'] !== undefined
|
|
32
|
+
? y?.['id']
|
|
33
|
+
: y?.toString()
|
|
34
34
|
: y)
|
|
35
35
|
.join(', ')}`);
|
|
36
36
|
static notNull = createValueValidator((val) => val != null, 'Should not be null');
|
|
@@ -72,7 +72,7 @@ export class ValueConverters {
|
|
|
72
72
|
if (!val)
|
|
73
73
|
return null;
|
|
74
74
|
return ValueConverters.DateOnly.fromJson(ValueConverters.DateOnly.toJson(val));
|
|
75
|
-
},
|
|
75
|
+
}, //when using date storage, the database expects and returns a date local and every where else we reflect on date iso
|
|
76
76
|
fromDb: (val) => {
|
|
77
77
|
return ValueConverters.Date.fromDb(val);
|
|
78
78
|
},
|
|
@@ -141,7 +141,7 @@ export class ValueConverters {
|
|
|
141
141
|
return r;
|
|
142
142
|
},
|
|
143
143
|
toInput: (x, type) => {
|
|
144
|
-
return x?.toString();
|
|
144
|
+
return x?.toString() ?? '';
|
|
145
145
|
},
|
|
146
146
|
inputType: InputTypes.number,
|
|
147
147
|
};
|
package/graphql.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.remultGraphql = remultGraphql;
|
|
4
|
+
exports.translateWhereToRestBody = translateWhereToRestBody;
|
|
4
5
|
var tslib_1 = require("tslib");
|
|
5
6
|
var internals_js_1 = require("./internals.js");
|
|
6
7
|
var index_js_1 = require("./index.js");
|
|
@@ -940,7 +941,6 @@ function remultGraphql(options) {
|
|
|
940
941
|
_a));
|
|
941
942
|
}
|
|
942
943
|
}
|
|
943
|
-
exports.remultGraphql = remultGraphql;
|
|
944
944
|
function getQueryArgsConnection(key) {
|
|
945
945
|
var queryArgsConnection = [
|
|
946
946
|
{
|
|
@@ -1168,8 +1168,7 @@ function translateWhereToRestBody(fields, _a) {
|
|
|
1168
1168
|
finally { if (e_7) throw e_7.error; }
|
|
1169
1169
|
}
|
|
1170
1170
|
if (where.OR) {
|
|
1171
|
-
result.OR = where.OR.map(function (where) { return translateWhereToRestBody(fields, { where: where }).where; });
|
|
1171
|
+
result.OR = where.OR.map(function (where) { var _a; return (_a = translateWhereToRestBody(fields, { where: where })) === null || _a === void 0 ? void 0 : _a.where; });
|
|
1172
1172
|
}
|
|
1173
1173
|
return { where: result };
|
|
1174
1174
|
}
|
|
1175
|
-
exports.translateWhereToRestBody = translateWhereToRestBody;
|
package/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.SubscriptionChannel = exports.InMemoryLiveQueryStorage = exports.remult = exports.ValueConverters = exports.createValueValidator = exports.createValueValidatorWithArgs = exports.createValidatorWithArgs = exports.createValidator = exports.valueValidator = exports.Validators = exports.UrlBuilder = exports.Filter = exports.CompoundIdField = exports.Sort = exports.EventSource = exports.isBackend = exports.withRemult = exports.Remult = exports.Allow = exports.ForbiddenError = exports.ProgressListener = exports.BackendMethod = exports.Controller = exports.JsonEntityOpfsStorage = exports.JsonDataProvider = exports.dbNamesOf = exports.CustomSqlFilterBuilder = exports.SqlDatabase = exports.WebSqlDataProvider = exports.InMemoryDataProvider = exports.RestDataProvider = exports.describeEntity = exports.describeBackendMethods = exports.describeClass = exports.IdEntity = exports.Relations = exports.Fields = exports.Field = exports.getEntityRef = exports.Entity = exports.CaptionTransformer = exports.ValueListInfo = exports.getValueList = exports.ValueListFieldType = exports.getFields = exports.FieldType = exports.ControllerBase = exports.EntityBase = exports.ArrayEntityDataProvider = void 0;
|
|
4
|
+
exports.repo = repo;
|
|
4
5
|
var array_entity_data_provider_js_1 = require("./src/data-providers/array-entity-data-provider.js");
|
|
5
6
|
Object.defineProperty(exports, "ArrayEntityDataProvider", { enumerable: true, get: function () { return array_entity_data_provider_js_1.ArrayEntityDataProvider; } });
|
|
6
7
|
var RepositoryImplementation_js_1 = require("./src/remult3/RepositoryImplementation.js");
|
|
@@ -93,4 +94,3 @@ Object.defineProperty(exports, "SubscriptionChannel", { enumerable: true, get: f
|
|
|
93
94
|
function repo(entity, dataProvider) {
|
|
94
95
|
return remult_proxy_js_2.remult.repo(entity, dataProvider);
|
|
95
96
|
}
|
|
96
|
-
exports.repo = repo;
|
|
@@ -36,11 +36,11 @@ var DataProviderLiveQueryStorage = /** @class */ (function () {
|
|
|
36
36
|
});
|
|
37
37
|
};
|
|
38
38
|
DataProviderLiveQueryStorage.prototype.add = function (_a) {
|
|
39
|
-
|
|
40
|
-
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
39
|
+
return tslib_1.__awaiter(this, arguments, void 0, function (_b) {
|
|
41
40
|
var _this = this;
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
var id = _b.id, entityKey = _b.entityKey, data = _b.data;
|
|
42
|
+
return tslib_1.__generator(this, function (_c) {
|
|
43
|
+
switch (_c.label) {
|
|
44
44
|
case 0: return [4 /*yield*/, this.repo.then(function (repo) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
45
45
|
var q;
|
|
46
46
|
return tslib_1.__generator(this, function (_a) {
|
|
@@ -56,7 +56,7 @@ var DataProviderLiveQueryStorage = /** @class */ (function () {
|
|
|
56
56
|
});
|
|
57
57
|
}); })];
|
|
58
58
|
case 1:
|
|
59
|
-
|
|
59
|
+
_c.sent();
|
|
60
60
|
return [2 /*return*/];
|
|
61
61
|
}
|
|
62
62
|
});
|
|
@@ -231,7 +231,7 @@ var LiveQueryStorageEntity = /** @class */ (function (_super) {
|
|
|
231
231
|
tslib_1.__extends(LiveQueryStorageEntity, _super);
|
|
232
232
|
/*@internal */
|
|
233
233
|
function LiveQueryStorageEntity() {
|
|
234
|
-
var _this = _super
|
|
234
|
+
var _this = _super.apply(this, tslib_1.__spreadArray([], tslib_1.__read(arguments), false)) || this;
|
|
235
235
|
_this.id = '';
|
|
236
236
|
_this.entityKey = '';
|
|
237
237
|
_this.lastUsedIso = new Date().toISOString();
|
|
@@ -1,31 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.compareMigrationSnapshot = compareMigrationSnapshot;
|
|
4
|
+
exports.emptySnapshot = emptySnapshot;
|
|
4
5
|
var tslib_1 = require("tslib");
|
|
5
6
|
var index_js_1 = require("../index.js");
|
|
6
7
|
var filter_consumer_bridge_to_sql_request_js_1 = require("../src/filter/filter-consumer-bridge-to-sql-request.js");
|
|
7
8
|
function compareMigrationSnapshot(_a) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
return tslib_1.__generator(this, function (
|
|
13
|
-
switch (
|
|
9
|
+
return tslib_1.__awaiter(this, arguments, void 0, function (_b) {
|
|
10
|
+
var processedEntities, entities_1, entities_1_1, entity, meta, e, entitySnapshot, createColumns, processedColumns, _c, _d, field, columnDbName, column, e_1_1, _e, _f, columnDbName, e_2_1, e_3_1, _g, _h, entityDbName, e_4_1;
|
|
11
|
+
var e_3, _j, e_1, _k, e_2, _l, e_4, _m;
|
|
12
|
+
var entities = _b.entities, snapshot = _b.snapshot, migrationBuilder = _b.migrationBuilder, reporter = _b.reporter;
|
|
13
|
+
return tslib_1.__generator(this, function (_o) {
|
|
14
|
+
switch (_o.label) {
|
|
14
15
|
case 0:
|
|
15
16
|
snapshot = JSON.parse(JSON.stringify(snapshot));
|
|
16
17
|
processedEntities = new Set();
|
|
17
|
-
|
|
18
|
+
_o.label = 1;
|
|
18
19
|
case 1:
|
|
19
|
-
|
|
20
|
+
_o.trys.push([1, 23, 24, 25]);
|
|
20
21
|
entities_1 = tslib_1.__values(entities), entities_1_1 = entities_1.next();
|
|
21
|
-
|
|
22
|
+
_o.label = 2;
|
|
22
23
|
case 2:
|
|
23
24
|
if (!!entities_1_1.done) return [3 /*break*/, 22];
|
|
24
25
|
entity = entities_1_1.value;
|
|
25
26
|
meta = (0, index_js_1.repo)(entity).metadata;
|
|
26
27
|
return [4 /*yield*/, (0, filter_consumer_bridge_to_sql_request_js_1.dbNamesOf)(meta, function (x) { return x; })];
|
|
27
28
|
case 3:
|
|
28
|
-
e =
|
|
29
|
+
e = _o.sent();
|
|
29
30
|
processedEntities.add(e.$entityName);
|
|
30
31
|
if (!(0, filter_consumer_bridge_to_sql_request_js_1.shouldCreateEntity)(meta, e)) return [3 /*break*/, 21];
|
|
31
32
|
entitySnapshot = snapshot.entities[e.$entityName];
|
|
@@ -35,23 +36,23 @@ function compareMigrationSnapshot(_a) {
|
|
|
35
36
|
reporter('create table ' + e.$entityName);
|
|
36
37
|
return [4 /*yield*/, migrationBuilder.createTable(meta)];
|
|
37
38
|
case 4:
|
|
38
|
-
|
|
39
|
+
_o.sent();
|
|
39
40
|
entitySnapshot = snapshot.entities[e.$entityName] = {
|
|
40
41
|
key: meta.key,
|
|
41
42
|
className: meta.entityType.name,
|
|
42
43
|
columns: {},
|
|
43
44
|
};
|
|
44
|
-
|
|
45
|
+
_o.label = 5;
|
|
45
46
|
case 5:
|
|
46
47
|
processedColumns = new Set();
|
|
47
|
-
|
|
48
|
+
_o.label = 6;
|
|
48
49
|
case 6:
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
_o.trys.push([6, 12, 13, 14]);
|
|
51
|
+
_c = (e_1 = void 0, tslib_1.__values(meta.fields)), _d = _c.next();
|
|
52
|
+
_o.label = 7;
|
|
52
53
|
case 7:
|
|
53
|
-
if (!!
|
|
54
|
-
field =
|
|
54
|
+
if (!!_d.done) return [3 /*break*/, 11];
|
|
55
|
+
field = _d.value;
|
|
55
56
|
if (!!(0, filter_consumer_bridge_to_sql_request_js_1.shouldNotCreateField)(field, e)) return [3 /*break*/, 10];
|
|
56
57
|
columnDbName = e.$dbNameOf(field);
|
|
57
58
|
processedColumns.add(columnDbName);
|
|
@@ -61,50 +62,50 @@ function compareMigrationSnapshot(_a) {
|
|
|
61
62
|
reporter('add column ' + e.$entityName + '.' + columnDbName);
|
|
62
63
|
return [4 /*yield*/, migrationBuilder.addColumn(meta, field)];
|
|
63
64
|
case 8:
|
|
64
|
-
|
|
65
|
-
|
|
65
|
+
_o.sent();
|
|
66
|
+
_o.label = 9;
|
|
66
67
|
case 9:
|
|
67
68
|
entitySnapshot.columns[columnDbName] = { key: field.key };
|
|
68
|
-
|
|
69
|
+
_o.label = 10;
|
|
69
70
|
case 10:
|
|
70
|
-
|
|
71
|
+
_d = _c.next();
|
|
71
72
|
return [3 /*break*/, 7];
|
|
72
73
|
case 11: return [3 /*break*/, 14];
|
|
73
74
|
case 12:
|
|
74
|
-
e_1_1 =
|
|
75
|
+
e_1_1 = _o.sent();
|
|
75
76
|
e_1 = { error: e_1_1 };
|
|
76
77
|
return [3 /*break*/, 14];
|
|
77
78
|
case 13:
|
|
78
79
|
try {
|
|
79
|
-
if (
|
|
80
|
+
if (_d && !_d.done && (_k = _c.return)) _k.call(_c);
|
|
80
81
|
}
|
|
81
82
|
finally { if (e_1) throw e_1.error; }
|
|
82
83
|
return [7 /*endfinally*/];
|
|
83
84
|
case 14:
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
85
|
+
_o.trys.push([14, 19, 20, 21]);
|
|
86
|
+
_e = (e_2 = void 0, tslib_1.__values(Object.keys(entitySnapshot.columns))), _f = _e.next();
|
|
87
|
+
_o.label = 15;
|
|
87
88
|
case 15:
|
|
88
|
-
if (!!
|
|
89
|
-
columnDbName =
|
|
89
|
+
if (!!_f.done) return [3 /*break*/, 18];
|
|
90
|
+
columnDbName = _f.value;
|
|
90
91
|
if (!!processedColumns.has(columnDbName)) return [3 /*break*/, 17];
|
|
91
92
|
reporter('remove column ' + e.$entityName + '.' + columnDbName);
|
|
92
93
|
return [4 /*yield*/, migrationBuilder.removeColumn(e.$entityName, columnDbName)];
|
|
93
94
|
case 16:
|
|
94
|
-
|
|
95
|
+
_o.sent();
|
|
95
96
|
delete entitySnapshot.columns[columnDbName];
|
|
96
|
-
|
|
97
|
+
_o.label = 17;
|
|
97
98
|
case 17:
|
|
98
|
-
|
|
99
|
+
_f = _e.next();
|
|
99
100
|
return [3 /*break*/, 15];
|
|
100
101
|
case 18: return [3 /*break*/, 21];
|
|
101
102
|
case 19:
|
|
102
|
-
e_2_1 =
|
|
103
|
+
e_2_1 = _o.sent();
|
|
103
104
|
e_2 = { error: e_2_1 };
|
|
104
105
|
return [3 /*break*/, 21];
|
|
105
106
|
case 20:
|
|
106
107
|
try {
|
|
107
|
-
if (
|
|
108
|
+
if (_f && !_f.done && (_l = _e.return)) _l.call(_e);
|
|
108
109
|
}
|
|
109
110
|
finally { if (e_2) throw e_2.error; }
|
|
110
111
|
return [7 /*endfinally*/];
|
|
@@ -113,40 +114,40 @@ function compareMigrationSnapshot(_a) {
|
|
|
113
114
|
return [3 /*break*/, 2];
|
|
114
115
|
case 22: return [3 /*break*/, 25];
|
|
115
116
|
case 23:
|
|
116
|
-
e_3_1 =
|
|
117
|
+
e_3_1 = _o.sent();
|
|
117
118
|
e_3 = { error: e_3_1 };
|
|
118
119
|
return [3 /*break*/, 25];
|
|
119
120
|
case 24:
|
|
120
121
|
try {
|
|
121
|
-
if (entities_1_1 && !entities_1_1.done && (
|
|
122
|
+
if (entities_1_1 && !entities_1_1.done && (_j = entities_1.return)) _j.call(entities_1);
|
|
122
123
|
}
|
|
123
124
|
finally { if (e_3) throw e_3.error; }
|
|
124
125
|
return [7 /*endfinally*/];
|
|
125
126
|
case 25:
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
127
|
+
_o.trys.push([25, 30, 31, 32]);
|
|
128
|
+
_g = tslib_1.__values(Object.keys(snapshot.entities)), _h = _g.next();
|
|
129
|
+
_o.label = 26;
|
|
129
130
|
case 26:
|
|
130
|
-
if (!!
|
|
131
|
-
entityDbName =
|
|
131
|
+
if (!!_h.done) return [3 /*break*/, 29];
|
|
132
|
+
entityDbName = _h.value;
|
|
132
133
|
if (!!processedEntities.has(entityDbName)) return [3 /*break*/, 28];
|
|
133
134
|
reporter('remove table ' + entityDbName);
|
|
134
135
|
return [4 /*yield*/, migrationBuilder.removeTable(entityDbName)];
|
|
135
136
|
case 27:
|
|
136
|
-
|
|
137
|
+
_o.sent();
|
|
137
138
|
delete snapshot.entities[entityDbName];
|
|
138
|
-
|
|
139
|
+
_o.label = 28;
|
|
139
140
|
case 28:
|
|
140
|
-
|
|
141
|
+
_h = _g.next();
|
|
141
142
|
return [3 /*break*/, 26];
|
|
142
143
|
case 29: return [3 /*break*/, 32];
|
|
143
144
|
case 30:
|
|
144
|
-
e_4_1 =
|
|
145
|
+
e_4_1 = _o.sent();
|
|
145
146
|
e_4 = { error: e_4_1 };
|
|
146
147
|
return [3 /*break*/, 32];
|
|
147
148
|
case 31:
|
|
148
149
|
try {
|
|
149
|
-
if (
|
|
150
|
+
if (_h && !_h.done && (_m = _g.return)) _m.call(_g);
|
|
150
151
|
}
|
|
151
152
|
finally { if (e_4) throw e_4.error; }
|
|
152
153
|
return [7 /*endfinally*/];
|
|
@@ -155,11 +156,9 @@ function compareMigrationSnapshot(_a) {
|
|
|
155
156
|
});
|
|
156
157
|
});
|
|
157
158
|
}
|
|
158
|
-
exports.compareMigrationSnapshot = compareMigrationSnapshot;
|
|
159
159
|
function emptySnapshot() {
|
|
160
160
|
return {
|
|
161
161
|
version: 1,
|
|
162
162
|
entities: {},
|
|
163
163
|
};
|
|
164
164
|
}
|
|
165
|
-
exports.emptySnapshot = emptySnapshot;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.generateMigrations =
|
|
3
|
+
exports.generateMigrations = generateMigrations;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var path_1 = tslib_1.__importDefault(require("path"));
|
|
6
6
|
var fs_1 = tslib_1.__importDefault(require("fs"));
|
|
@@ -101,4 +101,3 @@ function generateMigrations(options) {
|
|
|
101
101
|
});
|
|
102
102
|
});
|
|
103
103
|
}
|
|
104
|
-
exports.generateMigrations = generateMigrations;
|
package/migrations/migrate.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.migrate =
|
|
3
|
+
exports.migrate = migrate;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var index_js_1 = require("../index.js");
|
|
6
6
|
var initDataProviderOrJson_js_1 = require("../server/initDataProviderOrJson.js");
|
|
@@ -37,7 +37,7 @@ function migrate(options) {
|
|
|
37
37
|
VersionInfo_1 = /** @class */ (function (_super) {
|
|
38
38
|
tslib_1.__extends(VersionInfo, _super);
|
|
39
39
|
function VersionInfo() {
|
|
40
|
-
var _this = _super
|
|
40
|
+
var _this = _super.apply(this, tslib_1.__spreadArray([], tslib_1.__read(arguments), false)) || this;
|
|
41
41
|
_this.version = -1;
|
|
42
42
|
return _this;
|
|
43
43
|
}
|
|
@@ -168,4 +168,3 @@ function migrate(options) {
|
|
|
168
168
|
});
|
|
169
169
|
});
|
|
170
170
|
}
|
|
171
|
-
exports.migrate = migrate;
|
|
@@ -40,7 +40,7 @@ export type MigrationUtils = {
|
|
|
40
40
|
export declare class DefaultMigrationBuilder implements Required<MigrationBuilder> {
|
|
41
41
|
code: MigrationCode;
|
|
42
42
|
private wrapped?;
|
|
43
|
-
constructor(code: MigrationCode, wrapped?: MigrationBuilder);
|
|
43
|
+
constructor(code: MigrationCode, wrapped?: MigrationBuilder | undefined);
|
|
44
44
|
createTable(meta: EntityMetadata): Promise<void>;
|
|
45
45
|
addColumn(meta: EntityMetadata, field: FieldMetadata): Promise<void>;
|
|
46
46
|
removeTable(entityDbName: string): Promise<void>;
|
|
@@ -8,8 +8,8 @@ var DefaultMigrationBuilder = /** @class */ (function () {
|
|
|
8
8
|
this.wrapped = wrapped;
|
|
9
9
|
}
|
|
10
10
|
DefaultMigrationBuilder.prototype.createTable = function (meta) {
|
|
11
|
-
var _a;
|
|
12
11
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
12
|
+
var _a;
|
|
13
13
|
return tslib_1.__generator(this, function (_b) {
|
|
14
14
|
switch (_b.label) {
|
|
15
15
|
case 0:
|
|
@@ -27,8 +27,8 @@ var DefaultMigrationBuilder = /** @class */ (function () {
|
|
|
27
27
|
});
|
|
28
28
|
};
|
|
29
29
|
DefaultMigrationBuilder.prototype.addColumn = function (meta, field) {
|
|
30
|
-
var _a;
|
|
31
30
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
31
|
+
var _a;
|
|
32
32
|
return tslib_1.__generator(this, function (_b) {
|
|
33
33
|
switch (_b.label) {
|
|
34
34
|
case 0:
|
|
@@ -46,8 +46,8 @@ var DefaultMigrationBuilder = /** @class */ (function () {
|
|
|
46
46
|
});
|
|
47
47
|
};
|
|
48
48
|
DefaultMigrationBuilder.prototype.removeTable = function (entityDbName) {
|
|
49
|
-
var _a;
|
|
50
49
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
50
|
+
var _a;
|
|
51
51
|
return tslib_1.__generator(this, function (_b) {
|
|
52
52
|
switch (_b.label) {
|
|
53
53
|
case 0:
|
|
@@ -65,8 +65,8 @@ var DefaultMigrationBuilder = /** @class */ (function () {
|
|
|
65
65
|
});
|
|
66
66
|
};
|
|
67
67
|
DefaultMigrationBuilder.prototype.removeColumn = function (entityName, columnDbName) {
|
|
68
|
-
var _a;
|
|
69
68
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
69
|
+
var _a;
|
|
70
70
|
return tslib_1.__generator(this, function (_b) {
|
|
71
71
|
switch (_b.label) {
|
|
72
72
|
case 0:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// consider replacing with https://www.npmjs.com/package/ts-morph
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.updateMigrationsFile =
|
|
4
|
+
exports.updateMigrationsFile = updateMigrationsFile;
|
|
5
5
|
var tslib_1 = require("tslib");
|
|
6
6
|
function updateMigrationsFile(filePath, steps) {
|
|
7
7
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
@@ -138,4 +138,3 @@ function updateMigrationsFile(filePath, steps) {
|
|
|
138
138
|
});
|
|
139
139
|
});
|
|
140
140
|
}
|
|
141
|
-
exports.updateMigrationsFile = updateMigrationsFile;
|
package/myLog.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.writeToLog =
|
|
3
|
+
exports.writeToLog = writeToLog;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
function writeToLog(what) {
|
|
6
6
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
@@ -17,4 +17,3 @@ function writeToLog(what) {
|
|
|
17
17
|
});
|
|
18
18
|
});
|
|
19
19
|
}
|
|
20
|
-
exports.writeToLog = writeToLog;
|
package/package.json
CHANGED
|
@@ -24,10 +24,10 @@ export declare class PostgresDataProvider implements SqlImplementation, CanBuild
|
|
|
24
24
|
caseInsensitiveIdentifiers?: boolean;
|
|
25
25
|
schema?: string;
|
|
26
26
|
orderByNullsFirst?: boolean;
|
|
27
|
-
});
|
|
27
|
+
} | undefined);
|
|
28
28
|
end(): Promise<void>;
|
|
29
29
|
provideMigrationBuilder(builder: MigrationCode): MigrationBuilder;
|
|
30
|
-
wrapIdentifier: (name:
|
|
30
|
+
wrapIdentifier: (name: string) => string;
|
|
31
31
|
ensureSchema(entities: EntityMetadata<any>[]): Promise<void>;
|
|
32
32
|
orderByNullsFirst?: boolean;
|
|
33
33
|
transaction(action: (dataProvider: SqlImplementation) => Promise<void>): Promise<void>;
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PostgresSchemaWrapper = exports.
|
|
3
|
+
exports.PostgresSchemaWrapper = exports.PostgresDataProvider = void 0;
|
|
4
|
+
exports.createPostgresConnection = createPostgresConnection;
|
|
5
|
+
exports.createPostgresDataProvider = createPostgresDataProvider;
|
|
6
|
+
exports.preparePostgresQueueStorage = preparePostgresQueueStorage;
|
|
4
7
|
var tslib_1 = require("tslib");
|
|
5
8
|
var remult_proxy_js_1 = require("../src/remult-proxy.js");
|
|
6
9
|
var pg_1 = tslib_1.__importDefault(require("pg"));
|
|
@@ -90,9 +93,9 @@ var PostgresDataProvider = /** @class */ (function () {
|
|
|
90
93
|
};
|
|
91
94
|
};
|
|
92
95
|
PostgresDataProvider.prototype.ensureSchema = function (entities) {
|
|
93
|
-
var _a;
|
|
94
96
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
95
97
|
var db, sb;
|
|
98
|
+
var _a;
|
|
96
99
|
return tslib_1.__generator(this, function (_b) {
|
|
97
100
|
switch (_b.label) {
|
|
98
101
|
case 0:
|
|
@@ -199,7 +202,6 @@ function createPostgresConnection(options) {
|
|
|
199
202
|
});
|
|
200
203
|
});
|
|
201
204
|
}
|
|
202
|
-
exports.createPostgresConnection = createPostgresConnection;
|
|
203
205
|
function createPostgresDataProvider(options) {
|
|
204
206
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
205
207
|
var config, db;
|
|
@@ -237,7 +239,6 @@ function createPostgresDataProvider(options) {
|
|
|
237
239
|
});
|
|
238
240
|
});
|
|
239
241
|
}
|
|
240
|
-
exports.createPostgresDataProvider = createPostgresDataProvider;
|
|
241
242
|
function preparePostgresQueueStorage(sql) {
|
|
242
243
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
243
244
|
var c, JobsInQueueEntity, e;
|
|
@@ -260,7 +261,6 @@ function preparePostgresQueueStorage(sql) {
|
|
|
260
261
|
});
|
|
261
262
|
});
|
|
262
263
|
}
|
|
263
|
-
exports.preparePostgresQueueStorage = preparePostgresQueueStorage;
|
|
264
264
|
var PostgresSchemaWrapper = /** @class */ (function () {
|
|
265
265
|
function PostgresSchemaWrapper(pool, schema) {
|
|
266
266
|
this.pool = pool;
|