remult 0.20.0-exp.13 → 0.20.0-exp.15

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.
@@ -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
- buildGenericRequest: req => req
16
+ buildGenericRequestInfo: req => req,
17
+ getRequestBody: async (req) => req.body
17
18
  });
18
19
  server.registerRouter(app);
19
20
  return Object.assign(app, {
@@ -30,7 +30,8 @@ export function remultFastify(options) {
30
30
  return response;
31
31
  }
32
32
  const api = createRemultServer(options, {
33
- buildGenericRequest: req => req
33
+ buildGenericRequestInfo: req => req,
34
+ getRequestBody: async (req) => req.body
34
35
  });
35
36
  const pluginFunction = async (instance, op) => {
36
37
  //@ts-ignore
@@ -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
- buildGenericRequest: r => r
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) {
@@ -1,7 +1,8 @@
1
1
  import { createRemultServer } from "./server";
2
2
  export function remultNext(options) {
3
3
  let result = createRemultServer(options, {
4
- buildGenericRequest: req => req
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),
@@ -1,28 +1,19 @@
1
1
  import { createRemultServer } from './server';
2
2
  export function remultSveltekit(options) {
3
3
  let result = createRemultServer(options, {
4
- buildGenericRequest: event => ({
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;
@@ -1,4 +1,4 @@
1
- export { queuedJobInfo, QueueStorage, GenericRequest, GenericRequestHandler, GenericResponse, GenericRouter, createRemultServerCore, RemultServerOptions, SpecificRoute, RemultServer } from './expressBridge';
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: GenericRequest, res: GenericResponse, next: VoidFunction) => void;
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 GenericRequest {
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
- buildGenericRequest(req: RequestType): GenericRequest;
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, origReq, origRes) => {
200
- remult.subscriptionServer.subscribeToChannel(origReq.body, res, remult);
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, origReq, origRes) => {
203
- remult.subscriptionServer.subscribeToChannel(origReq.body, res, remult, true);
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, origReq, origRes) => {
207
- res.success(await remult.liveQueryStorage.keepAliveAndReturnUnknownQueryIds(origReq.body));
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,14 +230,14 @@ 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.body)))
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.body, () => this.serializeContext(c))));
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)))
239
239
  //@ts-ignore
240
- .put(this.process(async (c, req, res, orig) => dataApiFactory(c).put(res, orig.params.id, orig.body)))
240
+ .put(this.process(async (c, req, res, reqInfo, _, orig) => dataApiFactory(c).put(res, reqInfo.params.id, await this.coreOptions.getRequestBody(orig))))
241
241
  //@ts-ignore
242
242
  .delete(this.process(async (c, req, res, orig) => dataApiFactory(c).delete(res, orig.params.id)));
243
243
  }
@@ -255,7 +255,7 @@ export class RemultServerImplementation {
255
255
  }
256
256
  process(what) {
257
257
  return async (req, origRes) => {
258
- const genReq = this.coreOptions.buildGenericRequest(req);
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.body)
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.body, remult, res);
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.buildGenericRequest(origReq);
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;
@@ -1,5 +1,5 @@
1
1
  import { RemultServer, RemultServerOptions, ServerCoreOptions } from './expressBridge';
