@modern-js/bff-core 1.22.1 → 1.22.2-beta.0

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.
Files changed (38) hide show
  1. package/CHANGELOG.md +135 -17
  2. package/dist/js/modern/api.js +49 -34
  3. package/dist/js/modern/client/generate-client.js +52 -34
  4. package/dist/js/modern/client/index.js +1 -1
  5. package/dist/js/modern/client/result.js +10 -8
  6. package/dist/js/modern/errors/http.js +8 -14
  7. package/dist/js/modern/index.js +19 -3
  8. package/dist/js/modern/operators/http.js +139 -116
  9. package/dist/js/modern/router/constants.js +31 -13
  10. package/dist/js/modern/router/index.js +68 -131
  11. package/dist/js/modern/router/types.js +0 -1
  12. package/dist/js/modern/router/utils.js +36 -54
  13. package/dist/js/modern/types.js +45 -47
  14. package/dist/js/modern/utils/alias.js +35 -50
  15. package/dist/js/modern/utils/debug.js +5 -2
  16. package/dist/js/modern/utils/index.js +5 -2
  17. package/dist/js/modern/utils/meta.js +8 -4
  18. package/dist/js/modern/utils/storage.js +8 -14
  19. package/dist/js/modern/utils/validate.js +23 -29
  20. package/dist/js/node/api.js +78 -46
  21. package/dist/js/node/client/generate-client.js +85 -55
  22. package/dist/js/node/client/index.js +17 -18
  23. package/dist/js/node/client/result.js +32 -18
  24. package/dist/js/node/errors/http.js +28 -22
  25. package/dist/js/node/index.js +45 -122
  26. package/dist/js/node/operators/http.js +184 -169
  27. package/dist/js/node/router/constants.js +60 -28
  28. package/dist/js/node/router/index.js +112 -201
  29. package/dist/js/node/router/types.js +15 -5
  30. package/dist/js/node/router/utils.js +71 -78
  31. package/dist/js/node/types.js +71 -57
  32. package/dist/js/node/utils/alias.js +65 -73
  33. package/dist/js/node/utils/debug.js +27 -10
  34. package/dist/js/node/utils/index.js +28 -68
  35. package/dist/js/node/utils/meta.js +30 -12
  36. package/dist/js/node/utils/storage.js +36 -24
  37. package/dist/js/node/utils/validate.js +50 -44
  38. package/package.json +12 -40
package/CHANGELOG.md CHANGED
@@ -1,41 +1,159 @@
1
1
  # @modern-js/bff-core
2
2
 
3
- ## 1.22.1
3
+ ## 2.0.0-beta.4
4
+
5
+ ### Major Changes
6
+
7
+ - dda38c9c3e: chore: v2
4
8
 
5
9
  ### Patch Changes
6
10
 
7
- - @modern-js/bff-runtime@1.22.1
8
- - @modern-js/utils@1.22.1
11
+ - 2344eb26ed: fix: esbuild should not handle js files
12
+ fix: esbuild 不应该处理非 js 文件
13
+ - a2509bfbdb: feat: bump esbuild from 0.14.38 to 0.15.7
14
+
15
+ feat: 将 esbuild 从 0.14.38 版本升级至 0.15.7 版本
16
+
17
+ - Updated dependencies [7879e8f]
18
+ - Updated dependencies [6aca875]
19
+ - Updated dependencies [2e6031955e]
20
+ - Updated dependencies [7b7d12c]
21
+ - Updated dependencies [92f0eade39]
22
+ - Updated dependencies [edd1cfb1af]
23
+ - Updated dependencies [cc971eabfc]
24
+ - Updated dependencies [5b9049f2e9]
25
+ - Updated dependencies [92004d1906]
26
+ - Updated dependencies [b8bbe036c7]
27
+ - Updated dependencies [d5a31df781]
28
+ - Updated dependencies [dda38c9c3e]
29
+ - Updated dependencies [3bbea92b2a]
30
+ - Updated dependencies [b710adb843]
31
+ - Updated dependencies [ea7cf06]
32
+ - Updated dependencies [bbe4c4a]
33
+ - Updated dependencies [e4558a0]
34
+ - Updated dependencies [abf3421a75]
35
+ - Updated dependencies [543be9558e]
36
+ - Updated dependencies [14b712da84]
37
+ - @modern-js/utils@2.0.0-beta.4
38
+ - @modern-js/bff-runtime@2.0.0-beta.4
39
+
40
+ ## 2.0.0-beta.3
41
+
42
+ ### Major Changes
43
+
44
+ - dda38c9c3e: chore: v2
9
45
 
