@modern-js/bff-core 2.4.1-beta.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.
- package/CHANGELOG.md +12 -2
- package/dist/cjs/api.js +76 -0
- package/dist/cjs/client/generate-client.js +91 -0
- package/dist/cjs/client/index.js +17 -0
- package/dist/cjs/client/result.js +46 -0
- package/dist/cjs/errors/http.js +40 -0
- package/dist/cjs/index.js +52 -0
- package/dist/cjs/operators/http.js +206 -0
- package/dist/cjs/router/constants.js +61 -0
- package/dist/cjs/router/index.js +280 -0
- package/dist/cjs/router/types.js +15 -0
- package/dist/cjs/router/utils.js +116 -0
- package/dist/cjs/types.js +73 -0
- package/dist/cjs/utils/alias.js +107 -0
- package/dist/cjs/utils/debug.js +28 -0
- package/dist/cjs/utils/index.js +32 -0
- package/dist/cjs/utils/meta.js +40 -0
- package/dist/cjs/utils/storage.js +71 -0
- package/dist/cjs/utils/validate.js +74 -0
- package/dist/esm/api.js +47 -0
- package/dist/esm/client/generate-client.js +61 -0
- package/dist/esm/client/index.js +1 -0
- package/dist/esm/client/result.js +22 -0
- package/dist/esm/errors/http.js +16 -0
- package/dist/esm/index.js +27 -0
- package/dist/esm/operators/http.js +167 -0
- package/dist/esm/router/constants.js +32 -0
- package/dist/esm/router/index.js +260 -0
- package/dist/esm/router/types.js +0 -0
- package/dist/esm/router/utils.js +83 -0
- package/dist/esm/types.js +45 -0
- package/dist/esm/utils/alias.js +76 -0
- package/dist/esm/utils/debug.js +5 -0
- package/dist/esm/utils/index.js +8 -0
- package/dist/esm/utils/meta.js +14 -0
- package/dist/esm/utils/storage.js +42 -0
- package/dist/esm/utils/validate.js +43 -0
- package/dist/types/client/generate-client.d.ts +4 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/router/index.d.ts +5 -1
- package/dist/types/utils/meta.d.ts +3 -1
- package/package.json +11 -11
package/CHANGELOG.md
CHANGED
|
@@ -1,11 +1,21 @@
|
|
|
1
1
|
# @modern-js/bff-core
|
|
2
2
|
|
|
3
|
-
## 2.
|
|
3
|
+
## 2.5.0
|
|
4
4
|
|
|
5
5
|
### Patch Changes
|
|
6
6
|
|
|
7
|
+
- 89ca6cc: refactor: merge build-config into scripts/build
|
|
8
|
+
|
|
9
|
+
refactor: 把 build-config 合并进 scripts/build
|
|
10
|
+
|
|
11
|
+
- 30614fa: chore: modify package.json entry fields and build config
|
|
12
|
+
chore: 更改 package.json entry 字段以及构建配置
|
|
13
|
+
- Updated dependencies [89ca6cc]
|
|
14
|
+
- Updated dependencies [30614fa]
|
|
15
|
+
- Updated dependencies [1b0ce87]
|
|
7
16
|
- Updated dependencies [11c053b]
|
|
8
|
-
- @modern-js/
|
|
17
|
+
- @modern-js/bff-runtime@2.5.0
|
|
18
|
+
- @modern-js/utils@2.5.0
|
|
9
19
|
|
|
10
20
|
## 2.4.0
|
|
11
21
|
|
package/dist/cjs/api.js
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
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 api_exports = {};
|
|
25
|
+
__export(api_exports, {
|
|
26
|
+
Api: () => Api
|
|
27
|
+
});
|
|
28
|
+
module.exports = __toCommonJS(api_exports);
|
|
29
|
+
var import_reflect_metadata = require("reflect-metadata");
|
|
30
|
+
var import_koa_compose = __toESM(require("koa-compose"));
|
|
31
|
+
var import_utils = require("./utils");
|
|
32
|
+
function Api(...args) {
|
|
33
|
+
const handler = args.pop();
|
|
34
|
+
(0, import_utils.validateFunction)(handler, "Apihandler");
|
|
35
|
+
const operators = args;
|
|
36
|
+
const metadataHelper = {
|
|
37
|
+
getMetadata(key) {
|
|
38
|
+
return Reflect.getMetadata(key, runner);
|
|
39
|
+
},
|
|
40
|
+
setMetadata(key, value) {
|
|
41
|
+
return Reflect.defineMetadata(key, value, runner);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
for (const operator of operators) {
|
|
45
|
+
if (operator.metadata) {
|
|
46
|
+
operator.metadata(metadataHelper);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
const validateHandlers = operators.filter((operator) => operator.validate).map((operator) => operator.validate);
|
|
50
|
+
const pipeHandlers = operators.filter((operator) => operator.execute).map((operator) => operator.execute);
|
|
51
|
+
async function runner(inputs) {
|
|
52
|
+
const executeHelper = {
|
|
53
|
+
result: null,
|
|
54
|
+
get inputs() {
|
|
55
|
+
return inputs;
|
|
56
|
+
},
|
|
57
|
+
set inputs(val) {
|
|
58
|
+
inputs = val;
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
const stack = [...validateHandlers, ...pipeHandlers];
|
|
62
|
+
stack.push(async (helper, next) => {
|
|
63
|
+
const res = await handler(helper.inputs);
|
|
64
|
+
helper.result = res;
|
|
65
|
+
return next();
|
|
66
|
+
});
|
|
67
|
+
await (0, import_koa_compose.default)(stack)(executeHelper);
|
|
68
|
+
return executeHelper.result;
|
|
69
|
+
}
|
|
70
|
+
runner[import_utils.HANDLER_WITH_META] = true;
|
|
71
|
+
return runner;
|
|
72
|
+
}
|
|
73
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
74
|
+
0 && (module.exports = {
|
|
75
|
+
Api
|
|
76
|
+
});
|
|
@@ -0,0 +1,91 @@
|
|
|
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 generate_client_exports = {};
|
|
25
|
+
__export(generate_client_exports, {
|
|
26
|
+
DEFAULT_CLIENT_REQUEST_CREATOR: () => DEFAULT_CLIENT_REQUEST_CREATOR,
|
|
27
|
+
generateClient: () => generateClient
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(generate_client_exports);
|
|
30
|
+
var path = __toESM(require("path"));
|
|
31
|
+
var import_router = require("../router");
|
|
32
|
+
var import_result = require("./result");
|
|
33
|
+
const DEFAULT_CLIENT_REQUEST_CREATOR = "@modern-js/create-request";
|
|
34
|
+
const generateClient = async ({
|
|
35
|
+
resourcePath,
|
|
36
|
+
apiDir,
|
|
37
|
+
prefix,
|
|
38
|
+
port,
|
|
39
|
+
target,
|
|
40
|
+
requestCreator,
|
|
41
|
+
fetcher,
|
|
42
|
+
requireResolve = require.resolve,
|
|
43
|
+
httpMethodDecider
|
|
44
|
+
}) => {
|
|
45
|
+
if (!requestCreator) {
|
|
46
|
+
requestCreator = requireResolve(
|
|
47
|
+
`${DEFAULT_CLIENT_REQUEST_CREATOR}${target ? `/${target}` : ""}`
|
|
48
|
+
).replace(/\\/g, "/");
|
|
49
|
+
} else {
|
|
50
|
+
let resolvedPath = requestCreator;
|
|
51
|
+
try {
|
|
52
|
+
resolvedPath = path.dirname(requireResolve(requestCreator));
|
|
53
|
+
} catch (error) {
|
|
54
|
+
}
|
|
55
|
+
requestCreator = `${resolvedPath}${target ? `/${target}` : ""}`.replace(
|
|
56
|
+
/\\/g,
|
|
57
|
+
"/"
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
const apiRouter = new import_router.ApiRouter({
|
|
61
|
+
apiDir,
|
|
62
|
+
prefix,
|
|
63
|
+
httpMethodDecider
|
|
64
|
+
});
|
|
65
|
+
const handlerInfos = apiRouter.getSingleModuleHandlers(resourcePath);
|
|
66
|
+
if (!handlerInfos) {
|
|
67
|
+
return (0, import_result.Err)(`generate client error: Cannot require module ${resourcePath}`);
|
|
68
|
+
}
|
|
69
|
+
let handlersCode = "";
|
|
70
|
+
for (const handlerInfo of handlerInfos) {
|
|
71
|
+
const { name, httpMethod, routePath } = handlerInfo;
|
|
72
|
+
let exportStatement = `const ${name} =`;
|
|
73
|
+
if (name.toLowerCase() === "default") {
|
|
74
|
+
exportStatement = "default";
|
|
75
|
+
}
|
|
76
|
+
const upperHttpMethod = httpMethod.toUpperCase();
|
|
77
|
+
const routeName = routePath;
|
|
78
|
+
handlersCode += `export ${exportStatement} createRequest('${routeName}', '${upperHttpMethod}', '${httpMethodDecider}', ${process.env.PORT || String(port)}${fetcher ? `, fetch` : ""});
|
|
79
|
+
`;
|
|
80
|
+
}
|
|
81
|
+
const importCode = `import { createRequest } from '${requestCreator}';
|
|
82
|
+
${fetcher ? `import { fetch } from '${fetcher}';
|
|
83
|
+
` : ""}`;
|
|
84
|
+
return (0, import_result.Ok)(`${importCode}
|
|
85
|
+
${handlersCode}`);
|
|
86
|
+
};
|
|
87
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
88
|
+
0 && (module.exports = {
|
|
89
|
+
DEFAULT_CLIENT_REQUEST_CREATOR,
|
|
90
|
+
generateClient
|
|
91
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __copyProps = (to, from, except, desc) => {
|
|
6
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
7
|
+
for (let key of __getOwnPropNames(from))
|
|
8
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
9
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
10
|
+
}
|
|
11
|
+
return to;
|
|
12
|
+
};
|
|
13
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
var client_exports = {};
|
|
16
|
+
module.exports = __toCommonJS(client_exports);
|
|
17
|
+
__reExport(client_exports, require("./generate-client"), module.exports);
|
|
@@ -0,0 +1,46 @@
|
|
|
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 result_exports = {};
|
|
19
|
+
__export(result_exports, {
|
|
20
|
+
Err: () => Err,
|
|
21
|
+
Ok: () => Ok
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(result_exports);
|
|
24
|
+
const Err = (value) => {
|
|
25
|
+
const err = {
|
|
26
|
+
kind: "Err",
|
|
27
|
+
value,
|
|
28
|
+
isErr: true,
|
|
29
|
+
isOk: false
|
|
30
|
+
};
|
|
31
|
+
return err;
|
|
32
|
+
};
|
|
33
|
+
const Ok = (value) => {
|
|
34
|
+
const ok = {
|
|
35
|
+
kind: "Ok",
|
|
36
|
+
value,
|
|
37
|
+
isErr: false,
|
|
38
|
+
isOk: true
|
|
39
|
+
};
|
|
40
|
+
return ok;
|
|
41
|
+
};
|
|
42
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
43
|
+
0 && (module.exports = {
|
|
44
|
+
Err,
|
|
45
|
+
Ok
|
|
46
|
+
});
|
|
@@ -0,0 +1,40 @@
|
|
|
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 http_exports = {};
|
|
19
|
+
__export(http_exports, {
|
|
20
|
+
HttpError: () => HttpError,
|
|
21
|
+
ValidationError: () => ValidationError
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(http_exports);
|
|
24
|
+
class HttpError extends Error {
|
|
25
|
+
constructor(status, message) {
|
|
26
|
+
super(message);
|
|
27
|
+
this.status = status;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
class ValidationError extends HttpError {
|
|
31
|
+
constructor(status, message) {
|
|
32
|
+
super(status, message);
|
|
33
|
+
this.code = "VALIDATION_ERROR";
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
37
|
+
0 && (module.exports = {
|
|
38
|
+
HttpError,
|
|
39
|
+
ValidationError
|
|
40
|
+
});
|
|
@@ -0,0 +1,52 @@
|
|
|
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 __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var src_exports = {};
|
|
20
|
+
__export(src_exports, {
|
|
21
|
+
Api: () => import_api.Api,
|
|
22
|
+
HANDLER_WITH_META: () => import_utils.HANDLER_WITH_META,
|
|
23
|
+
HttpError: () => import_http.HttpError,
|
|
24
|
+
INPUT_PARAMS_DECIDER: () => import_utils.INPUT_PARAMS_DECIDER,
|
|
25
|
+
ValidationError: () => import_http.ValidationError,
|
|
26
|
+
createStorage: () => import_utils.createStorage,
|
|
27
|
+
getRelativeRuntimePath: () => import_utils.getRelativeRuntimePath,
|
|
28
|
+
isInputParamsDeciderHandler: () => import_utils.isInputParamsDeciderHandler,
|
|
29
|
+
isWithMetaHandler: () => import_utils.isWithMetaHandler,
|
|
30
|
+
registerPaths: () => import_utils.registerPaths
|
|
31
|
+
});
|
|
32
|
+
module.exports = __toCommonJS(src_exports);
|
|
33
|
+
var import_api = require("./api");
|
|
34
|
+
var import_http = require("./errors/http");
|
|
35
|
+
__reExport(src_exports, require("./router"), module.exports);
|
|
36
|
+
__reExport(src_exports, require("./types"), module.exports);
|
|
37
|
+
__reExport(src_exports, require("./client"), module.exports);
|
|
38
|
+
__reExport(src_exports, require("./operators/http"), module.exports);
|
|
39
|
+
var import_utils = require("./utils");
|
|
40
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
41
|
+
0 && (module.exports = {
|
|
42
|
+
Api,
|
|
43
|
+
HANDLER_WITH_META,
|
|
44
|
+
HttpError,
|
|
45
|
+
INPUT_PARAMS_DECIDER,
|
|
46
|
+
ValidationError,
|
|
47
|
+
createStorage,
|
|
48
|
+
getRelativeRuntimePath,
|
|
49
|
+
isInputParamsDeciderHandler,
|
|
50
|
+
isWithMetaHandler,
|
|
51
|
+
registerPaths
|
|
52
|
+
});
|
|
@@ -0,0 +1,206 @@
|
|
|
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 http_exports = {};
|
|
25
|
+
__export(http_exports, {
|
|
26
|
+
Connect: () => Connect,
|
|
27
|
+
Data: () => Data,
|
|
28
|
+
Delete: () => Delete,
|
|
29
|
+
Get: () => Get,
|
|
30
|
+
Head: () => Head,
|
|
31
|
+
Headers: () => Headers,
|
|
32
|
+
HttpCode: () => HttpCode,
|
|
33
|
+
Option: () => Option,
|
|
34
|
+
Params: () => Params,
|
|
35
|
+
Patch: () => Patch,
|
|
36
|
+
Post: () => Post,
|
|
37
|
+
Put: () => Put,
|
|
38
|
+
Query: () => Query,
|
|
39
|
+
Redirect: () => Redirect,
|
|
40
|
+
SetHeaders: () => SetHeaders,
|
|
41
|
+
Trace: () => Trace,
|
|
42
|
+
createHttpOperator: () => createHttpOperator
|
|
43
|
+
});
|
|
44
|
+
module.exports = __toCommonJS(http_exports);
|
|
45
|
+
var import_types = require("../types");
|
|
46
|
+
var import_http = require("../errors/http");
|
|
47
|
+
const validateInput = async (schema, input) => {
|
|
48
|
+
try {
|
|
49
|
+
return await schema.parseAsync(input);
|
|
50
|
+
} catch (error) {
|
|
51
|
+
const { z: zod } = await Promise.resolve().then(() => __toESM(require("zod")));
|
|
52
|
+
if (error instanceof zod.ZodError) {
|
|
53
|
+
throw new import_http.ValidationError(400, error.message);
|
|
54
|
+
}
|
|
55
|
+
throw error;
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
const createHttpOperator = (method) => {
|
|
59
|
+
return (urlPath) => {
|
|
60
|
+
return {
|
|
61
|
+
name: method,
|
|
62
|
+
metadata({ setMetadata }) {
|
|
63
|
+
setMetadata(import_types.OperatorType.Trigger, {
|
|
64
|
+
type: import_types.TriggerType.Http,
|
|
65
|
+
path: urlPath,
|
|
66
|
+
method
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
const Get = createHttpOperator(import_types.HttpMethod.Get);
|
|
73
|
+
const Post = createHttpOperator(import_types.HttpMethod.Post);
|
|
74
|
+
const Put = createHttpOperator(import_types.HttpMethod.Put);
|
|
75
|
+
const Delete = createHttpOperator(import_types.HttpMethod.Delete);
|
|
76
|
+
const Connect = createHttpOperator(import_types.HttpMethod.Connect);
|
|
77
|
+
const Trace = createHttpOperator(import_types.HttpMethod.Trace);
|
|
78
|
+
const Patch = createHttpOperator(import_types.HttpMethod.Patch);
|
|
79
|
+
const Option = createHttpOperator(import_types.HttpMethod.Option);
|
|
80
|
+
const Head = createHttpOperator(import_types.HttpMethod.Head);
|
|
81
|
+
const Data = (schema) => {
|
|
82
|
+
return {
|
|
83
|
+
name: import_types.HttpMetadata.Data,
|
|
84
|
+
metadata({ setMetadata }) {
|
|
85
|
+
setMetadata(import_types.HttpMetadata.Data, schema);
|
|
86
|
+
},
|
|
87
|
+
async validate(helper, next) {
|
|
88
|
+
const {
|
|
89
|
+
inputs: { data }
|
|
90
|
+
} = helper;
|
|
91
|
+
helper.inputs = {
|
|
92
|
+
...helper.inputs,
|
|
93
|
+
data: await validateInput(schema, data)
|
|
94
|
+
};
|
|
95
|
+
return next();
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
const Query = (schema) => {
|
|
100
|
+
return {
|
|
101
|
+
name: import_types.HttpMetadata.Query,
|
|
102
|
+
metadata({ setMetadata }) {
|
|
103
|
+
setMetadata(import_types.HttpMetadata.Query, schema);
|
|
104
|
+
},
|
|
105
|
+
async validate(helper, next) {
|
|
106
|
+
const {
|
|
107
|
+
inputs: { query }
|
|
108
|
+
} = helper;
|
|
109
|
+
helper.inputs = {
|
|
110
|
+
...helper.inputs,
|
|
111
|
+
query: await validateInput(schema, query)
|
|
112
|
+
};
|
|
113
|
+
return next();
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
};
|
|
117
|
+
const Params = (schema) => {
|
|
118
|
+
return {
|
|
119
|
+
name: import_types.HttpMetadata.Params,
|
|
120
|
+
metadata({ setMetadata }) {
|
|
121
|
+
setMetadata(import_types.HttpMetadata.Params, schema);
|
|
122
|
+
},
|
|
123
|
+
async validate(helper, next) {
|
|
124
|
+
const {
|
|
125
|
+
inputs: { params }
|
|
126
|
+
} = helper;
|
|
127
|
+
helper.inputs = {
|
|
128
|
+
...helper.inputs,
|
|
129
|
+
params: await validateInput(schema, params)
|
|
130
|
+
};
|
|
131
|
+
return next();
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
};
|
|
135
|
+
const Headers = (schema) => {
|
|
136
|
+
return {
|
|
137
|
+
name: import_types.HttpMetadata.Headers,
|
|
138
|
+
metadata({ setMetadata }) {
|
|
139
|
+
setMetadata(import_types.HttpMetadata.Headers, schema);
|
|
140
|
+
},
|
|
141
|
+
async validate(helper, next) {
|
|
142
|
+
const {
|
|
143
|
+
inputs: { headers }
|
|
144
|
+
} = helper;
|
|
145
|
+
helper.inputs = {
|
|
146
|
+
...helper.inputs,
|
|
147
|
+
headers: await validateInput(schema, headers)
|
|
148
|
+
};
|
|
149
|
+
return next();
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
};
|
|
153
|
+
const setResponseMeta = (helper, type, value) => {
|
|
154
|
+
const responseMetaData = helper.getMetadata(import_types.HttpMetadata.Response) || [];
|
|
155
|
+
helper.setMetadata(import_types.HttpMetadata.Response, [
|
|
156
|
+
...responseMetaData,
|
|
157
|
+
{
|
|
158
|
+
type,
|
|
159
|
+
value
|
|
160
|
+
}
|
|
161
|
+
]);
|
|
162
|
+
};
|
|
163
|
+
const HttpCode = (statusCode) => {
|
|
164
|
+
return {
|
|
165
|
+
name: "HttpCode",
|
|
166
|
+
metadata(helper) {
|
|
167
|
+
setResponseMeta(helper, import_types.ResponseMetaType.StatusCode, statusCode);
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
};
|
|
171
|
+
const SetHeaders = (headers) => {
|
|
172
|
+
return {
|
|
173
|
+
name: "SetHeaders",
|
|
174
|
+
metadata(helper) {
|
|
175
|
+
setResponseMeta(helper, import_types.ResponseMetaType.Headers, headers);
|
|
176
|
+
}
|
|
177
|
+
};
|
|
178
|
+
};
|
|
179
|
+
const Redirect = (url) => {
|
|
180
|
+
return {
|
|
181
|
+
name: "Redirect",
|
|
182
|
+
metadata(helper) {
|
|
183
|
+
setResponseMeta(helper, import_types.ResponseMetaType.Redirect, url);
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
};
|
|
187
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
188
|
+
0 && (module.exports = {
|
|
189
|
+
Connect,
|
|
190
|
+
Data,
|
|
191
|
+
Delete,
|
|
192
|
+
Get,
|
|
193
|
+
Head,
|
|
194
|
+
Headers,
|
|
195
|
+
HttpCode,
|
|
196
|
+
Option,
|
|
197
|
+
Params,
|
|
198
|
+
Patch,
|
|
199
|
+
Post,
|
|
200
|
+
Put,
|
|
201
|
+
Query,
|
|
202
|
+
Redirect,
|
|
203
|
+
SetHeaders,
|
|
204
|
+
Trace,
|
|
205
|
+
createHttpOperator
|
|
206
|
+
});
|
|
@@ -0,0 +1,61 @@
|
|
|
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 constants_exports = {};
|
|
19
|
+
__export(constants_exports, {
|
|
20
|
+
APIMode: () => APIMode,
|
|
21
|
+
API_DIR: () => API_DIR,
|
|
22
|
+
API_FILE_RULES: () => API_FILE_RULES,
|
|
23
|
+
AllHttpMethods: () => AllHttpMethods,
|
|
24
|
+
FRAMEWORK_MODE_APP_DIR: () => FRAMEWORK_MODE_APP_DIR,
|
|
25
|
+
FRAMEWORK_MODE_LAMBDA_DIR: () => FRAMEWORK_MODE_LAMBDA_DIR,
|
|
26
|
+
INDEX_SUFFIX: () => INDEX_SUFFIX
|
|
27
|
+
});
|
|
28
|
+
module.exports = __toCommonJS(constants_exports);
|
|
29
|
+
var import_types = require("../types");
|
|
30
|
+
const AllHttpMethods = Object.values(import_types.HttpMethod);
|
|
31
|
+
var APIMode = /* @__PURE__ */ ((APIMode2) => {
|
|
32
|
+
APIMode2["FARMEWORK"] = "framework";
|
|
33
|
+
APIMode2["FUNCTION"] = "function";
|
|
34
|
+
return APIMode2;
|
|
35
|
+
})(APIMode || {});
|
|
36
|
+
const FRAMEWORK_MODE_LAMBDA_DIR = "lambda";
|
|
37
|
+
const FRAMEWORK_MODE_APP_DIR = "app";
|
|
38
|
+
const INDEX_SUFFIX = "index";
|
|
39
|
+
const API_DIR = "api";
|
|
40
|
+
const API_FILE_RULES = [
|
|
41
|
+
"**/*.[tj]s",
|
|
42
|
+
"!**/_*",
|
|
43
|
+
"!**/_*/**/*.[tj]s",
|
|
44
|
+
"!**/*.test.js",
|
|
45
|
+
"!**/*.test.ts",
|
|
46
|
+
"!**/*.d.ts",
|
|
47
|
+
"!__test__/*.ts",
|
|
48
|
+
"!__tests__/*.ts",
|
|
49
|
+
"!node_modules/**",
|
|
50
|
+
"!bootstrap.js"
|
|
51
|
+
];
|
|
52
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
53
|
+
0 && (module.exports = {
|
|
54
|
+
APIMode,
|
|
55
|
+
API_DIR,
|
|
56
|
+
API_FILE_RULES,
|
|
57
|
+
AllHttpMethods,
|
|
58
|
+
FRAMEWORK_MODE_APP_DIR,
|
|
59
|
+
FRAMEWORK_MODE_LAMBDA_DIR,
|
|
60
|
+
INDEX_SUFFIX
|
|
61
|
+
});
|