remult 0.23.3 → 0.23.4
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/esm/server/expressBridge.js +39 -43
- package/package.json +1 -1
- package/server/expressBridge.js +89 -94
|
@@ -31,43 +31,6 @@ export function createRemultServerCore(options, serverCoreOptions) {
|
|
|
31
31
|
if (options.ensureSchema === undefined)
|
|
32
32
|
options.ensureSchema = true;
|
|
33
33
|
RemultAsyncLocalStorage.enable();
|
|
34
|
-
const entitiesMetaData = [];
|
|
35
|
-
dataProvider = dataProvider.then(async (dp) => {
|
|
36
|
-
var remult = new Remult(dp);
|
|
37
|
-
await new Promise((res) => {
|
|
38
|
-
RemultAsyncLocalStorage.instance.run(remult, async () => {
|
|
39
|
-
if (options.ensureSchema) {
|
|
40
|
-
let started = false;
|
|
41
|
-
const startConsoleLog = () => {
|
|
42
|
-
if (started)
|
|
43
|
-
return;
|
|
44
|
-
started = true;
|
|
45
|
-
console.time('Schema ensured');
|
|
46
|
-
};
|
|
47
|
-
entitiesMetaData.push(...options.entities.map((e) => remult.repo(e).metadata));
|
|
48
|
-
if (dp.ensureSchema) {
|
|
49
|
-
startConsoleLog();
|
|
50
|
-
await dp.ensureSchema(entitiesMetaData);
|
|
51
|
-
}
|
|
52
|
-
for (const item of [
|
|
53
|
-
options.liveQueryStorage,
|
|
54
|
-
options.queueStorage,
|
|
55
|
-
]) {
|
|
56
|
-
if (item?.ensureSchema) {
|
|
57
|
-
startConsoleLog();
|
|
58
|
-
await item.ensureSchema();
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
if (started)
|
|
62
|
-
console.timeEnd('Schema ensured');
|
|
63
|
-
}
|
|
64
|
-
if (options.initApi)
|
|
65
|
-
await options.initApi(remult);
|
|
66
|
-
res({});
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
return dp;
|
|
70
|
-
});
|
|
71
34
|
{
|
|
72
35
|
let allControllers = [];
|
|
73
36
|
if (!options.entities)
|
|
@@ -81,7 +44,7 @@ export function createRemultServerCore(options, serverCoreOptions) {
|
|
|
81
44
|
if (options.rootPath === undefined)
|
|
82
45
|
options.rootPath = '/api';
|
|
83
46
|
actionInfo.runningOnServer = true;
|
|
84
|
-
let bridge = new RemultServerImplementation(new inProcessQueueHandler(options.queueStorage), options, dataProvider, serverCoreOptions
|
|
47
|
+
let bridge = new RemultServerImplementation(new inProcessQueueHandler(options.queueStorage), options, dataProvider, serverCoreOptions);
|
|
85
48
|
return bridge;
|
|
86
49
|
}
|
|
87
50
|
/* @internal*/
|
|
@@ -90,18 +53,50 @@ export class RemultServerImplementation {
|
|
|
90
53
|
options;
|
|
91
54
|
dataProvider;
|
|
92
55
|
coreOptions;
|
|
93
|
-
entitiesMetaData;
|
|
94
56
|
liveQueryStorage = new InMemoryLiveQueryStorage();
|
|
95
|
-
constructor(queue, options, dataProvider, coreOptions
|
|
57
|
+
constructor(queue, options, dataProvider, coreOptions) {
|
|
96
58
|
this.queue = queue;
|
|
97
59
|
this.options = options;
|
|
98
60
|
this.dataProvider = dataProvider;
|
|
99
61
|
this.coreOptions = coreOptions;
|
|
100
|
-
this.entitiesMetaData = entitiesMetaData;
|
|
101
62
|
if (options.liveQueryStorage)
|
|
102
63
|
this.liveQueryStorage = options.liveQueryStorage;
|
|
103
64
|
if (options.subscriptionServer)
|
|
104
65
|
this.subscriptionServer = options.subscriptionServer;
|
|
66
|
+
const entitiesMetaData = [];
|
|
67
|
+
this.dataProvider = dataProvider.then(async (dp) => {
|
|
68
|
+
await this.runWithRemult(async (remult) => {
|
|
69
|
+
remult.dataProvider = dp;
|
|
70
|
+
if (options.ensureSchema) {
|
|
71
|
+
let started = false;
|
|
72
|
+
const startConsoleLog = () => {
|
|
73
|
+
if (started)
|
|
74
|
+
return;
|
|
75
|
+
started = true;
|
|
76
|
+
console.time('Schema ensured');
|
|
77
|
+
};
|
|
78
|
+
entitiesMetaData.push(...options.entities.map((e) => remult.repo(e).metadata));
|
|
79
|
+
if (dp.ensureSchema) {
|
|
80
|
+
startConsoleLog();
|
|
81
|
+
await dp.ensureSchema(entitiesMetaData);
|
|
82
|
+
}
|
|
83
|
+
for (const item of [
|
|
84
|
+
options.liveQueryStorage,
|
|
85
|
+
options.queueStorage,
|
|
86
|
+
]) {
|
|
87
|
+
if (item?.ensureSchema) {
|
|
88
|
+
startConsoleLog();
|
|
89
|
+
await item.ensureSchema();
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
if (started)
|
|
93
|
+
console.timeEnd('Schema ensured');
|
|
94
|
+
}
|
|
95
|
+
if (options.initApi)
|
|
96
|
+
await options.initApi(remult);
|
|
97
|
+
}, { skipDataProvider: true });
|
|
98
|
+
return dp;
|
|
99
|
+
});
|
|
105
100
|
}
|
|
106
101
|
withRemultPromise(request, what) {
|
|
107
102
|
return new Promise((resolve, error) => {
|
|
@@ -250,10 +245,11 @@ export class RemultServerImplementation {
|
|
|
250
245
|
.delete(this.process(async (c, req, res, orig) => dataApiFactory(c).delete(res, orig.params.id)));
|
|
251
246
|
}
|
|
252
247
|
//runs with remult but without init request
|
|
253
|
-
async runWithRemult(what) {
|
|
248
|
+
async runWithRemult(what, options) {
|
|
254
249
|
let remult = new Remult();
|
|
255
250
|
remult.liveQueryPublisher = new LiveQueryPublisher(() => remult.subscriptionServer, () => remult.liveQueryStorage, this.runWithSerializedJsonContextData);
|
|
256
|
-
|
|
251
|
+
if (!options?.skipDataProvider)
|
|
252
|
+
remult.dataProvider = await this.dataProvider;
|
|
257
253
|
remult.subscriptionServer = this.subscriptionServer;
|
|
258
254
|
remult.liveQueryStorage = this.liveQueryStorage;
|
|
259
255
|
await new Promise((res) => {
|
package/package.json
CHANGED
package/server/expressBridge.js
CHANGED
|
@@ -15,7 +15,6 @@ var server_action_1 = require("../src/server-action");
|
|
|
15
15
|
var server_action_info_1 = require("../src/server-action-info");
|
|
16
16
|
var initDataProvider_1 = require("./initDataProvider");
|
|
17
17
|
function createRemultServerCore(options, serverCoreOptions) {
|
|
18
|
-
var _this = this;
|
|
19
18
|
if (!options) {
|
|
20
19
|
options = {};
|
|
21
20
|
}
|
|
@@ -35,89 +34,6 @@ function createRemultServerCore(options, serverCoreOptions) {
|
|
|
35
34
|
if (options.ensureSchema === undefined)
|
|
36
35
|
options.ensureSchema = true;
|
|
37
36
|
context_1.RemultAsyncLocalStorage.enable();
|
|
38
|
-
var entitiesMetaData = [];
|
|
39
|
-
dataProvider = dataProvider.then(function (dp) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
40
|
-
var remult;
|
|
41
|
-
var _this = this;
|
|
42
|
-
return tslib_1.__generator(this, function (_a) {
|
|
43
|
-
switch (_a.label) {
|
|
44
|
-
case 0:
|
|
45
|
-
remult = new context_1.Remult(dp);
|
|
46
|
-
return [4 /*yield*/, new Promise(function (res) {
|
|
47
|
-
context_1.RemultAsyncLocalStorage.instance.run(remult, function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
48
|
-
var started_1, startConsoleLog, _a, _b, item, e_1_1;
|
|
49
|
-
var e_1, _c;
|
|
50
|
-
return tslib_1.__generator(this, function (_d) {
|
|
51
|
-
switch (_d.label) {
|
|
52
|
-
case 0:
|
|
53
|
-
if (!options.ensureSchema) return [3 /*break*/, 10];
|
|
54
|
-
started_1 = false;
|
|
55
|
-
startConsoleLog = function () {
|
|
56
|
-
if (started_1)
|
|
57
|
-
return;
|
|
58
|
-
started_1 = true;
|
|
59
|
-
console.time('Schema ensured');
|
|
60
|
-
};
|
|
61
|
-
entitiesMetaData.push.apply(entitiesMetaData, tslib_1.__spreadArray([], tslib_1.__read(options.entities.map(function (e) { return remult.repo(e).metadata; })), false));
|
|
62
|
-
if (!dp.ensureSchema) return [3 /*break*/, 2];
|
|
63
|
-
startConsoleLog();
|
|
64
|
-
return [4 /*yield*/, dp.ensureSchema(entitiesMetaData)];
|
|
65
|
-
case 1:
|
|
66
|
-
_d.sent();
|
|
67
|
-
_d.label = 2;
|
|
68
|
-
case 2:
|
|
69
|
-
_d.trys.push([2, 7, 8, 9]);
|
|
70
|
-
_a = tslib_1.__values([
|
|
71
|
-
options.liveQueryStorage,
|
|
72
|
-
options.queueStorage,
|
|
73
|
-
]), _b = _a.next();
|
|
74
|
-
_d.label = 3;
|
|
75
|
-
case 3:
|
|
76
|
-
if (!!_b.done) return [3 /*break*/, 6];
|
|
77
|
-
item = _b.value;
|
|
78
|
-
if (!(item === null || item === void 0 ? void 0 : item.ensureSchema)) return [3 /*break*/, 5];
|
|
79
|
-
startConsoleLog();
|
|
80
|
-
return [4 /*yield*/, item.ensureSchema()];
|
|
81
|
-
case 4:
|
|
82
|
-
_d.sent();
|
|
83
|
-
_d.label = 5;
|
|
84
|
-
case 5:
|
|
85
|
-
_b = _a.next();
|
|
86
|
-
return [3 /*break*/, 3];
|
|
87
|
-
case 6: return [3 /*break*/, 9];
|
|
88
|
-
case 7:
|
|
89
|
-
e_1_1 = _d.sent();
|
|
90
|
-
e_1 = { error: e_1_1 };
|
|
91
|
-
return [3 /*break*/, 9];
|
|
92
|
-
case 8:
|
|
93
|
-
try {
|
|
94
|
-
if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
|
|
95
|
-
}
|
|
96
|
-
finally { if (e_1) throw e_1.error; }
|
|
97
|
-
return [7 /*endfinally*/];
|
|
98
|
-
case 9:
|
|
99
|
-
if (started_1)
|
|
100
|
-
console.timeEnd('Schema ensured');
|
|
101
|
-
_d.label = 10;
|
|
102
|
-
case 10:
|
|
103
|
-
if (!options.initApi) return [3 /*break*/, 12];
|
|
104
|
-
return [4 /*yield*/, options.initApi(remult)];
|
|
105
|
-
case 11:
|
|
106
|
-
_d.sent();
|
|
107
|
-
_d.label = 12;
|
|
108
|
-
case 12:
|
|
109
|
-
res({});
|
|
110
|
-
return [2 /*return*/];
|
|
111
|
-
}
|
|
112
|
-
});
|
|
113
|
-
}); });
|
|
114
|
-
})];
|
|
115
|
-
case 1:
|
|
116
|
-
_a.sent();
|
|
117
|
-
return [2 /*return*/, dp];
|
|
118
|
-
}
|
|
119
|
-
});
|
|
120
|
-
}); });
|
|
121
37
|
{
|
|
122
38
|
var allControllers = [];
|
|
123
39
|
if (!options.entities)
|
|
@@ -131,23 +47,22 @@ function createRemultServerCore(options, serverCoreOptions) {
|
|
|
131
47
|
if (options.rootPath === undefined)
|
|
132
48
|
options.rootPath = '/api';
|
|
133
49
|
server_action_info_1.actionInfo.runningOnServer = true;
|
|
134
|
-
var bridge = new RemultServerImplementation(new inProcessQueueHandler(options.queueStorage), options, dataProvider, serverCoreOptions
|
|
50
|
+
var bridge = new RemultServerImplementation(new inProcessQueueHandler(options.queueStorage), options, dataProvider, serverCoreOptions);
|
|
135
51
|
return bridge;
|
|
136
52
|
}
|
|
137
53
|
exports.createRemultServerCore = createRemultServerCore;
|
|
138
54
|
/* @internal*/
|
|
139
55
|
var RemultServerImplementation = /** @class */ (function () {
|
|
140
|
-
function RemultServerImplementation(queue, options, dataProvider, coreOptions
|
|
56
|
+
function RemultServerImplementation(queue, options, dataProvider, coreOptions) {
|
|
141
57
|
var _this = this;
|
|
142
58
|
this.queue = queue;
|
|
143
59
|
this.options = options;
|
|
144
60
|
this.dataProvider = dataProvider;
|
|
145
61
|
this.coreOptions = coreOptions;
|
|
146
|
-
this.entitiesMetaData = entitiesMetaData;
|
|
147
62
|
this.liveQueryStorage = new SubscriptionServer_1.InMemoryLiveQueryStorage();
|
|
148
63
|
this.runWithSerializedJsonContextData = function (jsonContextData, entityKey, what) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
149
|
-
var _loop_1, this_1, _a, _b, e, state_1,
|
|
150
|
-
var
|
|
64
|
+
var _loop_1, this_1, _a, _b, e, state_1, e_1_1;
|
|
65
|
+
var e_1, _c;
|
|
151
66
|
var _this = this;
|
|
152
67
|
return tslib_1.__generator(this, function (_d) {
|
|
153
68
|
switch (_d.label) {
|
|
@@ -211,14 +126,14 @@ var RemultServerImplementation = /** @class */ (function () {
|
|
|
211
126
|
return [3 /*break*/, 2];
|
|
212
127
|
case 5: return [3 /*break*/, 8];
|
|
213
128
|
case 6:
|
|
214
|
-
|
|
215
|
-
|
|
129
|
+
e_1_1 = _d.sent();
|
|
130
|
+
e_1 = { error: e_1_1 };
|
|
216
131
|
return [3 /*break*/, 8];
|
|
217
132
|
case 7:
|
|
218
133
|
try {
|
|
219
134
|
if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
|
|
220
135
|
}
|
|
221
|
-
finally { if (
|
|
136
|
+
finally { if (e_1) throw e_1.error; }
|
|
222
137
|
return [7 /*endfinally*/];
|
|
223
138
|
case 8: throw new Error("Couldn't find entity " + entityKey);
|
|
224
139
|
}
|
|
@@ -240,6 +155,83 @@ var RemultServerImplementation = /** @class */ (function () {
|
|
|
240
155
|
this.liveQueryStorage = options.liveQueryStorage;
|
|
241
156
|
if (options.subscriptionServer)
|
|
242
157
|
this.subscriptionServer = options.subscriptionServer;
|
|
158
|
+
var entitiesMetaData = [];
|
|
159
|
+
this.dataProvider = dataProvider.then(function (dp) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
160
|
+
var _this = this;
|
|
161
|
+
return tslib_1.__generator(this, function (_a) {
|
|
162
|
+
switch (_a.label) {
|
|
163
|
+
case 0: return [4 /*yield*/, this.runWithRemult(function (remult) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
164
|
+
var started_1, startConsoleLog, _a, _b, item, e_2_1;
|
|
165
|
+
var e_2, _c;
|
|
166
|
+
return tslib_1.__generator(this, function (_d) {
|
|
167
|
+
switch (_d.label) {
|
|
168
|
+
case 0:
|
|
169
|
+
remult.dataProvider = dp;
|
|
170
|
+
if (!options.ensureSchema) return [3 /*break*/, 10];
|
|
171
|
+
started_1 = false;
|
|
172
|
+
startConsoleLog = function () {
|
|
173
|
+
if (started_1)
|
|
174
|
+
return;
|
|
175
|
+
started_1 = true;
|
|
176
|
+
console.time('Schema ensured');
|
|
177
|
+
};
|
|
178
|
+
entitiesMetaData.push.apply(entitiesMetaData, tslib_1.__spreadArray([], tslib_1.__read(options.entities.map(function (e) { return remult.repo(e).metadata; })), false));
|
|
179
|
+
if (!dp.ensureSchema) return [3 /*break*/, 2];
|
|
180
|
+
startConsoleLog();
|
|
181
|
+
return [4 /*yield*/, dp.ensureSchema(entitiesMetaData)];
|
|
182
|
+
case 1:
|
|
183
|
+
_d.sent();
|
|
184
|
+
_d.label = 2;
|
|
185
|
+
case 2:
|
|
186
|
+
_d.trys.push([2, 7, 8, 9]);
|
|
187
|
+
_a = tslib_1.__values([
|
|
188
|
+
options.liveQueryStorage,
|
|
189
|
+
options.queueStorage,
|
|
190
|
+
]), _b = _a.next();
|
|
191
|
+
_d.label = 3;
|
|
192
|
+
case 3:
|
|
193
|
+
if (!!_b.done) return [3 /*break*/, 6];
|
|
194
|
+
item = _b.value;
|
|
195
|
+
if (!(item === null || item === void 0 ? void 0 : item.ensureSchema)) return [3 /*break*/, 5];
|
|
196
|
+
startConsoleLog();
|
|
197
|
+
return [4 /*yield*/, item.ensureSchema()];
|
|
198
|
+
case 4:
|
|
199
|
+
_d.sent();
|
|
200
|
+
_d.label = 5;
|
|
201
|
+
case 5:
|
|
202
|
+
_b = _a.next();
|
|
203
|
+
return [3 /*break*/, 3];
|
|
204
|
+
case 6: return [3 /*break*/, 9];
|
|
205
|
+
case 7:
|
|
206
|
+
e_2_1 = _d.sent();
|
|
207
|
+
e_2 = { error: e_2_1 };
|
|
208
|
+
return [3 /*break*/, 9];
|
|
209
|
+
case 8:
|
|
210
|
+
try {
|
|
211
|
+
if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
|
|
212
|
+
}
|
|
213
|
+
finally { if (e_2) throw e_2.error; }
|
|
214
|
+
return [7 /*endfinally*/];
|
|
215
|
+
case 9:
|
|
216
|
+
if (started_1)
|
|
217
|
+
console.timeEnd('Schema ensured');
|
|
218
|
+
_d.label = 10;
|
|
219
|
+
case 10:
|
|
220
|
+
if (!options.initApi) return [3 /*break*/, 12];
|
|
221
|
+
return [4 /*yield*/, options.initApi(remult)];
|
|
222
|
+
case 11:
|
|
223
|
+
_d.sent();
|
|
224
|
+
_d.label = 12;
|
|
225
|
+
case 12: return [2 /*return*/];
|
|
226
|
+
}
|
|
227
|
+
});
|
|
228
|
+
}); }, { skipDataProvider: true })];
|
|
229
|
+
case 1:
|
|
230
|
+
_a.sent();
|
|
231
|
+
return [2 /*return*/, dp];
|
|
232
|
+
}
|
|
233
|
+
});
|
|
234
|
+
}); });
|
|
243
235
|
}
|
|
244
236
|
RemultServerImplementation.prototype.withRemultPromise = function (request, what) {
|
|
245
237
|
var _this = this;
|
|
@@ -482,7 +474,7 @@ var RemultServerImplementation = /** @class */ (function () {
|
|
|
482
474
|
}); }); }));
|
|
483
475
|
};
|
|
484
476
|
//runs with remult but without init request
|
|
485
|
-
RemultServerImplementation.prototype.runWithRemult = function (what) {
|
|
477
|
+
RemultServerImplementation.prototype.runWithRemult = function (what, options) {
|
|
486
478
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
487
479
|
var remult, _a;
|
|
488
480
|
var _this = this;
|
|
@@ -491,10 +483,13 @@ var RemultServerImplementation = /** @class */ (function () {
|
|
|
491
483
|
case 0:
|
|
492
484
|
remult = new context_1.Remult();
|
|
493
485
|
remult.liveQueryPublisher = new SubscriptionServer_1.LiveQueryPublisher(function () { return remult.subscriptionServer; }, function () { return remult.liveQueryStorage; }, this.runWithSerializedJsonContextData);
|
|
486
|
+
if (!!(options === null || options === void 0 ? void 0 : options.skipDataProvider)) return [3 /*break*/, 2];
|
|
494
487
|
_a = remult;
|
|
495
488
|
return [4 /*yield*/, this.dataProvider];
|
|
496
489
|
case 1:
|
|
497
490
|
_a.dataProvider = _b.sent();
|
|
491
|
+
_b.label = 2;
|
|
492
|
+
case 2:
|
|
498
493
|
remult.subscriptionServer = this.subscriptionServer;
|
|
499
494
|
remult.liveQueryStorage = this.liveQueryStorage;
|
|
500
495
|
return [4 /*yield*/, new Promise(function (res) {
|
|
@@ -512,7 +507,7 @@ var RemultServerImplementation = /** @class */ (function () {
|
|
|
512
507
|
});
|
|
513
508
|
}); });
|
|
514
509
|
})];
|
|
515
|
-
case
|
|
510
|
+
case 3:
|
|
516
511
|
_b.sent();
|
|
517
512
|
return [2 /*return*/];
|
|
518
513
|
}
|