10
- ## 1.21.6
46
+ ### Patch Changes
47
+
48
+ - 2344eb26ed: fix: esbuild should not handle js files
49
+ fix: esbuild 不应该处理非 js 文件
50
+ - a2509bfbdb: feat: bump esbuild from 0.14.38 to 0.15.7
51
+
52
+ feat: 将 esbuild 从 0.14.38 版本升级至 0.15.7 版本
53
+
54
+ - Updated dependencies [6aca875]
55
+ - Updated dependencies [2e60319]
56
+ - Updated dependencies [92f0eade39]
57
+ - Updated dependencies [edd1cfb1af]
58
+ - Updated dependencies [cc971eabfc]
59
+ - Updated dependencies [5b9049f2e9]
60
+ - Updated dependencies [92004d1906]
61
+ - Updated dependencies [b8bbe036c7]
62
+ - Updated dependencies [d5a31df781]
63
+ - Updated dependencies [dda38c9c3e]
64
+ - Updated dependencies [3bbea92b2a]
65
+ - Updated dependencies [b710adb]
66
+ - Updated dependencies [ea7cf06]
67
+ - Updated dependencies [bbe4c4a]
68
+ - Updated dependencies [e4558a0]
69
+ - Updated dependencies [abf3421a75]
70
+ - Updated dependencies [543be9558e]
71
+ - Updated dependencies [14b712da84]
72
+ - @modern-js/utils@2.0.0-beta.3
73
+ - @modern-js/bff-runtime@2.0.0-beta.3
74
+
75
+ ## 2.0.0-beta.2
76
+
77
+ ### Major Changes
78
+
79
+ - dda38c9c3e: chore: v2
11
80
 
12
81
  ### Patch Changes
13
82
 
14
- - @modern-js/bff-runtime@1.21.6
15
- - @modern-js/utils@1.21.6
83
+ - 2344eb2: fix: esbuild should not handle js files
84
+ fix: esbuild 不应该处理非 js 文件
85
+ - a2509bfbdb: feat: bump esbuild from 0.14.38 to 0.15.7
16
86
 
17
- ## 1.21.5
87
+ feat: 将 esbuild 从 0.14.38 版本升级至 0.15.7 版本
88
+
89
+ - Updated dependencies [92f0ead]
90
+ - Updated dependencies [edd1cfb1af]
91
+ - Updated dependencies [cc971eabfc]
92
+ - Updated dependencies [5b9049f2e9]
93
+ - Updated dependencies [92004d1]
94
+ - Updated dependencies [b8bbe036c7]
95
+ - Updated dependencies [d5a31df781]
96
+ - Updated dependencies [dda38c9c3e]
97
+ - Updated dependencies [3bbea92b2a]
98
+ - Updated dependencies [abf3421a75]
99
+ - Updated dependencies [543be9558e]
100
+ - Updated dependencies [14b712da84]
101
+ - @modern-js/utils@2.0.0-beta.2
102
+ - @modern-js/bff-runtime@2.0.0-beta.2
103
+
104
+ ## 2.0.0-beta.1
105
+
106
+ ### Major Changes
107
+
108
+ - dda38c9: chore: v2
18
109
 
19
110
  ### Patch Changes
20
111
 
21
- - 4876aa7: fix: esbuild should not handle js files
112
+ - 2344eb2: fix: esbuild should not handle js files
22
113
  fix: esbuild 不应该处理非 js 文件
23
- - @modern-js/bff-runtime@1.21.5
24
- - @modern-js/utils@1.21.5
114
+ - a2509bfbdb: feat: bump esbuild from 0.14.38 to 0.15.7
25
115
 
26
- ## 1.21.4
116
+ feat: 将 esbuild 从 0.14.38 版本升级至 0.15.7 版本
27
117
 
