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

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 +21 -132
  2. package/dist/js/modern/api.js +34 -49
  3. package/dist/js/modern/client/generate-client.js +34 -52
  4. package/dist/js/modern/client/index.js +1 -1
  5. package/dist/js/modern/client/result.js +8 -10
  6. package/dist/js/modern/errors/http.js +14 -8
  7. package/dist/js/modern/index.js +3 -19
  8. package/dist/js/modern/operators/http.js +116 -139
  9. package/dist/js/modern/router/constants.js +13 -31
  10. package/dist/js/modern/router/index.js +131 -68
  11. package/dist/js/modern/router/types.js +1 -0
  12. package/dist/js/modern/router/utils.js +54 -36
  13. package/dist/js/modern/types.js +47 -45
  14. package/dist/js/modern/utils/alias.js +50 -35
  15. package/dist/js/modern/utils/debug.js +2 -5
  16. package/dist/js/modern/utils/index.js +2 -5
  17. package/dist/js/modern/utils/meta.js +4 -8
  18. package/dist/js/modern/utils/storage.js +14 -8
  19. package/dist/js/modern/utils/validate.js +29 -23
  20. package/dist/js/node/api.js +46 -78
  21. package/dist/js/node/client/generate-client.js +55 -85
  22. package/dist/js/node/client/index.js +18 -17
  23. package/dist/js/node/client/result.js +18 -32
  24. package/dist/js/node/errors/http.js +22 -28
  25. package/dist/js/node/index.js +122 -45
  26. package/dist/js/node/operators/http.js +169 -184
  27. package/dist/js/node/router/constants.js +28 -60
  28. package/dist/js/node/router/index.js +201 -112
  29. package/dist/js/node/router/types.js +5 -15
  30. package/dist/js/node/router/utils.js +78 -71
  31. package/dist/js/node/types.js +57 -71
  32. package/dist/js/node/utils/alias.js +73 -65
  33. package/dist/js/node/utils/debug.js +10 -27
  34. package/dist/js/node/utils/index.js +68 -28
  35. package/dist/js/node/utils/meta.js +12 -30
  36. package/dist/js/node/utils/storage.js +24 -36
  37. package/dist/js/node/utils/validate.js +44 -50
  38. package/package.json +40 -12
package/CHANGELOG.md CHANGED
@@ -1,159 +1,48 @@
1
1
  # @modern-js/bff-core
2
2
 
3
- ## 2.0.0-beta.4
4
-
5
- ### Major Changes
6
-
7
- - dda38c9c3e: chore: v2
3
+ ## 1.22.2
8
4
 
9
5
  ### Patch Changes
10
6
 
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
45
-
46
- ### Patch Changes
7
+ - @modern-js/bff-runtime@1.22.2
8
+ - @modern-js/utils@1.22.2
47
9
 
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
10
+ ## 1.22.1
80
11
 
81
12
  ### Patch Changes
82
13
 
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
86
-
87
- feat: 将 esbuild 从 0.14.38 版本升级至 0.15.7 版本
14
+ - @modern-js/bff-runtime@1.22.1
15
+ - @modern-js/utils@1.22.1
88
16
 
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
17
+ ## 1.21.6
103
18
 
104
- ## 2.0.0-beta.1
19
+ ### Patch Changes
105
20
 
106
- ### Major Changes
21
+ - @modern-js/bff-runtime@1.21.6
22
+ - @modern-js/utils@1.21.6
107
23
 
108
- - dda38c9: chore: v2
24
+ ## 1.21.5
109
25
 
110
26
  ### Patch Changes
111
27
 
112
- - 2344eb2: fix: esbuild should not handle js files
28
+ - 4876aa7: fix: esbuild should not handle js files
113
29
  fix: esbuild 不应该处理非 js 文件
114
- - a2509bfbdb: feat: bump esbuild from 0.14.38 to 0.15.7
30
+ - @modern-js/bff-runtime@1.21.5
31
+ - @modern-js/utils@1.21.5
115
32
 
