@modern-js/bff-core 2.5.0 → 2.5.1-alpha.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 (51) hide show
  1. package/dist/cjs/client/generate-client.js +5 -3
  2. package/dist/cjs/index.js +4 -0
  3. package/dist/cjs/operators/http.js +7 -1
  4. package/dist/cjs/router/index.js +51 -27
  5. package/dist/cjs/utils/meta.js +8 -0
  6. package/dist/esm/client/generate-client.js +5 -3
  7. package/dist/esm/index.js +4 -0
  8. package/dist/esm/operators/http.js +1 -1
  9. package/dist/esm/router/index.js +52 -28
  10. package/dist/esm/utils/meta.js +6 -0
  11. package/dist/js/modern/api.js +69 -0
  12. package/dist/js/modern/client/generate-client.js +79 -0
  13. package/dist/js/modern/client/index.js +1 -0
  14. package/dist/js/modern/client/result.js +22 -0
  15. package/dist/js/modern/errors/http.js +16 -0
  16. package/dist/js/modern/index.js +23 -0
  17. package/dist/js/modern/operators/http.js +210 -0
  18. package/dist/js/modern/router/constants.js +32 -0
  19. package/dist/js/modern/router/index.js +236 -0
  20. package/dist/js/modern/router/types.js +0 -0
  21. package/dist/js/modern/router/utils.js +83 -0
  22. package/dist/js/modern/types.js +45 -0
  23. package/dist/js/modern/utils/alias.js +76 -0
  24. package/dist/js/modern/utils/debug.js +5 -0
  25. package/dist/js/modern/utils/index.js +8 -0
  26. package/dist/js/modern/utils/meta.js +8 -0
  27. package/dist/js/modern/utils/storage.js +42 -0
  28. package/dist/js/modern/utils/validate.js +43 -0
  29. package/dist/js/node/api.js +98 -0
  30. package/dist/js/node/client/generate-client.js +109 -0
  31. package/dist/js/node/client/index.js +17 -0
  32. package/dist/js/node/client/result.js +46 -0
  33. package/dist/js/node/errors/http.js +40 -0
  34. package/dist/js/node/index.js +48 -0
  35. package/dist/js/node/operators/http.js +241 -0
  36. package/dist/js/node/router/constants.js +61 -0
  37. package/dist/js/node/router/index.js +256 -0
  38. package/dist/js/node/router/types.js +15 -0
  39. package/dist/js/node/router/utils.js +116 -0
  40. package/dist/js/node/types.js +73 -0
  41. package/dist/js/node/utils/alias.js +107 -0
  42. package/dist/js/node/utils/debug.js +28 -0
  43. package/dist/js/node/utils/index.js +32 -0
  44. package/dist/js/node/utils/meta.js +32 -0
  45. package/dist/js/node/utils/storage.js +71 -0
  46. package/dist/js/node/utils/validate.js +74 -0
  47. package/dist/types/client/generate-client.d.ts +4 -1
  48. package/dist/types/index.d.ts +1 -1
  49. package/dist/types/router/index.d.ts +5 -1
  50. package/dist/types/utils/meta.d.ts +3 -1
  51. package/package.json +8 -7