2
- export { queuedJobInfo, QueueStorage, GenericRequest, GenericRequestHandler, GenericResponse, GenericRouter, RemultServerOptions, SpecificRoute, RemultServer, InitRequestOptions } from './expressBridge';
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';
@@ -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 || { buildGenericRequest: req => req });
8
+ return createRemultServerCore(options, serverCoreOptions || { buildGenericRequestInfo: req => req, getRequestBody: async (req) => req.body });
9
9
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "remult",
3
- "version": "0.20.0-exp.13",
3
+ "version": "0.20.0-exp.15",
4
4
  "description": "A CRUD framework for full-stack TypeScript",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
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
- buildGenericRequest: function (req) { return req; }
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
- buildGenericRequest: function (req) { return req; }
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
- buildGenericRequest: function (r) { return r; }
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 theReq, _a, _b, init, res;
16
- return tslib_1.__generator(this, function (_c) {
17
- switch (_c.label) {
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 4:
40
- res = _c.sent();
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
- buildGenericRequest: function (req) { return req; }
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 () {
@@ -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
- buildGenericRequest: function (event) {
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 json, error_1, sseResponse_1, response_1, responseFromRemultHandler;
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*/, 7];
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 6:
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 = 7;
104
- case 7: return [2 /*return*/, new Promise(function (res) {
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, GenericRequest, GenericRequestHandler, GenericResponse, GenericRouter, createRemultServerCore, RemultServerOptions, SpecificRoute, RemultServer } from './expressBridge';
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: GenericRequest, res: GenericResponse, next: VoidFunction) => void;
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 GenericRequest {
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
- buildGenericRequest(req: RequestType): GenericRequest;
131
+ buildGenericRequestInfo(req: RequestType): GenericRequestInfo;
132
+ getRequestBody(req: RequestType): Promise<any>;
133
133
  }
@@ -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, origReq, origRes) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
346
- return tslib_1.__generator(this, function (_a) {
347
- remult.subscriptionServer.subscribeToChannel(origReq.body, res, remult);
348
- return [2 /*return*/];
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, origReq, origRes) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
352
- return tslib_1.__generator(this, function (_a) {
353
- remult.subscriptionServer.subscribeToChannel(origReq.body, res, remult, true);
354
- return [2 /*return*/];
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, origReq, origRes) { 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) {
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
- return [4 /*yield*/, remult.liveQueryStorage.keepAliveAndReturnUnknownQueryIds(origReq.body)];
365
- case 1:
366
- _b.apply(_a, [_c.sent()]);
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 (_a) {
410
- return [2 /*return*/, dataApiFactory(c).put(res, '', orig.body)];
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 (_a) {
418
- return [2 /*return*/, dataApiFactory(c).httpPost(res, req, orig.body, function () { return _this.serializeContext(c); })];
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')
@@ -424,8 +453,14 @@ var RemultServerImplementation = /** @class */ (function () {
424
453
  return [2 /*return*/, dataApiFactory(c).get(res, orig.params.id)];
425
454
  }); }); }))
426
455
  //@ts-ignore
427
- .put(this.process(function (c, req, res, orig) { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
428
- return [2 /*return*/, dataApiFactory(c).put(res, orig.params.id, orig.body)];
456
+ .put(this.process(function (c, req, res, reqInfo, _, orig) { return tslib_1.__awaiter(_this, void 0, void 0, function () { var _a, _b, _c; return tslib_1.__generator(this, function (_d) {
457
+ switch (_d.label) {
458
+ case 0:
459
+ _b = (_a = dataApiFactory(c)).put;
460
+ _c = [res, reqInfo.params.id];
461
+ return [4 /*yield*/, this.coreOptions.getRequestBody(orig)];
462
+ case 1: return [2 /*return*/, _b.apply(_a, _c.concat([_d.sent()]))];
463
+ }
429
464
  }); }); }))
430
465
  //@ts-ignore
431
466
  .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) {
@@ -477,7 +512,7 @@ var RemultServerImplementation = /** @class */ (function () {
477
512
  return tslib_1.__generator(this, function (_a) {
478
513
  switch (_a.label) {
479
514
  case 0:
480
- genReq = this.coreOptions.buildGenericRequest(req);
515
+ genReq = this.coreOptions.buildGenericRequestInfo(req);
481
516
  if (!genReq.query) {
482
517
  genReq.query = req["_tempQuery"];
483
518
  }
@@ -525,7 +560,7 @@ var RemultServerImplementation = /** @class */ (function () {
525
560
  case 5:
526
561
  _b.sent();
527
562
  _b.label = 6;
528
- case 6: return [4 /*yield*/, what(remult, myReq, myRes, genReq, origRes)];
563
+ case 6: return [4 /*yield*/, what(remult, myReq, myRes, genReq, origRes, req)];
529
564
  case 7:
530
565
  _b.sent();
531
566
  return [2 /*return*/];
@@ -577,22 +612,28 @@ var RemultServerImplementation = /** @class */ (function () {
577
612
  _this.hasQueue = true;
578
613
  _this.queue.mapQueuedAction(myUrl, what);
579
614
  }
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 _a;
583
- return tslib_1.__generator(this, function (_b) {
584
- switch (_b.label) {
615
+ r.route(myUrl).post(_this.process(function (remult, req, res, _, __, orig) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
616
+ var r_1, _a, _b, _c, _d;
617
+ var _e;
618
+ return tslib_1.__generator(this, function (_f) {
619
+ switch (_f.label) {
585
620
  case 0:
586
- if (!queue) return [3 /*break*/, 2];
587
- _a = {};
588
- return [4 /*yield*/, this.queue.submitJob(myUrl, remult, orig.body)];
589
- case 1:
590
- r_1 = (_a.queuedJobId = _b.sent(),
591
- _a);
621
+ if (!queue) return [3 /*break*/, 3];
622
+ _e = {};
623
+ _b = (_a = this.queue).submitJob;
624
+ _c = [myUrl, remult];
625
+ return [4 /*yield*/, this.coreOptions.getRequestBody(orig)];
626
+ case 1: return [4 /*yield*/, _b.apply(_a, _c.concat([_f.sent()]))];
627
+ case 2:
628
+ r_1 = (_e.queuedJobId = _f.sent(),
629
+ _e);
592
630
  res.success(r_1);
593
- return [3 /*break*/, 3];
594
- case 2: return [2 /*return*/, what(orig.body, remult, res)];
595
- case 3: return [2 /*return*/];
631
+ return [3 /*break*/, 5];
632
+ case 3:
633
+ _d = what;
634
+ return [4 /*yield*/, this.coreOptions.getRequestBody(orig)];
635
+ case 4: return [2 /*return*/, _d.apply(void 0, [_f.sent(), remult, res])];
636
+ case 5: return [2 /*return*/];
596
637
  }
597
638
  });
598
639
  }); }));
@@ -1231,7 +1272,7 @@ var RouteImplementation = /** @class */ (function () {
1231
1272
  });
1232
1273
  };
1233
1274
  RouteImplementation.prototype.middleware = function (origReq, res, next) {
1234
- var req = this.coreOptions.buildGenericRequest(origReq);
1275
+ var req = this.coreOptions.buildGenericRequestInfo(origReq);
1235
1276
  var theUrl = req.url;
1236
1277
  if (theUrl.startsWith('/')) //next sends a partial url '/api/tasks' and not the full url
1237
1278
  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, GenericRequest, GenericRequestHandler, GenericResponse, GenericRouter, RemultServerOptions, SpecificRoute, RemultServer, InitRequestOptions } from './expressBridge';
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 || { buildGenericRequest: function (req) { return req; } });
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;