@napp/dti-server 4.0.2 → 4.1.3

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/action.d.ts CHANGED
@@ -1,15 +1,13 @@
1
1
  import { DtiAction } from "@napp/dti-core";
2
- import { IContext, IMiddleware } from "./common";
2
+ import { IContext } from "./common";
3
3
  export interface ODtiServerAction<RESULT, PARAM> {
4
4
  action: (param: PARAM, ctx: IContext) => Promise<RESULT>;
5
- before?: Array<IMiddleware>;
6
5
  }
7
6
  export declare class DtiServerAction<RESULT, PARAM> {
8
7
  meta: DtiAction<RESULT, PARAM>;
9
8
  private opt;
10
9
  private constructor();
11
10
  action(param: PARAM, ctx: IContext): Promise<RESULT>;
12
- before(): Array<IMiddleware>;
13
11
  validation(param: PARAM): void;
14
12
  static factory<RESULT, PARAM>(meta: DtiAction<RESULT, PARAM>, opt: ODtiServerAction<RESULT, PARAM>): DtiServerAction<RESULT, PARAM>;
15
13
  }
package/action.js CHANGED
@@ -9,9 +9,6 @@ class DtiServerAction {
9
9
  action(param, ctx) {
10
10
  return this.opt.action(param, ctx);
11
11
  }
12
- before() {
13
- return this.opt.before || [];
14
- }
15
12
  validation(param) {
16
13
  this.meta.validate(param);
17
14
  }
package/bundler.d.ts ADDED
@@ -0,0 +1,13 @@
1
+ import { IContext, OSetupParam } from "./common";
2
+ import { DtiServer } from "./server";
3
+ interface IMeteParam {
4
+ name: string;
5
+ param: any;
6
+ }
7
+ export declare class BundlerServer {
8
+ private server;
9
+ constructor(server: DtiServer);
10
+ action(meta: Array<IMeteParam>, ctx: IContext): Promise<any[]>;
11
+ setup(expressRoute: any, setuper: OSetupParam): void;
12
+ }
13
+ export {};
package/bundler.js ADDED
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.BundlerServer = void 0;
16
+ const base64url_1 = __importDefault(require("base64url"));
17
+ class BundlerServer {
18
+ constructor(server) {
19
+ this.server = server;
20
+ }
21
+ action(meta, ctx) {
22
+ return __awaiter(this, void 0, void 0, function* () {
23
+ let actions = [];
24
+ for (let it of meta) {
25
+ let action = this.server.getActionByName(it.name);
26
+ if (action) {
27
+ action.validation(it.param);
28
+ // console.log('call', it.name, it.param, await action?.action(it.param, ctx))
29
+ actions.push(() => __awaiter(this, void 0, void 0, function* () { return yield (action === null || action === void 0 ? void 0 : action.action(it.param, ctx)); }));
30
+ }
31
+ else {
32
+ throw new Error('not defined action. name=' + it.name);
33
+ }
34
+ }
35
+ return yield Promise.all(actions.map(it => it()));
36
+ });
37
+ }
38
+ setup(expressRoute, setuper) {
39
+ if (setuper.factoryBodyparseJson) {
40
+ expressRoute.post('/__bundler_post__', setuper.factoryBodyparseJson(), (req, res, next) => __awaiter(this, void 0, void 0, function* () {
41
+ try {
42
+ let meta = req.body || [];
43
+ let result = yield this.action(meta, { req, res });
44
+ res.json(result);
45
+ }
46
+ catch (error) {
47
+ next(error);
48
+ }
49
+ }));
50
+ expressRoute.get('/__bundler_get__', (req, res, next) => __awaiter(this, void 0, void 0, function* () {
51
+ var _a;
52
+ try {
53
+ let p = (_a = req.query) === null || _a === void 0 ? void 0 : _a.p;
54
+ if (p) {
55
+ let json = base64url_1.default.decode(p);
56
+ let meta = JSON.parse(json);
57
+ let result = yield this.action(meta, { req, res });
58
+ res.json(result);
59
+ }
60
+ else {
61
+ res.json([]);
62
+ }
63
+ }
64
+ catch (error) {
65
+ next(error);
66
+ }
67
+ }));
68
+ }
69
+ else {
70
+ throw new Error('not defined server.factoryBodyparseJson');
71
+ }
72
+ }
73
+ }
74
+ exports.BundlerServer = BundlerServer;
package/common.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { DtiAction, DtiRoute } from "@napp/dti-core";
1
+ import { DtiRoute } from "@napp/dti-core";
2
2
  export interface IContext {
3
3
  req: any;
4
4
  res: any;
@@ -16,6 +16,6 @@ export interface Logger {
16
16
  }
17
17
  export interface OSetupParam {
18
18
  factoryExpressRouter(dtiRouter: DtiRoute): any;
19
- factoryBodyparseJson(action: DtiAction<any, any>): IMiddleware;
20
- factoryBodyparseUrlencode(action: DtiAction<any, any>): IMiddleware;
19
+ factoryBodyparseJson?: () => IMiddleware;
20
+ factoryBodyparseUrlencode?: () => IMiddleware;
21
21
  }
package/index.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  export * from './action';
2
2
  export * from './common';
3
- export * from './response';
4
3
  export * from './route';
5
4
  export * from './server';
package/index.js CHANGED
@@ -16,6 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./action"), exports);
18
18
  __exportStar(require("./common"), exports);
19
- __exportStar(require("./response"), exports);
20
19
  __exportStar(require("./route"), exports);
21
20
  __exportStar(require("./server"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@napp/dti-server",
3
- "version": "4.0.2",
3
+ "version": "4.1.3",
4
4
  "description": "data transaction interface server library",
5
5
  "repository": {
6
6
  "type": "git",
@@ -16,7 +16,7 @@
16
16
  "author": "Farcek <farcek@gmail.com>",
17
17
  "license": "ISC",
18
18
  "dependencies": {
19
- "@napp/dti-core": "4.0.2",
19
+ "@napp/dti-core": "4.1.3",
20
20
  "base64url": "latest"
21
21
  }
22
22
  }
package/route.js CHANGED
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.DtiServerRoute = void 0;
7
7
  const dti_core_1 = require("@napp/dti-core");
8
- const response_1 = require("./response");
9
8
  const base64url_1 = __importDefault(require("base64url"));
10
9
  class DtiServerRoute {
11
10
  constructor(meta, server) {
@@ -13,13 +12,14 @@ class DtiServerRoute {
13
12
  this.server = server;
14
13
  }
15
14
  param(action, req) {
15
+ var _a;
16
16
  let mode = action.meta.getMode();
17
17
  if (mode === dti_core_1.DtiMode.QString) {
18
18
  return req.query;
19
19
  }
20
20
  else if (mode === dti_core_1.DtiMode.QJson) {
21
21
  try {
22
- let p = req.query.p;
22
+ let p = (_a = req.query) === null || _a === void 0 ? void 0 : _a.p;
23
23
  if (p) {
24
24
  let json = base64url_1.default.decode(p);
25
25
  return JSON.parse(json);
@@ -40,12 +40,6 @@ class DtiServerRoute {
40
40
  sa.validation(param);
41
41
  return sa.action(param, { req, res })
42
42
  .then(rsu => {
43
- if (rsu instanceof response_1.DtiResponse) {
44
- if (rsu.handle) {
45
- return rsu.handle(res);
46
- }
47
- return res.end();
48
- }
49
43
  return res.json(rsu);
50
44
  })
51
45
  .catch(err => next(err));
@@ -55,20 +49,29 @@ class DtiServerRoute {
55
49
  }
56
50
  }
57
51
  setupAction(expressRoute, action, setuper) {
58
- let befores = action.before();
59
52
  let mode = action.meta.getMode();
60
53
  let path = action.meta.getPath();
61
54
  let endpoint = (req, res, next) => {
62
55
  this.callAction(action, req, res, next);
63
56
  };
64
57
  if (mode === dti_core_1.DtiMode.QString || mode === dti_core_1.DtiMode.QJson) {
65
- expressRoute.get(path, [...befores, endpoint]);
58
+ expressRoute.get(path, endpoint);
66
59
  }
67
60
  else if (mode === dti_core_1.DtiMode.BJson) {
68
- expressRoute.post(path, [setuper.factoryBodyparseJson(action.meta), ...befores, endpoint]);
61
+ if (setuper.factoryBodyparseJson) {
62
+ expressRoute.post(path, [setuper.factoryBodyparseJson(), endpoint]);
63
+ }
64
+ else {
65
+ throw new Error('not define server.factoryBodyparseJson');
66
+ }
69
67
  }
70
68
  else if (mode === dti_core_1.DtiMode.BFrom) {
71
- expressRoute.post(path, [setuper.factoryBodyparseUrlencode(action.meta), ...befores, endpoint]);
69
+ if (setuper.factoryBodyparseUrlencode) {
70
+ expressRoute.post(path, [setuper.factoryBodyparseUrlencode(), endpoint]);
71
+ }
72
+ else {
73
+ throw new Error('not define server.factoryBodyparseUrlencode');
74
+ }
72
75
  }
73
76
  else {
74
77
  throw new Error("not support methid. logic error");
package/server.js CHANGED
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DtiServer = void 0;
4
4
  const dti_core_1 = require("@napp/dti-core");
5
5
  const route_1 = require("./route");
6
+ const bundler_1 = require("./bundler");
6
7
  class DtiServer {
7
8
  constructor(root) {
8
9
  this.root = root;
@@ -37,6 +38,7 @@ class DtiServer {
37
38
  }
38
39
  static setup(server, setuper) {
39
40
  let route = setuper.factoryExpressRouter(server.root);
41
+ new bundler_1.BundlerServer(server).setup(route, setuper);
40
42
  route.use(server.root.getLocalPath(), new route_1.DtiServerRoute(server.root, server).setup(setuper));
41
43
  route.use((err, req, res, next) => {
42
44
  res.status(500).json(dti_core_1.DtiError.from(err).toPlanObject());
package/response.d.ts DELETED
@@ -1,4 +0,0 @@
1
- export declare class DtiResponse {
2
- handle?: ((res: any) => void) | undefined;
3
- constructor(handle?: ((res: any) => void) | undefined);
4
- }
package/response.js DELETED
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DtiResponse = void 0;
4
- class DtiResponse {
5
- constructor(handle) {
6
- this.handle = handle;
7
- }
8
- }
9
- exports.DtiResponse = DtiResponse;