dx-server 0.0.1-pre-8 → 0.0.1-pre-9

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.
@@ -1,3 +1,3 @@
1
1
  import { type Express, type Router } from 'express';
2
- export declare const expressApp: (setup: (app: Express) => any) => (next: () => any) => void;
3
- export declare const expressRouter: (setup: (router: Router) => any) => (next: () => any) => void;
2
+ export declare const expressApp: (setup: (app: Express) => any) => (next: any) => Promise<void>;
3
+ export declare const expressRouter: (setup: (router: Router) => any) => (next: any) => Promise<void>;
package/cjs/expressApp.js CHANGED
@@ -3,36 +3,37 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.expressRouter = exports.expressApp = void 0;
4
4
  const express_1 = require("express");
5
5
  const context_js_1 = require("./context.js");
6
+ const jdefer_1 = require("jdefer");
6
7
  const expressApp = (setup) => {
8
+ const symbol = Symbol('expressApp');
7
9
  const app = (0, express_1.default)();
8
10
  setup(app);
9
- return (next => {
10
- let error;
11
- app(context_js_1.requestContext.value, context_js_1.responseContext.value, (err) => {
12
- if (err)
13
- error = err;
14
- else
15
- next();
16
- });
17
- if (error)
18
- throw error;
19
- });
11
+ app.use((req, _res, _next) => req[symbol].resolve());
12
+ app.use((err, req, _res, _next) => req[symbol].reject(err));
13
+ return async (next) => {
14
+ const req = context_js_1.requestContext.value;
15
+ const defer = (0, jdefer_1.default)();
16
+ req[symbol] = defer;
17
+ app(req, context_js_1.responseContext.value);
18
+ await defer.promise;
19
+ await next();
20
+ };
20
21
  };
21
22
  exports.expressApp = expressApp;
22
23
  const expressRouter = (setup) => {
24
+ const symbol = Symbol('expressRouter');
23
25
  const router = express_1.default.Router();
24
26
  setup(router);
25
- return (next => {
26
- let error;
27
- router(context_js_1.requestContext.value, context_js_1.responseContext.value, (err) => {
28
- if (err)
29
- error = err;
30
- else
31
- next();
32
- });
33
- if (error)
34
- throw error;
35
- });
27
+ router.use((req, _res, _next) => req[symbol].resolve());
28
+ router.use((err, req, _res, _next) => req[symbol].reject(err));
29
+ return async (next) => {
30
+ const req = context_js_1.requestContext.value;
31
+ const defer = (0, jdefer_1.default)();
32
+ req[symbol] = defer;
33
+ router(req, context_js_1.responseContext.value);
34
+ await defer.promise;
35
+ await next();
36
+ };
36
37
  };