116
- feat: 将 esbuild 从 0.14.38 版本升级至 0.15.7 版本
33
+ ## 1.21.4
117
34
 
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
35
+ ### Patch Changes
134
36
 
135
- ### Major Changes
37
+ - @modern-js/bff-runtime@1.21.4
38
+ - @modern-js/utils@1.21.4
136
39
 
137
- - dda38c9: chore: v2
40
+ ## 1.21.3
138
41
 
139
42
  ### Patch Changes
140
43
 
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
44
+ - @modern-js/bff-runtime@1.21.3
45
+ - @modern-js/utils@1.21.3
157
46
 
158
47
  ## 1.21.2
159
48
 
@@ -1,69 +1,54 @@
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";
1
+ import 'reflect-metadata';
2
+ import compose from 'koa-compose';
23
3
  import { validateFunction, HANDLER_WITH_META } from "./utils";
24
- function Api(...args) {
4
+ export function Api(...args) {
25
5
  const handler = args.pop();
26
- validateFunction(handler, "Apihandler");
6
+ validateFunction(handler, 'Apihandler');
27
7
  const operators = args;
28
8
  const metadataHelper = {
29
9
  getMetadata(key) {
30
10
  return Reflect.getMetadata(key, runner);
31
11
  },
12
+
32
13
  setMetadata(key, value) {
33
14
  return Reflect.defineMetadata(key, value, runner);
34
15
  }
16
+
35
17
  };
18
+
36
19
  for (const operator of operators) {
37
20
  if (operator.metadata) {
38
21
  operator.metadata(metadataHelper);
39
22
  }
40
23
  }
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;
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();
62
47
  });
48
+ await compose(stack)(executeHelper);
49
+ return executeHelper.result;
63
50
  }
51
+
64
52
  runner[HANDLER_WITH_META] = true;
65
53
  return runner;
66
- }
67
- export {
68
- Api
69
- };
54
+ }
@@ -1,28 +1,8 @@
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";
1
+ import * as path from 'path';
22
2
  import { ApiRouter } from "../router";
23
3
  import { Ok, Err } from "./result";