@@ -0,0 +1,32 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var meta_exports = {};
19
+ __export(meta_exports, {
20
+ HANDLER_WITH_META: () => HANDLER_WITH_META,
21
+ isWithMetaHandler: () => isWithMetaHandler
22
+ });
23
+ module.exports = __toCommonJS(meta_exports);
24
+ const HANDLER_WITH_META = "HANDLER_WITH_META";
25
+ const isWithMetaHandler = (handler) => {
26
+ return typeof handler === "function" && handler[HANDLER_WITH_META];
27
+ };
28
+ // Annotate the CommonJS export names for ESM import in node:
29
+ 0 && (module.exports = {
30
+ HANDLER_WITH_META,
31
+ isWithMetaHandler
32
+ });
@@ -0,0 +1,71 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
21
+ mod
22
+ ));
23
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
+ var storage_exports = {};
25
+ __export(storage_exports, {
26
+ createStorage: () => createStorage
27
+ });
28
+ module.exports = __toCommonJS(storage_exports);
29
+ var ah = __toESM(require("async_hooks"));
30
+ const createStorage = () => {
31
+ let storage;
32
+ if (typeof ah.AsyncLocalStorage !== "undefined") {
33
+ storage = new ah.AsyncLocalStorage();
34
+ }
35
+ const run = (context, cb) => {
36
+ if (!storage) {
37
+ throw new Error(`Unable to use async_hook, please confirm the node version >= 12.17
38
+ `);
39
+ }
40
+ return new Promise((resolve, reject) => {
41
+ storage.run(context, () => {
42
+ try {
43
+ return resolve(cb());
44
+ } catch (error) {
45
+ return reject(error);
46
+ }
47
+ });
48
+ });
49
+ };
50
+ const useContext = () => {
51
+ if (!storage) {
52
+ throw new Error(`Unable to use async_hook, please confirm the node version >= 12.17
53
+ `);
54
+ }
55
+ const context = storage.getStore();
56
+ if (!context) {
57
+ throw new Error(
58
+ `Can't call useContext out of scope, it should be placed in the bff function`
59
+ );
60
+ }
61
+ return context;
62
+ };
63
+ return {
64
+ run,
65
+ useContext
66
+ };
67
+ };
68
+ // Annotate the CommonJS export names for ESM import in node:
69
+ 0 && (module.exports = {
70
+ createStorage
71
+ });
@@ -0,0 +1,74 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
21
+ mod
22
+ ));
23
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
+ var validate_exports = {};
25
+ __export(validate_exports, {
26
+ ERR_INVALID_ARG_TYPE: () => ERR_INVALID_ARG_TYPE,
27
+ getTypeErrorMessage: () => getTypeErrorMessage,
28
+ validateFunction: () => validateFunction
29
+ });
30
+ module.exports = __toCommonJS(validate_exports);
31
+ var import_util = __toESM(require("util"));
32
+ const getTypeErrorMessage = (actual) => {
33
+ var _a;
34
+ let msg = "";
35
+ if (actual == null) {
36
+ msg += `. Received ${actual}`;
37
+ } else if (typeof actual === "function" && actual.name) {
38
+ msg += `. Received function ${actual.name}`;
39
+ } else if (typeof actual === "object") {
40
+ if ((_a = actual.constructor) == null ? void 0 : _a.name) {
41
+ msg += `. Received an instance of ${actual.constructor.name}`;
42
+ } else {
43
+ const inspected = import_util.default.inspect(actual, { depth: -1 });
44
+ msg += `. Received ${inspected}`;
45
+ }
46
+ } else {
47
+ let inspected = import_util.default.inspect(actual, { colors: false });
48
+ if (inspected.length > 25) {
49
+ inspected = `${inspected.slice(0, 25)}...`;
50
+ }
51
+ msg += `. Received type ${typeof actual} (${inspected})`;
52
+ }
53
+ return msg;
54
+ };
55
+ class ERR_INVALID_ARG_TYPE extends Error {
56
+ constructor(funcName, expectedType, actual) {
57
+ const message = `[ERR_INVALID_ARG_TYPE]: The '${funcName}' argument must be of type ${expectedType}${getTypeErrorMessage(
58
+ actual
59
+ )}`;
60
+ super(message);
61
+ }
62
+ }
63
+ const validateFunction = (maybeFunc, name) => {
64
+ if (typeof maybeFunc !== "function") {
65
+ throw new ERR_INVALID_ARG_TYPE(name, "function", maybeFunc);
66
+ }
67
+ return true;
68
+ };
69
+ // Annotate the CommonJS export names for ESM import in node:
70
+ 0 && (module.exports = {
71
+ ERR_INVALID_ARG_TYPE,
72
+ getTypeErrorMessage,
73
+ validateFunction
74
+ });
@@ -1,3 +1,4 @@
1
+ import type { HttpMethodDecider } from '@modern-js/types';
1
2
  import { Result } from './result';
2
3
  export type GenClientResult = Result<string>;