37
38
  exports.expressRouter = expressRouter;
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwcmVzc0FwcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9leHByZXNzQXBwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFDQUEwRDtBQUMxRCw2Q0FBNEQ7QUFHckQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxLQUE0QixFQUFFLEVBQUU7SUFDMUQsTUFBTSxHQUFHLEdBQUcsSUFBQSxpQkFBTyxHQUFFLENBQUE7SUFDckIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ2QsSUFBSSxLQUFLLENBQUE7UUFDVCxHQUFHLENBQUMsMkJBQWMsQ0FBQyxLQUFLLEVBQUUsNEJBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFXLEVBQUUsRUFBRTtZQUNoRSxJQUFJLEdBQUc7Z0JBQUUsS0FBSyxHQUFHLEdBQUcsQ0FBQTs7Z0JBQ2YsSUFBSSxFQUFFLENBQUE7UUFDWixDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksS0FBSztZQUFFLE1BQU0sS0FBSyxDQUFBO0lBQ3ZCLENBQUMsQ0FBc0IsQ0FBQTtBQUN4QixDQUFDLENBQUE7QUFYWSxRQUFBLFVBQVUsY0FXdEI7QUFFTSxNQUFNLGFBQWEsR0FBRyxDQUFDLEtBQThCLEVBQUUsRUFBRTtJQUMvRCxNQUFNLE1BQU0sR0FBRyxpQkFBTyxDQUFDLE1BQU0sRUFBRSxDQUFBO0lBQy9CLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNiLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNkLElBQUksS0FBSyxDQUFBO1FBQ1QsTUFBTSxDQUFDLDJCQUFjLENBQUMsS0FBSyxFQUFFLDRCQUFlLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBVyxFQUFFLEVBQUU7WUFDbkUsSUFBSSxHQUFHO2dCQUFFLEtBQUssR0FBRyxHQUFHLENBQUE7O2dCQUNmLElBQUksRUFBRSxDQUFBO1FBQ1osQ0FBQyxDQUFDLENBQUE7UUFDRixJQUFJLEtBQUs7WUFBRSxNQUFNLEtBQUssQ0FBQTtJQUN2QixDQUFDLENBQXNCLENBQUE7QUFDeEIsQ0FBQyxDQUFBO0FBWFksUUFBQSxhQUFhLGlCQVd6QiJ9
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwcmVzc0FwcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9leHByZXNzQXBwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFDQUEwRDtBQUMxRCw2Q0FBNEQ7QUFFNUQsbUNBQThCO0FBRXZCLE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBNEIsRUFBRSxFQUFFO0lBQzFELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUVuQyxNQUFNLEdBQUcsR0FBRyxJQUFBLGlCQUFPLEdBQUUsQ0FBQTtJQUNyQixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDVixHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO0lBQ3BELEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUMzRCxPQUFPLEtBQUssRUFBQyxJQUFJLEVBQUMsRUFBRTtRQUNuQixNQUFNLEdBQUcsR0FBRywyQkFBYyxDQUFDLEtBQUssQ0FBQTtRQUNoQyxNQUFNLEtBQUssR0FBRyxJQUFBLGdCQUFTLEdBQUUsQ0FBQTtRQUN6QixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFBO1FBQ25CLEdBQUcsQ0FBQyxHQUFHLEVBQUUsNEJBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUMvQixNQUFNLEtBQUssQ0FBQyxPQUFPLENBQUE7UUFDbkIsTUFBTSxJQUFJLEVBQUUsQ0FBQTtJQUNiLENBQUMsQ0FBQTtBQUNGLENBQUMsQ0FBQTtBQWZZLFFBQUEsVUFBVSxjQWV0QjtBQUVNLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBOEIsRUFBRSxFQUFFO0lBQy9ELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQTtJQUV0QyxNQUFNLE1BQU0sR0FBRyxpQkFBTyxDQUFDLE1BQU0sRUFBRSxDQUFBO0lBQy9CLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNiLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUE7SUFDdkQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQzlELE9BQU8sS0FBSyxFQUFDLElBQUksRUFBQyxFQUFFO1FBQ25CLE1BQU0sR0FBRyxHQUFHLDJCQUFjLENBQUMsS0FBSyxDQUFBO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLElBQUEsZ0JBQVMsR0FBRSxDQUFBO1FBQ3pCLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUE7UUFDbkIsTUFBTSxDQUFDLEdBQUcsRUFBRSw0QkFBZSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ2xDLE1BQU0sS0FBSyxDQUFDLE9BQU8sQ0FBQTtRQUNuQixNQUFNLElBQUksRUFBRSxDQUFBO0lBQ2IsQ0FBQyxDQUFBO0FBQ0YsQ0FBQyxDQUFBO0FBZlksUUFBQSxhQUFhLGlCQWV6QiJ9
@@ -1,3 +1,3 @@
1
1
  import { type Express, type Router } from 'express';
2
- export declare const expressApp: (setup: (app: Express) => any) => (next: () => any) => void;
3
- export declare const expressRouter: (setup: (router: Router) => any) => (next: () => any) => void;
2
+ export declare const expressApp: (setup: (app: Express) => any) => (next: any) => Promise<void>;
3
+ export declare const expressRouter: (setup: (router: Router) => any) => (next: any) => Promise<void>;
package/esm/expressApp.js CHANGED
@@ -1,33 +1,34 @@
1
1
  import express from 'express';
2
2
  import { requestContext, responseContext } from './context.js';
3
+ import makeDefer from 'jdefer';
3
4
  export const expressApp = (setup) => {
5
+ const symbol = Symbol('expressApp');
4
6
  const app = express();
5
7
  setup(app);
6
- return (next => {
7
- let error;
8
- app(requestContext.value, responseContext.value, (err) => {
9
- if (err)
10
- error = err;
11
- else
12
- next();
13
- });
14
- if (error)
15
- throw error;
16
- });
8
+ app.use((req, _res, _next) => req[symbol].resolve());
9
+ app.use((err, req, _res, _next) => req[symbol].reject(err));
10
+ return async (next) => {
11
+ const req = requestContext.value;
12
+ const defer = makeDefer();
13
+ req[symbol] = defer;
14
+ app(req, responseContext.value);
15
+ await defer.promise;
16
+ await next();
17
+ };
17
18
  };