24
- const DEFAULT_CLIENT_REQUEST_CREATOR = "@modern-js/create-request";
25
- const generateClient = (_0) => __async(void 0, [_0], function* ({
4
+ export const DEFAULT_CLIENT_REQUEST_CREATOR = '@modern-js/create-request';
5
+ export const generateClient = async ({
26
6
  resourcePath,
27
7
  apiDir,
28
8
  prefix,
@@ -30,52 +10,54 @@ const generateClient = (_0) => __async(void 0, [_0], function* ({
30
10
  target,
31
11
  requestCreator,
32
12
  fetcher,
33
- requireResolve = require.resolve
34
- }) {
13
+ requireResolve: _requireResolve = require.resolve
14
+ }) => {
35
15
  if (!requestCreator) {
36
- requestCreator = requireResolve(
37
- `${DEFAULT_CLIENT_REQUEST_CREATOR}${target ? `/${target}` : ""}`
38
- ).replace(/\\/g, "/");
16
+ // eslint-disable-next-line no-param-reassign
17
+ requestCreator = _requireResolve(`${DEFAULT_CLIENT_REQUEST_CREATOR}${target ? `/${target}` : ''}`).replace(/\\/g, '/');
39
18
  } else {
19
+ // 这里约束传入的 requestCreator 包也必须有两个导出 client 和 server,因为目前的机制 client 和 server 要导出不同的 configure 函数;该 api 不对使用者暴露,后续可优化
40
20
  let resolvedPath = requestCreator;
21
+
41
22
  try {
42
- resolvedPath = path.dirname(requireResolve(requestCreator));
43
- } catch (error) {
44
- }
45
- requestCreator = `${resolvedPath}${target ? `/${target}` : ""}`.replace(
46
- /\\/g,
47
- "/"
48
- );
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, '/');
49
28
  }
29
+
50
30
  const apiRouter = new ApiRouter({
51
31
  apiDir,
52
32
  prefix
53
33
  });
54
34
  const handlerInfos = apiRouter.getSingleModuleHandlers(resourcePath);
35
+
55
36
  if (!handlerInfos) {
56
37
  return Err(`generate client error: Cannot require module ${resourcePath}`);
57
38
  }
58
- let handlersCode = "";
39
+
40
+ let handlersCode = '';
41
+
59
42
  for (const handlerInfo of handlerInfos) {
60
- const { name, httpMethod, routePath } = handlerInfo;
61
- let exportStatement = `var ${name} =`;
62
- if (name.toLowerCase() === "default") {
63
- exportStatement = "default";
43
+ const {
44
+ name,
45
+ httpMethod,
46
+ routePath
47
+ } = handlerInfo;
48
+ let exportStatement = `const ${name} =`;
49
+
50
+ if (name.toLowerCase() === 'default') {
51
+ exportStatement = 'default';
64
52
  }
53
+
65
54
  const upperHttpMethod = httpMethod.toUpperCase();
66
55
  const routeName = routePath;
67
- handlersCode += `export ${exportStatement} createRequest('${routeName}', '${upperHttpMethod}', process.env.PORT || ${String(
68
- port
69
- )}${fetcher ? `, fetch` : ""});
56
+ handlersCode += `export ${exportStatement} createRequest('${routeName}', '${upperHttpMethod}', process.env.PORT || ${String(port)}${fetcher ? `, fetch` : ''});
70
57
  `;
71
58
  }
59
+
72
60
  const importCode = `import { createRequest } from '${requestCreator}';
73
- ${fetcher ? `import { fetch } from '${fetcher}';
74
- ` : ""}`;
75
- return Ok(`${importCode}
76
- ${handlersCode}`);
77
- });
78
- export {
79
- DEFAULT_CLIENT_REQUEST_CREATOR,
80
- generateClient
81
- };
61
+ ${fetcher ? `import { fetch } from '${fetcher}';\n` : ''}`;
62
+ return Ok(`${importCode}\n${handlersCode}`);
63
+ };
@@ -1 +1 @@
1
- export * from "./generate-client";
1
+ export * from "./generate-client";
@@ -1,22 +1,20 @@
1
- const Err = (value) => {
1
+ // eslint-disable-next-line @typescript-eslint/no-redeclare
2
+ export const Err = value => {
2
3
  const err = {
3
- kind: "Err",
4
+ kind: 'Err',
4
5
  value,
5
6
  isErr: true,
6
7
  isOk: false
7
8
  };
8
9
  return err;
9
- };
10
- const Ok = (value) => {
10
+ }; // eslint-disable-next-line @typescript-eslint/no-redeclare
11
+
12
+ export const Ok = value => {
11
13
  const ok = {
12
- kind: "Ok",
14
+ kind: 'Ok',
13
15
  value,
14
16
  isErr: false,
15
17
  isOk: true
16
18
  };
17
19
  return ok;
18
- };
19
- export {
20
- Err,
21
- Ok
22
- };
20
+ };
@@ -1,16 +1,22 @@
1
- class HttpError extends Error {
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 {
2
4
  constructor(status, message) {
3
5
  super(message);
6
+
7
+ _defineProperty(this, "status", void 0);
8
+
4
9
  this.status = status;
5
10
  }
11
+
6
12
  }
7
- class ValidationError extends HttpError {
13
+ export class ValidationError extends HttpError {
8
14
  constructor(status, message) {
9
15
  super(status, message);
10
- this.code = "VALIDATION_ERROR";
16
+
17
+ _defineProperty(this, "code", void 0);
18
+
19
+ this.code = 'VALIDATION_ERROR';
11
20
  }
12
- }
13
- export {
14
- HttpError,
15
- ValidationError
16
- };
21
+
22
+ }
@@ -1,23 +1,7 @@
1
- import { Api } from "./api";
2
- import { HttpError, ValidationError } from "./errors/http";
1
+ export { Api } from "./api";
2
+ export { 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
- 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
- };
7
+ export { getRelativeRuntimePath, HANDLER_WITH_META, isWithMetaHandler, createStorage, registerPaths } from "./utils";