28
- ### Patch Changes
118
+ - Updated dependencies [92f0ead]
119
+ - Updated dependencies [edd1cfb1af]
120
+ - Updated dependencies [cc971eabfc]
121
+ - Updated dependencies [5b9049f]
122
+ - Updated dependencies [92004d1]
123
+ - Updated dependencies [b8bbe036c7]
124
+ - Updated dependencies [d5a31df781]
125
+ - Updated dependencies [dda38c9]
126
+ - Updated dependencies [3bbea92b2a]
127
+ - Updated dependencies [abf3421]
128
+ - Updated dependencies [543be9558e]
129
+ - Updated dependencies [14b712d]
130
+ - @modern-js/utils@2.0.0-beta.1
131
+ - @modern-js/bff-runtime@2.0.0-beta.1
132
+
133
+ ## 2.0.0-beta.0
29
134
 
30
- - @modern-js/bff-runtime@1.21.4
31
- - @modern-js/utils@1.21.4
135
+ ### Major Changes
32
136
 
33
- ## 1.21.3
137
+ - dda38c9: chore: v2
34
138
 
35
139
  ### Patch Changes
36
140
 
37
- - @modern-js/bff-runtime@1.21.3
38
- - @modern-js/utils@1.21.3
141
+ - a2509bf: feat: bump esbuild from 0.14.38 to 0.15.7
142
+
143
+ feat: 将 esbuild 从 0.14.38 版本升级至 0.15.7 版本
144
+
145
+ - Updated dependencies [edd1cfb1a]
146
+ - Updated dependencies [cc971eabf]
147
+ - Updated dependencies [5b9049f]
148
+ - Updated dependencies [b8bbe036c]
149
+ - Updated dependencies [d5a31df78]
150
+ - Updated dependencies [dda38c9]
151
+ - Updated dependencies [3bbea92b2]
152
+ - Updated dependencies [abf3421]
153
+ - Updated dependencies [543be95]
154
+ - Updated dependencies [14b712d]
155
+ - @modern-js/utils@2.0.0-beta.0
156
+ - @modern-js/bff-runtime@2.0.0-beta.0
39
157
 
40
158
  ## 1.21.2
41
159
 
@@ -1,54 +1,69 @@
1
- import 'reflect-metadata';
2
- import compose from 'koa-compose';
1
+ var __async = (__this, __arguments, generator) => {
2
+ return new Promise((resolve, reject) => {
3
+ var fulfilled = (value) => {
4
+ try {
5
+ step(generator.next(value));
6
+ } catch (e) {
7
+ reject(e);
8
+ }
9
+ };
10
+ var rejected = (value) => {
11
+ try {
12
+ step(generator.throw(value));
13
+ } catch (e) {
14
+ reject(e);
15
+ }
16
+ };
17
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
18
+ step((generator = generator.apply(__this, __arguments)).next());
19
+ });
20
+ };
21
+ import "reflect-metadata";
22
+ import compose from "koa-compose";
3
23
  import { validateFunction, HANDLER_WITH_META } from "./utils";