18
19
  export const expressRouter = (setup) => {
20
+ const symbol = Symbol('expressRouter');
19
21
  const router = express.Router();
20
22
  setup(router);
21
- return (next => {
22
- let error;
23
- router(requestContext.value, responseContext.value, (err) => {
24
- if (err)
25
- error = err;
26
- else
27
- next();
28
- });
29
- if (error)
30
- throw error;
31
- });
23
+ router.use((req, _res, _next) => req[symbol].resolve());
24
+ router.use((err, req, _res, _next) => req[symbol].reject(err));
25
+ return async (next) => {
26
+ const req = requestContext.value;
27
+ const defer = makeDefer();
28
+ req[symbol] = defer;
29
+ router(req, responseContext.value);
30
+ await defer.promise;
31
+ await next();
32
+ };
32
33
  };
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwcmVzc0FwcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9leHByZXNzQXBwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sT0FBb0MsTUFBTSxTQUFTLENBQUE7QUFDMUQsT0FBTyxFQUFDLGNBQWMsRUFBRSxlQUFlLEVBQUMsTUFBTSxjQUFjLENBQUE7QUFHNUQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBNEIsRUFBRSxFQUFFO0lBQzFELE1BQU0sR0FBRyxHQUFHLE9BQU8sRUFBRSxDQUFBO0lBQ3JCLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNkLElBQUksS0FBSyxDQUFBO1FBQ1QsR0FBRyxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsZUFBZSxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQVcsRUFBRSxFQUFFO1lBQ2hFLElBQUksR0FBRztnQkFBRSxLQUFLLEdBQUcsR0FBRyxDQUFBOztnQkFDZixJQUFJLEVBQUUsQ0FBQTtRQUNaLENBQUMsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxLQUFLO1lBQUUsTUFBTSxLQUFLLENBQUE7SUFDdkIsQ0FBQyxDQUFzQixDQUFBO0FBQ3hCLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLEtBQThCLEVBQUUsRUFBRTtJQUMvRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUE7SUFDL0IsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ2IsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ2QsSUFBSSxLQUFLLENBQUE7UUFDVCxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBVyxFQUFFLEVBQUU7WUFDbkUsSUFBSSxHQUFHO2dCQUFFLEtBQUssR0FBRyxHQUFHLENBQUE7O2dCQUNmLElBQUksRUFBRSxDQUFBO1FBQ1osQ0FBQyxDQUFDLENBQUE7UUFDRixJQUFJLEtBQUs7WUFBRSxNQUFNLEtBQUssQ0FBQTtJQUN2QixDQUFDLENBQXNCLENBQUE7QUFDeEIsQ0FBQyxDQUFBIn0=
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwcmVzc0FwcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9leHByZXNzQXBwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sT0FBb0MsTUFBTSxTQUFTLENBQUE7QUFDMUQsT0FBTyxFQUFDLGNBQWMsRUFBRSxlQUFlLEVBQUMsTUFBTSxjQUFjLENBQUE7QUFFNUQsT0FBTyxTQUFTLE1BQU0sUUFBUSxDQUFBO0FBRTlCLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQTRCLEVBQUUsRUFBRTtJQUMxRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUE7SUFFbkMsTUFBTSxHQUFHLEdBQUcsT0FBTyxFQUFFLENBQUE7SUFDckIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ1YsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQTtJQUNwRCxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7SUFDM0QsT0FBTyxLQUFLLEVBQUMsSUFBSSxFQUFDLEVBQUU7UUFDbkIsTUFBTSxHQUFHLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQTtRQUNoQyxNQUFNLEtBQUssR0FBRyxTQUFTLEVBQUUsQ0FBQTtRQUN6QixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFBO1FBQ25CLEdBQUcsQ0FBQyxHQUFHLEVBQUUsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQy9CLE1BQU0sS0FBSyxDQUFDLE9BQU8sQ0FBQTtRQUNuQixNQUFNLElBQUksRUFBRSxDQUFBO0lBQ2IsQ0FBQyxDQUFBO0FBQ0YsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBOEIsRUFBRSxFQUFFO0lBQy9ELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQTtJQUV0QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUE7SUFDL0IsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ2IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQTtJQUN2RCxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7SUFDOUQsT0FBTyxLQUFLLEVBQUMsSUFBSSxFQUFDLEVBQUU7UUFDbkIsTUFBTSxHQUFHLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQTtRQUNoQyxNQUFNLEtBQUssR0FBRyxTQUFTLEVBQUUsQ0FBQTtRQUN6QixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFBO1FBQ25CLE1BQU0sQ0FBQyxHQUFHLEVBQUUsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ2xDLE1BQU0sS0FBSyxDQUFDLE9BQU8sQ0FBQTtRQUNuQixNQUFNLElBQUksRUFBRSxDQUFBO0lBQ2IsQ0FBQyxDQUFBO0FBQ0YsQ0FBQyxDQUFBIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dx-server",
3
- "version": "0.0.1-pre-8",
3
+ "version": "0.0.1-pre-9",
4
4
  "main": "./cjs/index.js",
5
5
  "repository": "git@github.com:tranvansang/dx-server.git",
6
6
  "author": "Sang Tran <t@sang.jp>",