remult 0.20.0-exp.13 → 0.20.0-exp.14
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/remult-express.js +2 -1
- package/esm/remult-fastify.js +2 -1
- package/esm/remult-fresh.js +2 -12
- package/esm/remult-next.js +2 -1
- package/esm/remult-sveltekit.js +3 -13
- package/esm/server/core.d.ts +1 -1
- package/esm/server/expressBridge.d.ts +4 -4
- package/esm/server/expressBridge.js +14 -14
- package/esm/server/index.d.ts +1 -1
- package/esm/server/index.js +1 -1
- package/package.json +1 -1
- package/remult-express.js +5 -1
- package/remult-fastify.js +4 -1
- package/remult-fresh.js +7 -24
- package/remult-next.js +4 -1
- package/remult-sveltekit.js +7 -24
- package/server/core.d.ts +1 -1
- package/server/expressBridge.d.ts +4 -4
- package/server/expressBridge.js +72 -37
- package/server/index.d.ts +1 -1
- package/server/index.js +5 -1
package/esm/remult-express.js
CHANGED
|
@@ -13,7 +13,8 @@ export function remultExpress(options) {
|
|
|
13
13
|
app.use(express.urlencoded({ extended: true, limit: options.bodySizeLimit }));
|
|
14
14
|
}
|
|
15
15
|
const server = createRemultServer(options, {
|
|
16
|
-
|
|
16
|
+
buildGenericRequestInfo: req => req,
|
|
17
|
+
getRequestBody: async (req) => req.body
|
|
17
18
|
});
|
|
18
19
|
server.registerRouter(app);
|
|
19
20
|
return Object.assign(app, {
|
package/esm/remult-fastify.js
CHANGED
|
@@ -30,7 +30,8 @@ export function remultFastify(options) {
|
|
|
30
30
|
return response;
|
|
31
31
|
}
|
|
32
32
|
const api = createRemultServer(options, {
|
|
33
|
-
|
|
33
|
+
buildGenericRequestInfo: req => req,
|
|
34
|
+
getRequestBody: async (req) => req.body
|
|
34
35
|
});
|
|
35
36
|
const pluginFunction = async (instance, op) => {
|
|
36
37
|
//@ts-ignore
|
package/esm/remult-fresh.js
CHANGED
|
@@ -1,23 +1,13 @@
|
|
|
1
1
|
import { createRemultServerCore } from "./server/expressBridge";
|
|
2
2
|
export function remultFresh(options, response) {
|
|
3
3
|
const server = createRemultServerCore(options, {
|
|
4
|
-
|
|
4
|
+
buildGenericRequestInfo: r => r,
|
|
5
|
+
getRequestBody: req => req.json()
|
|
5
6
|
});
|
|
6
7
|
return {
|
|
7
8
|
getRemult: r => server.getRemult(r),
|
|
8
9
|
openApiDoc: x => server.openApiDoc(x),
|
|
9
10
|
handle: async (req, ctx) => {
|
|
10
|
-
const theReq = {
|
|
11
|
-
method: req.method,
|
|
12
|
-
url: req.url,
|
|
13
|
-
body: undefined
|
|
14
|
-
};
|
|
15
|
-
switch (req.method.toLocaleLowerCase()) {
|
|
16
|
-
case "put":
|
|
17
|
-
case "post":
|
|
18
|
-
theReq.body = await req.json();
|
|
19
|
-
break;
|
|
20
|
-
}
|
|
21
11
|
let init = {};
|
|
22
12
|
const res = await server.handle(req);
|
|
23
13
|
if (res) {
|
package/esm/remult-next.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { createRemultServer } from "./server";
|
|
2
2
|
export function remultNext(options) {
|
|
3
3
|
let result = createRemultServer(options, {
|
|
4
|
-
|
|
4
|
+
buildGenericRequestInfo: req => req,
|
|
5
|
+
getRequestBody: async (req) => req.body
|
|
5
6
|
});
|
|
6
7
|
return Object.assign((req, res) => result.handle(req, res).then(() => { }), result, {
|
|
7
8
|
getRemult: (...args) => result.getRemult(...args),
|
package/esm/remult-sveltekit.js
CHANGED
|
@@ -1,28 +1,19 @@
|
|
|
1
1
|
import { createRemultServer } from './server';
|
|
2
2
|
export function remultSveltekit(options) {
|
|
3
3
|
let result = createRemultServer(options, {
|
|
4
|
-
|
|
4
|
+
buildGenericRequestInfo: event => ({
|
|
5
5
|
url: event.request.url,
|
|
6
6
|
method: event.request.method,
|
|
7
|
-
body: event.locals["_tempJson"],
|
|
8
7
|
on: (e, do1) => {
|
|
9
8
|
if (e === 'close') {
|
|
10
9
|
event.locals["_tempOnClose"] = do1;
|
|
11
10
|
}
|
|
12
11
|
}
|
|
13
|
-
})
|
|
12
|
+
}),
|
|
13
|
+
getRequestBody: event => event.request.json()
|
|
14
14
|
});
|
|
15
15
|
const handler = async ({ event, resolve }) => {
|
|
16
16
|
if (event.url.pathname.startsWith(options.rootPath)) {
|
|
17
|
-
let json = {};
|
|
18
|
-
try {
|
|
19
|
-
if (event.request.method == 'POST' || event.request.method == 'PUT') {
|
|
20
|
-
json = await event.request.json();
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
catch (error) {
|
|
24
|
-
console.log(error);
|
|
25
|
-
}
|
|
26
17
|
let sseResponse = undefined;
|
|
27
18
|
event.locals["_tempOnClose"] = () => { };
|
|
28
19
|
const response = {
|
|
@@ -57,7 +48,6 @@ export function remultSveltekit(options) {
|
|
|
57
48
|
}
|
|
58
49
|
}
|
|
59
50
|
};
|
|
60
|
-
event.locals["_tempJson"] = json;
|
|
61
51
|
const responseFromRemultHandler = await result.handle(event, response);
|
|
62
52
|
if (sseResponse !== undefined) {
|
|
63
53
|
return sseResponse;
|
package/esm/server/core.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { queuedJobInfo, QueueStorage,
|
|
1
|
+
export { queuedJobInfo, QueueStorage, GenericRequestInfo, GenericRequestHandler, GenericResponse, GenericRouter, createRemultServerCore, RemultServerOptions, SpecificRoute, RemultServer } from './expressBridge';
|
|
2
2
|
export { JsonEntityFileStorage, JsonFileDataProvider } from './JsonEntityFileStorage';
|
|
3
3
|
export { SseSubscriptionServer } from '../SseSubscriptionServer';
|
|
4
4
|
export { DataProviderLiveQueryStorage } from '../live-query/data-provider-live-query-storage';
|
|
@@ -54,7 +54,7 @@ export interface InitRequestOptions {
|
|
|
54
54
|
readonly remult: Remult;
|
|
55
55
|
}
|
|
56
56
|
export declare function createRemultServerCore<RequestType>(options: RemultServerOptions<RequestType>, serverCoreOptions: ServerCoreOptions<RequestType>): RemultServer<RequestType>;
|
|
57
|
-
export declare type GenericRequestHandler = (req:
|
|
57
|
+
export declare type GenericRequestHandler = (req: GenericRequestInfo, res: GenericResponse, next: VoidFunction) => void;
|
|
58
58
|
export interface ServerHandleResponse {
|
|
59
59
|
data?: any;
|
|
60
60
|
statusCode: number;
|
|
@@ -78,10 +78,9 @@ export declare type SpecificRoute = {
|
|
|
78
78
|
post(handler: GenericRequestHandler): SpecificRoute;
|
|
79
79
|
delete(handler: GenericRequestHandler): SpecificRoute;
|
|
80
80
|
};
|
|
81
|
-
export interface
|
|
81
|
+
export interface GenericRequestInfo {
|
|
82
82
|
url?: string;
|
|
83
83
|
method?: any;
|
|
84
|
-
body?: any;
|
|
85
84
|
query?: any;
|
|
86
85
|
params?: any;
|
|
87
86
|
}
|
|
@@ -129,5 +128,6 @@ export declare class JobsInQueueEntity extends IdEntity {
|
|
|
129
128
|
progress: number;
|
|
130
129
|
}
|
|
131
130
|
export interface ServerCoreOptions<RequestType> {
|
|
132
|
-
|
|
131
|
+
buildGenericRequestInfo(req: RequestType): GenericRequestInfo;
|
|
132
|
+
getRequestBody(req: RequestType): Promise<any>;
|
|
133
133
|
}
|
|
@@ -196,15 +196,15 @@ export class RemultServerImplementation {
|
|
|
196
196
|
r.route(streamPath).get(this.process(async (remult, req, res, origReq, origRes) => {
|
|
197
197
|
remult.subscriptionServer.openHttpServerStream(origReq, origRes);
|
|
198
198
|
}));
|
|
199
|
-
r.route(streamPath + '/subscribe').post(this.process(async (remult, req, res,
|
|
200
|
-
remult.subscriptionServer.subscribeToChannel(origReq
|
|
199
|
+
r.route(streamPath + '/subscribe').post(this.process(async (remult, req, res, reqInfo, origRes, origReq) => {
|
|
200
|
+
const body = remult.subscriptionServer.subscribeToChannel(await this.coreOptions.getRequestBody(origReq), res, remult);
|
|
201
201
|
}));
|
|
202
|
-
r.route(streamPath + '/unsubscribe').post(this.process(async (remult, req, res,
|
|
203
|
-
remult.subscriptionServer.subscribeToChannel(origReq
|
|
202
|
+
r.route(streamPath + '/unsubscribe').post(this.process(async (remult, req, res, reqInfo, origRes, origReq) => {
|
|
203
|
+
remult.subscriptionServer.subscribeToChannel(await this.coreOptions.getRequestBody(origReq), res, remult, true);
|
|
204
204
|
}));
|
|
205
205
|
}
|
|
206
|
-
r.route(this.options.rootPath + '/' + liveQueryKeepAliveRoute).post(this.process(async (remult, req, res,
|
|
207
|
-
res.success(await remult.liveQueryStorage.keepAliveAndReturnUnknownQueryIds(origReq
|
|
206
|
+
r.route(this.options.rootPath + '/' + liveQueryKeepAliveRoute).post(this.process(async (remult, req, res, reqInfo, origRes, origReq) => {
|
|
207
|
+
res.success(await remult.liveQueryStorage.keepAliveAndReturnUnknownQueryIds(await this.coreOptions.getRequestBody(origReq)));
|
|
208
208
|
}));
|
|
209
209
|
}
|
|
210
210
|
this.options.entities.forEach(e => {
|
|
@@ -230,9 +230,9 @@ export class RemultServerImplementation {
|
|
|
230
230
|
if (this.options.logApiEndPoints)
|
|
231
231
|
console.info("[remult] " + myRoute);
|
|
232
232
|
r.route(myRoute)
|
|
233
|
-
.get(this.process((c, req, res, orig) => dataApiFactory(c).httpGet(res, req, () => this.serializeContext(c)))).put(this.process(async (c, req, res, orig) => dataApiFactory(c).put(res, '', orig
|
|
233
|
+
.get(this.process((c, req, res, orig) => dataApiFactory(c).httpGet(res, req, () => this.serializeContext(c)))).put(this.process(async (c, req, res, _, __, orig) => dataApiFactory(c).put(res, '', await this.coreOptions.getRequestBody(orig))))
|
|
234
234
|
.delete(this.process(async (c, req, res, orig) => dataApiFactory(c).delete(res, '')))
|
|
235
|
-
.post(this.process(async (c, req, res, orig) => dataApiFactory(c).httpPost(res, req, orig
|
|
235
|
+
.post(this.process(async (c, req, res, _, __, orig) => dataApiFactory(c).httpPost(res, req, await this.coreOptions.getRequestBody(orig), () => this.serializeContext(c))));
|
|
236
236
|
r.route(myRoute + '/:id')
|
|
237
237
|
//@ts-ignore
|
|
238
238
|
.get(this.process(async (c, req, res, orig) => dataApiFactory(c).get(res, orig.params.id)))
|
|
@@ -255,7 +255,7 @@ export class RemultServerImplementation {
|
|
|
255
255
|
}
|
|
256
256
|
process(what) {
|
|
257
257
|
return async (req, origRes) => {
|
|
258
|
-
const genReq = this.coreOptions.
|
|
258
|
+
const genReq = this.coreOptions.buildGenericRequestInfo(req);
|
|
259
259
|
if (!genReq.query) {
|
|
260
260
|
genReq.query = req["_tempQuery"];
|
|
261
261
|
}
|
|
@@ -291,7 +291,7 @@ export class RemultServerImplementation {
|
|
|
291
291
|
});
|
|
292
292
|
}
|
|
293
293
|
}
|
|
294
|
-
await what(remult, myReq, myRes, genReq, origRes);
|
|
294
|
+
await what(remult, myReq, myRes, genReq, origRes, req);
|
|
295
295
|
});
|
|
296
296
|
};
|
|
297
297
|
}
|
|
@@ -320,15 +320,15 @@ export class RemultServerImplementation {
|
|
|
320
320
|
this.hasQueue = true;
|
|
321
321
|
this.queue.mapQueuedAction(myUrl, what);
|
|
322
322
|
}
|
|
323
|
-
r.route(myUrl).post(this.process(async (remult, req, res, orig) => {
|
|
323
|
+
r.route(myUrl).post(this.process(async (remult, req, res, _, __, orig) => {
|
|
324
324
|
if (queue) {
|
|
325
325
|
let r = {
|
|
326
|
-
queuedJobId: await this.queue.submitJob(myUrl, remult, orig
|
|
326
|
+
queuedJobId: await this.queue.submitJob(myUrl, remult, await this.coreOptions.getRequestBody(orig))
|
|
327
327
|
};
|
|
328
328
|
res.success(r);
|
|
329
329
|
}
|
|
330
330
|
else
|
|
331
|
-
return what(orig
|
|
331
|
+
return what(await this.coreOptions.getRequestBody(orig), remult, res);
|
|
332
332
|
}));
|
|
333
333
|
});
|
|
334
334
|
}
|
|
@@ -857,7 +857,7 @@ class RouteImplementation {
|
|
|
857
857
|
});
|
|
858
858
|
}
|
|
859
859
|
middleware(origReq, res, next) {
|
|
860
|
-
const req = this.coreOptions.
|
|
860
|
+
const req = this.coreOptions.buildGenericRequestInfo(origReq);
|
|
861
861
|
let theUrl = req.url;
|
|
862
862
|
if (theUrl.startsWith('/')) //next sends a partial url '/api/tasks' and not the full url
|
|
863
863
|
theUrl = 'http://stam' + theUrl;
|
package/esm/server/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { RemultServer, RemultServerOptions, ServerCoreOptions } from './expressBridge';
|
|
2
|
-
export { queuedJobInfo, QueueStorage,
|
|
2
|
+
export { queuedJobInfo, QueueStorage, GenericRequestInfo, GenericRequestHandler, GenericResponse, GenericRouter, RemultServerOptions, SpecificRoute, RemultServer, InitRequestOptions } from './expressBridge';
|
|
3
3
|
export { JsonEntityFileStorage, JsonFileDataProvider } from './JsonEntityFileStorage';
|
|
4
4
|
export { DataProviderLiveQueryStorage } from '../live-query/data-provider-live-query-storage';
|
|
5
5
|
export { SseSubscriptionServer } from '../SseSubscriptionServer';
|
package/esm/server/index.js
CHANGED
|
@@ -5,5 +5,5 @@ export { DataProviderLiveQueryStorage } from '../live-query/data-provider-live-q
|
|
|
5
5
|
export { SseSubscriptionServer } from '../SseSubscriptionServer';
|
|
6
6
|
export function createRemultServer(options, serverCoreOptions) {
|
|
7
7
|
initAsyncHooks();
|
|
8
|
-
return createRemultServerCore(options, serverCoreOptions || {
|
|
8
|
+
return createRemultServerCore(options, serverCoreOptions || { buildGenericRequestInfo: req => req, getRequestBody: async (req) => req.body });
|
|
9
9
|
}
|
package/package.json
CHANGED
package/remult-express.js
CHANGED
|
@@ -5,6 +5,7 @@ var tslib_1 = require("tslib");
|
|
|
5
5
|
var express = tslib_1.__importStar(require("express"));
|
|
6
6
|
var index_1 = require("./server/index");
|
|
7
7
|
function remultExpress(options) {
|
|
8
|
+
var _this = this;
|
|
8
9
|
var app = express.Router();
|
|
9
10
|
if (!options) {
|
|
10
11
|
options = {};
|
|
@@ -17,7 +18,10 @@ function remultExpress(options) {
|
|
|
17
18
|
app.use(express.urlencoded({ extended: true, limit: options.bodySizeLimit }));
|
|
18
19
|
}
|
|
19
20
|
var server = index_1.createRemultServer(options, {
|
|
20
|
-
|
|
21
|
+
buildGenericRequestInfo: function (req) { return req; },
|
|
22
|
+
getRequestBody: function (req) { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
|
|
23
|
+
return [2 /*return*/, req.body];
|
|
24
|
+
}); }); }
|
|
21
25
|
});
|
|
22
26
|
server.registerRouter(app);
|
|
23
27
|
return Object.assign(app, {
|
package/remult-fastify.js
CHANGED
|
@@ -35,7 +35,10 @@ function remultFastify(options) {
|
|
|
35
35
|
return response;
|
|
36
36
|
}
|
|
37
37
|
var api = index_1.createRemultServer(options, {
|
|
38
|
-
|
|
38
|
+
buildGenericRequestInfo: function (req) { return req; },
|
|
39
|
+
getRequestBody: function (req) { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
|
|
40
|
+
return [2 /*return*/, req.body];
|
|
41
|
+
}); }); }
|
|
39
42
|
});
|
|
40
43
|
var pluginFunction = function (instance, op) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
41
44
|
var fastifyRouter;
|
package/remult-fresh.js
CHANGED
|
@@ -6,38 +6,21 @@ var expressBridge_1 = require("./server/expressBridge");
|
|
|
6
6
|
function remultFresh(options, response) {
|
|
7
7
|
var _this = this;
|
|
8
8
|
var server = expressBridge_1.createRemultServerCore(options, {
|
|
9
|
-
|
|
9
|
+
buildGenericRequestInfo: function (r) { return r; },
|
|
10
|
+
getRequestBody: function (req) { return req.json(); }
|
|
10
11
|
});
|
|
11
12
|
return {
|
|
12
13
|
getRemult: function (r) { return server.getRemult(r); },
|
|
13
14
|
openApiDoc: function (x) { return server.openApiDoc(x); },
|
|
14
15
|
handle: function (req, ctx) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
15
|
-
var
|
|
16
|
-
return tslib_1.__generator(this, function (
|
|
17
|
-
switch (
|
|
16
|
+
var init, res;
|
|
17
|
+
return tslib_1.__generator(this, function (_a) {
|
|
18
|
+
switch (_a.label) {
|
|
18
19
|
case 0:
|
|
19
|
-
theReq = {
|
|
20
|
-
method: req.method,
|
|
21
|
-
url: req.url,
|
|
22
|
-
body: undefined
|
|
23
|
-
};
|
|
24
|
-
_a = req.method.toLocaleLowerCase();
|
|
25
|
-
switch (_a) {
|
|
26
|
-
case "put": return [3 /*break*/, 1];
|
|
27
|
-
case "post": return [3 /*break*/, 1];
|
|
28
|
-
}
|
|
29
|
-
return [3 /*break*/, 3];
|
|
30
|
-
case 1:
|
|
31
|
-
_b = theReq;
|
|
32
|
-
return [4 /*yield*/, req.json()];
|
|
33
|
-
case 2:
|
|
34
|
-
_b.body = _c.sent();
|
|
35
|
-
return [3 /*break*/, 3];
|
|
36
|
-
case 3:
|
|
37
20
|
init = {};
|
|
38
21
|
return [4 /*yield*/, server.handle(req)];
|
|
39
|
-
case
|
|
40
|
-
res =
|
|
22
|
+
case 1:
|
|
23
|
+
res = _a.sent();
|
|
41
24
|
if (res) {
|
|
42
25
|
init.status = res.statusCode;
|
|
43
26
|
if (res.data) {
|
package/remult-next.js
CHANGED
|
@@ -6,7 +6,10 @@ var server_1 = require("./server");
|
|
|
6
6
|
function remultNext(options) {
|
|
7
7
|
var _this = this;
|
|
8
8
|
var result = server_1.createRemultServer(options, {
|
|
9
|
-
|
|
9
|
+
buildGenericRequestInfo: function (req) { return req; },
|
|
10
|
+
getRequestBody: function (req) { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
|
|
11
|
+
return [2 /*return*/, req.body];
|
|
12
|
+
}); }); }
|
|
10
13
|
});
|
|
11
14
|
return Object.assign(function (req, res) { return result.handle(req, res).then(function () { }); }, result, {
|
|
12
15
|
getRemult: function () {
|
package/remult-sveltekit.js
CHANGED
|
@@ -6,43 +6,27 @@ var server_1 = require("./server");
|
|
|
6
6
|
function remultSveltekit(options) {
|
|
7
7
|
var _this = this;
|
|
8
8
|
var result = server_1.createRemultServer(options, {
|
|
9
|
-
|
|
9
|
+
buildGenericRequestInfo: function (event) {
|
|
10
10
|
return ({
|
|
11
11
|
url: event.request.url,
|
|
12
12
|
method: event.request.method,
|
|
13
|
-
body: event.locals["_tempJson"],
|
|
14
13
|
on: function (e, do1) {
|
|
15
14
|
if (e === 'close') {
|
|
16
15
|
event.locals["_tempOnClose"] = do1;
|
|
17
16
|
}
|
|
18
17
|
}
|
|
19
18
|
});
|
|
20
|
-
}
|
|
19
|
+
}, getRequestBody: function (event) { return event.request.json(); }
|
|
21
20
|
});
|
|
22
21
|
var handler = function (_a) {
|
|
23
22
|
var event = _a.event, resolve = _a.resolve;
|
|
24
23
|
return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
25
|
-
var
|
|
24
|
+
var sseResponse_1, response_1, responseFromRemultHandler;
|
|
26
25
|
var _this = this;
|
|
27
26
|
return tslib_1.__generator(this, function (_b) {
|
|
28
27
|
switch (_b.label) {
|
|
29
28
|
case 0:
|
|
30
|
-
if (!event.url.pathname.startsWith(options.rootPath)) return [3 /*break*/,
|
|
31
|
-
json = {};
|
|
32
|
-
_b.label = 1;
|
|
33
|
-
case 1:
|
|
34
|
-
_b.trys.push([1, 4, , 5]);
|
|
35
|
-
if (!(event.request.method == 'POST' || event.request.method == 'PUT')) return [3 /*break*/, 3];
|
|
36
|
-
return [4 /*yield*/, event.request.json()];
|
|
37
|
-
case 2:
|
|
38
|
-
json = _b.sent();
|
|
39
|
-
_b.label = 3;
|
|
40
|
-
case 3: return [3 /*break*/, 5];
|
|
41
|
-
case 4:
|
|
42
|
-
error_1 = _b.sent();
|
|
43
|
-
console.log(error_1);
|
|
44
|
-
return [3 /*break*/, 5];
|
|
45
|
-
case 5:
|
|
29
|
+
if (!event.url.pathname.startsWith(options.rootPath)) return [3 /*break*/, 2];
|
|
46
30
|
sseResponse_1 = undefined;
|
|
47
31
|
event.locals["_tempOnClose"] = function () { };
|
|
48
32
|
response_1 = {
|
|
@@ -88,9 +72,8 @@ function remultSveltekit(options) {
|
|
|
88
72
|
}
|
|
89
73
|
}
|
|
90
74
|
};
|
|
91
|
-
event.locals["_tempJson"] = json;
|
|
92
75
|
return [4 /*yield*/, result.handle(event, response_1)];
|
|
93
|
-
case
|
|
76
|
+
case 1:
|
|
94
77
|
responseFromRemultHandler = _b.sent();
|
|
95
78
|
if (sseResponse_1 !== undefined) {
|
|
96
79
|
return [2 /*return*/, sseResponse_1];
|
|
@@ -100,8 +83,8 @@ function remultSveltekit(options) {
|
|
|
100
83
|
status: responseFromRemultHandler.statusCode
|
|
101
84
|
})];
|
|
102
85
|
}
|
|
103
|
-
_b.label =
|
|
104
|
-
case
|
|
86
|
+
_b.label = 2;
|
|
87
|
+
case 2: return [2 /*return*/, new Promise(function (res) {
|
|
105
88
|
result.withRemult(event, undefined, function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
106
89
|
var _a;
|
|
107
90
|
return tslib_1.__generator(this, function (_b) {
|
package/server/core.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { queuedJobInfo, QueueStorage,
|
|
1
|
+
export { queuedJobInfo, QueueStorage, GenericRequestInfo, GenericRequestHandler, GenericResponse, GenericRouter, createRemultServerCore, RemultServerOptions, SpecificRoute, RemultServer } from './expressBridge';
|
|
2
2
|
export { JsonEntityFileStorage, JsonFileDataProvider } from './JsonEntityFileStorage';
|
|
3
3
|
export { SseSubscriptionServer } from '../SseSubscriptionServer';
|
|
4
4
|
export { DataProviderLiveQueryStorage } from '../live-query/data-provider-live-query-storage';
|
|
@@ -54,7 +54,7 @@ export interface InitRequestOptions {
|
|
|
54
54
|
readonly remult: Remult;
|
|
55
55
|
}
|
|
56
56
|
export declare function createRemultServerCore<RequestType>(options: RemultServerOptions<RequestType>, serverCoreOptions: ServerCoreOptions<RequestType>): RemultServer<RequestType>;
|
|
57
|
-
export declare type GenericRequestHandler = (req:
|
|
57
|
+
export declare type GenericRequestHandler = (req: GenericRequestInfo, res: GenericResponse, next: VoidFunction) => void;
|
|
58
58
|
export interface ServerHandleResponse {
|
|
59
59
|
data?: any;
|
|
60
60
|
statusCode: number;
|
|
@@ -78,10 +78,9 @@ export declare type SpecificRoute = {
|
|
|
78
78
|
post(handler: GenericRequestHandler): SpecificRoute;
|
|
79
79
|
delete(handler: GenericRequestHandler): SpecificRoute;
|
|
80
80
|
};
|
|
81
|
-
export interface
|
|
81
|
+
export interface GenericRequestInfo {
|
|
82
82
|
url?: string;
|
|
83
83
|
method?: any;
|
|
84
|
-
body?: any;
|
|
85
84
|
query?: any;
|
|
86
85
|
params?: any;
|
|
87
86
|
}
|
|
@@ -129,5 +128,6 @@ export declare class JobsInQueueEntity extends IdEntity {
|
|
|
129
128
|
progress: number;
|
|
130
129
|
}
|
|
131
130
|
export interface ServerCoreOptions<RequestType> {
|
|
132
|
-
|
|
131
|
+
buildGenericRequestInfo(req: RequestType): GenericRequestInfo;
|
|
132
|
+
getRequestBody(req: RequestType): Promise<any>;
|
|
133
133
|
}
|
package/server/expressBridge.js
CHANGED
|
@@ -342,28 +342,44 @@ var RemultServerImplementation = /** @class */ (function () {
|
|
|
342
342
|
return [2 /*return*/];
|
|
343
343
|
});
|
|
344
344
|
}); }));
|
|
345
|
-
r.route(streamPath + '/subscribe').post(this.process(function (remult, req, res,
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
345
|
+
r.route(streamPath + '/subscribe').post(this.process(function (remult, req, res, reqInfo, origRes, origReq) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
346
|
+
var body, _a, _b;
|
|
347
|
+
return tslib_1.__generator(this, function (_c) {
|
|
348
|
+
switch (_c.label) {
|
|
349
|
+
case 0:
|
|
350
|
+
_b = (_a = remult.subscriptionServer).subscribeToChannel;
|
|
351
|
+
return [4 /*yield*/, this.coreOptions.getRequestBody(origReq)];
|
|
352
|
+
case 1:
|
|
353
|
+
body = _b.apply(_a, [_c.sent(), res, remult]);
|
|
354
|
+
return [2 /*return*/];
|
|
355
|
+
}
|
|
349
356
|
});
|
|
350
357
|
}); }));
|
|
351
|
-
r.route(streamPath + '/unsubscribe').post(this.process(function (remult, req, res,
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
358
|
+
r.route(streamPath + '/unsubscribe').post(this.process(function (remult, req, res, reqInfo, origRes, origReq) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
359
|
+
var _a, _b;
|
|
360
|
+
return tslib_1.__generator(this, function (_c) {
|
|
361
|
+
switch (_c.label) {
|
|
362
|
+
case 0:
|
|
363
|
+
_b = (_a = remult.subscriptionServer).subscribeToChannel;
|
|
364
|
+
return [4 /*yield*/, this.coreOptions.getRequestBody(origReq)];
|
|
365
|
+
case 1:
|
|
366
|
+
_b.apply(_a, [_c.sent(), res, remult, true]);
|
|
367
|
+
return [2 /*return*/];
|
|
368
|
+
}
|
|
355
369
|
});
|
|
356
370
|
}); }));
|
|
357
371
|
}
|
|
358
|
-
r.route(this.options.rootPath + '/' + SubscriptionChannel_1.liveQueryKeepAliveRoute).post(this.process(function (remult, req, res,
|
|
359
|
-
var _a, _b;
|
|
360
|
-
return tslib_1.__generator(this, function (
|
|
361
|
-
switch (
|
|
372
|
+
r.route(this.options.rootPath + '/' + SubscriptionChannel_1.liveQueryKeepAliveRoute).post(this.process(function (remult, req, res, reqInfo, origRes, origReq) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
373
|
+
var _a, _b, _c, _d;
|
|
374
|
+
return tslib_1.__generator(this, function (_e) {
|
|
375
|
+
switch (_e.label) {
|
|
362
376
|
case 0:
|
|
363
377
|
_b = (_a = res).success;
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
378
|
+
_d = (_c = remult.liveQueryStorage).keepAliveAndReturnUnknownQueryIds;
|
|
379
|
+
return [4 /*yield*/, this.coreOptions.getRequestBody(origReq)];
|
|
380
|
+
case 1: return [4 /*yield*/, _d.apply(_c, [_e.sent()])];
|
|
381
|
+
case 2:
|
|
382
|
+
_b.apply(_a, [_e.sent()]);
|
|
367
383
|
return [2 /*return*/];
|
|
368
384
|
}
|
|
369
385
|
});
|
|
@@ -406,16 +422,29 @@ var RemultServerImplementation = /** @class */ (function () {
|
|
|
406
422
|
r.route(myRoute)
|
|
407
423
|
.get(this.process(function (c, req, res, orig) {
|
|
408
424
|
return dataApiFactory(c).httpGet(res, req, function () { return _this.serializeContext(c); });
|
|
409
|
-
})).put(this.process(function (c, req, res, orig) { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (
|
|
410
|
-
|
|
425
|
+
})).put(this.process(function (c, req, res, _, __, orig) { return tslib_1.__awaiter(_this, void 0, void 0, function () { var _a, _b, _c; return tslib_1.__generator(this, function (_d) {
|
|
426
|
+
switch (_d.label) {
|
|
427
|
+
case 0:
|
|
428
|
+
_b = (_a = dataApiFactory(c)).put;
|
|
429
|
+
_c = [res, ''];
|
|
430
|
+
return [4 /*yield*/, this.coreOptions.getRequestBody(orig)];
|
|
431
|
+
case 1: return [2 /*return*/, _b.apply(_a, _c.concat([_d.sent()]))];
|
|
432
|
+
}
|
|
411
433
|
}); }); }))
|
|
412
434
|
.delete(this.process(function (c, req, res, orig) { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
|
|
413
435
|
return [2 /*return*/, dataApiFactory(c).delete(res, '')];
|
|
414
436
|
}); }); }))
|
|
415
|
-
.post(this.process(function (c, req, res, orig) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
437
|
+
.post(this.process(function (c, req, res, _, __, orig) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
438
|
+
var _a, _b, _c;
|
|
416
439
|
var _this = this;
|
|
417
|
-
return tslib_1.__generator(this, function (
|
|
418
|
-
|
|
440
|
+
return tslib_1.__generator(this, function (_d) {
|
|
441
|
+
switch (_d.label) {
|
|
442
|
+
case 0:
|
|
443
|
+
_b = (_a = dataApiFactory(c)).httpPost;
|
|
444
|
+
_c = [res, req];
|
|
445
|
+
return [4 /*yield*/, this.coreOptions.getRequestBody(orig)];
|
|
446
|
+
case 1: return [2 /*return*/, _b.apply(_a, _c.concat([_d.sent(), function () { return _this.serializeContext(c); }]))];
|
|
447
|
+
}
|
|
419
448
|
});
|
|
420
449
|
}); }));
|
|
421
450
|
r.route(myRoute + '/:id')
|
|
@@ -477,7 +506,7 @@ var RemultServerImplementation = /** @class */ (function () {
|
|
|
477
506
|
return tslib_1.__generator(this, function (_a) {
|
|
478
507
|
switch (_a.label) {
|
|
479
508
|
case 0:
|
|
480
|
-
genReq = this.coreOptions.
|
|
509
|
+
genReq = this.coreOptions.buildGenericRequestInfo(req);
|
|
481
510
|
if (!genReq.query) {
|
|
482
511
|
genReq.query = req["_tempQuery"];
|
|
483
512
|
}
|
|
@@ -525,7 +554,7 @@ var RemultServerImplementation = /** @class */ (function () {
|
|
|
525
554
|
case 5:
|
|
526
555
|
_b.sent();
|
|
527
556
|
_b.label = 6;
|
|
528
|
-
case 6: return [4 /*yield*/, what(remult, myReq, myRes, genReq, origRes)];
|
|
557
|
+
case 6: return [4 /*yield*/, what(remult, myReq, myRes, genReq, origRes, req)];
|
|
529
558
|
case 7:
|
|
530
559
|
_b.sent();
|
|
531
560
|
return [2 /*return*/];
|
|
@@ -577,22 +606,28 @@ var RemultServerImplementation = /** @class */ (function () {
|
|
|
577
606
|
_this.hasQueue = true;
|
|
578
607
|
_this.queue.mapQueuedAction(myUrl, what);
|
|
579
608
|
}
|
|
580
|
-
r.route(myUrl).post(_this.process(function (remult, req, res, orig) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
581
|
-
var r_1;
|
|
582
|
-
var
|
|
583
|
-
return tslib_1.__generator(this, function (
|
|
584
|
-
switch (
|
|
609
|
+
r.route(myUrl).post(_this.process(function (remult, req, res, _, __, orig) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
610
|
+
var r_1, _a, _b, _c, _d;
|
|
611
|
+
var _e;
|
|
612
|
+
return tslib_1.__generator(this, function (_f) {
|
|
613
|
+
switch (_f.label) {
|
|
585
614
|
case 0:
|
|
586
|
-
if (!queue) return [3 /*break*/,
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
615
|
+
if (!queue) return [3 /*break*/, 3];
|
|
616
|
+
_e = {};
|
|
617
|
+
_b = (_a = this.queue).submitJob;
|
|
618
|
+
_c = [myUrl, remult];
|
|
619
|
+
return [4 /*yield*/, this.coreOptions.getRequestBody(orig)];
|
|
620
|
+
case 1: return [4 /*yield*/, _b.apply(_a, _c.concat([_f.sent()]))];
|
|
621
|
+
case 2:
|
|
622
|
+
r_1 = (_e.queuedJobId = _f.sent(),
|
|
623
|
+
_e);
|
|
592
624
|
res.success(r_1);
|
|
593
|
-
return [3 /*break*/,
|
|
594
|
-
case
|
|
595
|
-
|
|
625
|
+
return [3 /*break*/, 5];
|
|
626
|
+
case 3:
|
|
627
|
+
_d = what;
|
|
628
|
+
return [4 /*yield*/, this.coreOptions.getRequestBody(orig)];
|
|
629
|
+
case 4: return [2 /*return*/, _d.apply(void 0, [_f.sent(), remult, res])];
|
|
630
|
+
case 5: return [2 /*return*/];
|
|
596
631
|
}
|
|
597
632
|
});
|
|
598
633
|
}); }));
|
|
@@ -1231,7 +1266,7 @@ var RouteImplementation = /** @class */ (function () {
|
|
|
1231
1266
|
});
|
|
1232
1267
|
};
|
|
1233
1268
|
RouteImplementation.prototype.middleware = function (origReq, res, next) {
|
|
1234
|
-
var req = this.coreOptions.
|
|
1269
|
+
var req = this.coreOptions.buildGenericRequestInfo(origReq);
|
|
1235
1270
|
var theUrl = req.url;
|
|
1236
1271
|
if (theUrl.startsWith('/')) //next sends a partial url '/api/tasks' and not the full url
|
|
1237
1272
|
theUrl = 'http://stam' + theUrl;
|
package/server/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { RemultServer, RemultServerOptions, ServerCoreOptions } from './expressBridge';
|
|
2
|
-
export { queuedJobInfo, QueueStorage,
|
|
2
|
+
export { queuedJobInfo, QueueStorage, GenericRequestInfo, GenericRequestHandler, GenericResponse, GenericRouter, RemultServerOptions, SpecificRoute, RemultServer, InitRequestOptions } from './expressBridge';
|
|
3
3
|
export { JsonEntityFileStorage, JsonFileDataProvider } from './JsonEntityFileStorage';
|
|
4
4
|
export { DataProviderLiveQueryStorage } from '../live-query/data-provider-live-query-storage';
|
|
5
5
|
export { SseSubscriptionServer } from '../SseSubscriptionServer';
|
package/server/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createRemultServer = exports.SseSubscriptionServer = exports.DataProviderLiveQueryStorage = exports.JsonFileDataProvider = exports.JsonEntityFileStorage = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
4
5
|
var expressBridge_1 = require("./expressBridge");
|
|
5
6
|
var initAsyncHooks_1 = require("./initAsyncHooks");
|
|
6
7
|
var JsonEntityFileStorage_1 = require("./JsonEntityFileStorage");
|
|
@@ -11,7 +12,10 @@ Object.defineProperty(exports, "DataProviderLiveQueryStorage", { enumerable: tru
|
|
|
11
12
|
var SseSubscriptionServer_1 = require("../SseSubscriptionServer");
|
|
12
13
|
Object.defineProperty(exports, "SseSubscriptionServer", { enumerable: true, get: function () { return SseSubscriptionServer_1.SseSubscriptionServer; } });
|
|
13
14
|
function createRemultServer(options, serverCoreOptions) {
|
|
15
|
+
var _this = this;
|
|
14
16
|
initAsyncHooks_1.initAsyncHooks();
|
|
15
|
-
return expressBridge_1.createRemultServerCore(options, serverCoreOptions || {
|
|
17
|
+
return expressBridge_1.createRemultServerCore(options, serverCoreOptions || { buildGenericRequestInfo: function (req) { return req; }, getRequestBody: function (req) { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
|
|
18
|
+
return [2 /*return*/, req.body];
|
|
19
|
+
}); }); } });
|
|
16
20
|
}
|
|
17
21
|
exports.createRemultServer = createRemultServer;
|