4
- export function Api(...args) {
24
+ function Api(...args) {
5
25
  const handler = args.pop();
6
- validateFunction(handler, 'Apihandler');
26
+ validateFunction(handler, "Apihandler");
7
27
  const operators = args;
8
28
  const metadataHelper = {
9
29
  getMetadata(key) {
10
30
  return Reflect.getMetadata(key, runner);
11
31
  },
12
-
13
32
  setMetadata(key, value) {
14
33
  return Reflect.defineMetadata(key, value, runner);
15
34
  }
16
-
17
35
  };
18
-
19
36
  for (const operator of operators) {
20
37
  if (operator.metadata) {
21
38
  operator.metadata(metadataHelper);
22
39
  }
23
40
  }
24
-
25
- const validateHandlers = operators.filter(operator => operator.validate).map(operator => operator.validate);
26
- const pipeHandlers = operators.filter(operator => operator.execute).map(operator => operator.execute);
27
-
28
- async function runner(inputs) {
29
- const executeHelper = {
30
- result: null,
31
-
32
- get inputs() {
33
- return inputs;
34
- },
35
-
36
- set inputs(val) {
37
- // eslint-disable-next-line no-param-reassign
38
- inputs = val;
39
- }
40
-
41
- };
42
- const stack = [...validateHandlers, ...pipeHandlers];
43
- stack.push(async (helper, next) => {
44
- const res = await handler(helper.inputs);
45
- helper.result = res;
46
- return next();
41
+ const validateHandlers = operators.filter((operator) => operator.validate).map((operator) => operator.validate);
42
+ const pipeHandlers = operators.filter((operator) => operator.execute).map((operator) => operator.execute);
43
+ function runner(inputs) {
44
+ return __async(this, null, function* () {
45
+ const executeHelper = {
46
+ result: null,
47
+ get inputs() {
48
+ return inputs;
49
+ },
50
+ set inputs(val) {
51
+ inputs = val;
52
+ }
53
+ };
54
+ const stack = [...validateHandlers, ...pipeHandlers];
55
+ stack.push((helper, next) => __async(this, null, function* () {
56
+ const res = yield handler(helper.inputs);
57
+ helper.result = res;
58
+ return next();
59
+ }));
60
+ yield compose(stack)(executeHelper);
61
+ return executeHelper.result;
47
62
  });
48
- await compose(stack)(executeHelper);
49
- return executeHelper.result;
50
63
  }
51
-
52
64
  runner[HANDLER_WITH_META] = true;
53
65
  return runner;
54
- }
66
+ }
67
+ export {
68
+ Api
69
+ };
@@ -1,8 +1,28 @@
1
- import * as path from 'path';
1
+ var __async = (__this, __arguments, generator) => {
2
+ return new Promise((resolve, reject) => {
3
+ var fulfilled = (value) => {
4
+ try {
5
+ step(generator.next(value));
6
+ } catch (e) {
7
+ reject(e);
8
+ }
9
+ };
10
+ var rejected = (value) => {
11
+ try {
12
+ step(generator.throw(value));
13
+ } catch (e) {
14
+ reject(e);
15
+ }
16
+ };
17
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
18
+ step((generator = generator.apply(__this, __arguments)).next());
19
+ });
20
+ };
21
+ import * as path from "path";
2
22
  import { ApiRouter } from "../router";
3
23
  import { Ok, Err } from "./result";
4
- export const DEFAULT_CLIENT_REQUEST_CREATOR = '@modern-js/create-request';
5
- export const generateClient = async ({
24
+ const DEFAULT_CLIENT_REQUEST_CREATOR = "@modern-js/create-request";
25
+ const generateClient = (_0) => __async(void 0, [_0], function* ({
6
26
  resourcePath,
7
27
  apiDir,
8
28
  prefix,
@@ -10,54 +30,52 @@ export const generateClient = async ({
10
30
  target,
11
31
  requestCreator,
12
32
  fetcher,
13
- requireResolve: _requireResolve = require.resolve
14
- }) => {
33
+ requireResolve = require.resolve
34
+ }) {
15
35
  if (!requestCreator) {
16
- // eslint-disable-next-line no-param-reassign
17
- requestCreator = _requireResolve(`${DEFAULT_CLIENT_REQUEST_CREATOR}${target ? `/${target}` : ''}`).replace(/\\/g, '/');
36
+ requestCreator = requireResolve(
37
+ `${DEFAULT_CLIENT_REQUEST_CREATOR}${target ? `/${target}` : ""}`
38
+ ).replace(/\\/g, "/");
18
39
  } else {
19
- // 这里约束传入的 requestCreator 包也必须有两个导出 client 和 server,因为目前的机制 client 和 server 要导出不同的 configure 函数;该 api 不对使用者暴露,后续可优化
20
40
  let resolvedPath = requestCreator;
21
-
22
41
  try {
23
- resolvedPath = path.dirname(_requireResolve(requestCreator));
24
- } catch (error) {} // eslint-disable-next-line no-param-reassign
25
-
26
-
27
- requestCreator = `${resolvedPath}${target ? `/${target}` : ''}`.replace(/\\/g, '/');
42
+ resolvedPath = path.dirname(requireResolve(requestCreator));
43
+ } catch (error) {
44
+ }
45
+ requestCreator = `${resolvedPath}${target ? `/${target}` : ""}`.replace(
46
+ /\\/g,
47
+ "/"
48
+ );
28
49
  }
29
-
30
50
  const apiRouter = new ApiRouter({
31
51
  apiDir,
32
52
  prefix
33
53
  });
34
54
  const handlerInfos = apiRouter.getSingleModuleHandlers(resourcePath);
35
-
36
55
  if (!handlerInfos) {
37
56
  return Err(`generate client error: Cannot require module ${resourcePath}`);
38
57
  }
39
-
40
- let handlersCode = '';
41
-
58
+ let handlersCode = "";
42
59
  for (const handlerInfo of handlerInfos) {
43
- const {
44
- name,
45
- httpMethod,
46
- routePath
47
- } = handlerInfo;
48
- let exportStatement = `const ${name} =`;
49
-
50
- if (name.toLowerCase() === 'default') {
51
- exportStatement = 'default';
60
+ const { name, httpMethod, routePath } = handlerInfo;
61
+ let exportStatement = `var ${name} =`;
62
+ if (name.toLowerCase() === "default") {
63
+ exportStatement = "default";
52
64
  }
53
-
54
65
  const upperHttpMethod = httpMethod.toUpperCase();
55
66
  const routeName = routePath;
56
- handlersCode += `export ${exportStatement} createRequest('${routeName}', '${upperHttpMethod}', process.env.PORT || ${String(port)}${fetcher ? `, fetch` : ''});
67
+ handlersCode += `export ${exportStatement} createRequest('${routeName}', '${upperHttpMethod}', process.env.PORT || ${String(
68
+ port
69
+ )}${fetcher ? `, fetch` : ""});
57
70
  `;
58
71
  }
59
-
60
72
  const importCode = `import { createRequest } from '${requestCreator}';
61
- ${fetcher ? `import { fetch } from '${fetcher}';\n` : ''}`;
62
- return Ok(`${importCode}\n${handlersCode}`);
63
- };
73
+ ${fetcher ? `import { fetch } from '${fetcher}';
74
+ ` : ""}`;
75
+ return Ok(`${importCode}
76
+ ${handlersCode}`);
77
+ });
78
+ export {
79
+ DEFAULT_CLIENT_REQUEST_CREATOR,
80
+ generateClient
81
+ };
@@ -1 +1 @@
1
- export * from "./generate-client";
1
+ export * from "./generate-client";
@@ -1,20 +1,22 @@
1
- // eslint-disable-next-line @typescript-eslint/no-redeclare
2
- export const Err = value => {
1
+ const Err = (value) => {
3
2
  const err = {
4
- kind: 'Err',
3
+ kind: "Err",
5
4
  value,
6
5
  isErr: true,
7
6
  isOk: false
8
7
  };
9
8
  return err;
10
- }; // eslint-disable-next-line @typescript-eslint/no-redeclare
11
-
12
- export const Ok = value => {
9
+ };
10
+ const Ok = (value) => {
13
11
  const ok = {
14
- kind: 'Ok',
12
+ kind: "Ok",
15
13
  value,
16
14
  isErr: false,
17
15
  isOk: true
18
16
  };
19
17
  return ok;
20
- };
18
+ };
19
+ export {
20
+ Err,
21
+ Ok
22
+ };
@@ -1,22 +1,16 @@
1
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
-
3
- export class HttpError extends Error {
1
+ class HttpError extends Error {
4
2
  constructor(status, message) {
5
3
  super(message);
6
-
7
- _defineProperty(this, "status", void 0);
8
-
9
4
  this.status = status;
10
5
  }
11
-
12
6
  }
13
- export class ValidationError extends HttpError {
7
+ class ValidationError extends HttpError {
14
8
  constructor(status, message) {
15
9
  super(status, message);
16
-
17
- _defineProperty(this, "code", void 0);
18
-
19
- this.code = 'VALIDATION_ERROR';
10
+ this.code = "VALIDATION_ERROR";
20
11
  }
21
-
22
- }
12
+ }
13
+ export {
14
+ HttpError,
15
+ ValidationError
16
+ };
@@ -1,7 +1,23 @@
1
- export { Api } from "./api";
2
- export { HttpError, ValidationError } from "./errors/http";
1
+ import { Api } from "./api";
2
+ import { HttpError, ValidationError } from "./errors/http";
3
3
  export * from "./router";
4
4
  export * from "./types";
5
5
  export * from "./client";
6
6
  export * from "./operators/http";
7
- export { getRelativeRuntimePath, HANDLER_WITH_META, isWithMetaHandler, createStorage, registerPaths } from "./utils";
7
+ import {
8
+ getRelativeRuntimePath,
9
+ HANDLER_WITH_META,
10
+ isWithMetaHandler,
11
+ createStorage,
12
+ registerPaths
13
+ } from "./utils";
14
+ export {
15
+ Api,
16
+ HANDLER_WITH_META,
17
+ HttpError,
18
+ ValidationError,
19
+ createStorage,
20
+ getRelativeRuntimePath,
21
+ isWithMetaHandler,
22
+ registerPaths
23
+ };