3
4
  export type GenClientOptions = {
@@ -10,6 +11,7 @@ export type GenClientOptions = {
10
11
  fetcher?: string;
11
12
  target?: string;
12
13
  requireResolve?: typeof require.resolve;
14
+ httpMethodDecider: HttpMethodDecider;
13
15
  };
14
16
  export declare const DEFAULT_CLIENT_REQUEST_CREATOR = "@modern-js/create-request";
15
17
  export declare const generateClient: ({
@@ -20,5 +22,6 @@ export declare const generateClient: ({
20
22
  target,
21
23
  requestCreator,
22
24
  fetcher,
23
- requireResolve
25
+ requireResolve,
26
+ httpMethodDecider
24
27
  }: GenClientOptions) => Promise<GenClientResult>;
@@ -4,4 +4,4 @@ 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
+ export { getRelativeRuntimePath, HANDLER_WITH_META, isWithMetaHandler, INPUT_PARAMS_DECIDER, isInputParamsDeciderHandler, createStorage, registerPaths } from './utils';
@@ -1,4 +1,5 @@
1
1
  import 'reflect-metadata';
2
+ import type { HttpMethodDecider } from '@modern-js/types';
2
3
  import { HttpMethod } from '../types';
3
4
  import { APIMode } from './constants';
4
5
  import { ApiHandler, APIHandlerInfo } from './types';
@@ -8,17 +9,20 @@ export declare class ApiRouter {
8
9
  private apiMode;
9
10
  private apiDir;
10
11
  private existLambdaDir;
12
+ private httpMethodDecider;
11
13
  private lambdaDir;
12
14
  private prefix;
13
15
  private apiFiles;
14
16
  constructor({
15
17
  apiDir,
16
18
  lambdaDir,
17
- prefix
19
+ prefix,
20
+ httpMethodDecider
18
21
  }: {
19
22
  apiDir: string;
20
23
  lambdaDir?: string;
21
24
  prefix?: string;
25
+ httpMethodDecider?: HttpMethodDecider;
22
26
  });
23
27
  isExistLambda(): boolean;
24
28
  getApiMode(): APIMode;
@@ -1,2 +1,4 @@
1
1
  export declare const HANDLER_WITH_META = "HANDLER_WITH_META";
2
- export declare const isWithMetaHandler: (handler: any) => any;
2
+ export declare const INPUT_PARAMS_DECIDER = "INPUT_PARAMS_DECIDER";
3
+ export declare const isWithMetaHandler: (handler: any) => any;
4
+ export declare const isInputParamsDeciderHandler: (handler: any) => any;
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "modern",
12
12
  "modern.js"
13
13
  ],
14
- "version": "2.5.0",
14
+ "version": "2.5.1-alpha.0",
15
15
  "jsnext:source": "./src/index.ts",
16
16
  "types": "./dist/types/index.d.ts",
17
17
  "main": "./dist/cjs/index.js",
@@ -25,23 +25,24 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "@babel/runtime": "^7.18.0",
28
+ "@modern-js/bff-runtime": "2.5.0",
29
+ "@modern-js/utils": "2.5.0",
28
30
  "esbuild": "0.15.7",
29
31
  "esbuild-register": "^3.3.3",
30
32
  "koa-compose": "^4.1.0",
31
- "reflect-metadata": "^0.1.13",
32
- "@modern-js/bff-runtime": "2.5.0",
33
- "@modern-js/utils": "2.5.0"
33
+ "reflect-metadata": "^0.1.13"
34
34
  },
35
35
  "devDependencies": {
36
+ "@modern-js/types": "^2.5.0",
37
+ "@scripts/build": "2.5.0",
38
+ "@scripts/jest-config": "2.5.0",
36
39
  "@types/jest": "^27",
37
40
  "@types/koa-compose": "^3.2.5",
38
41
  "@types/node": "^14",
39
42
  "jest": "^27",
40
43
  "type-fest": "2.15.0",
41
44
  "typescript": "^4",
42
- "zod": "^3.17.3",
43
- "@scripts/build": "2.5.0",
44
- "@scripts/jest-config": "2.5.0"
45
+ "zod": "^3.17.3"
45
46
  },
46
47
  "peerDependencies": {
47
48
  "zod": "^3.17.3"