@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.
- package/CHANGELOG.md +135 -17
- package/dist/js/modern/api.js +49 -34
- package/dist/js/modern/client/generate-client.js +52 -34
- package/dist/js/modern/client/index.js +1 -1
- package/dist/js/modern/client/result.js +10 -8
- package/dist/js/modern/errors/http.js +8 -14
- package/dist/js/modern/index.js +19 -3
- package/dist/js/modern/operators/http.js +139 -116
- package/dist/js/modern/router/constants.js +31 -13
- package/dist/js/modern/router/index.js +68 -131
- package/dist/js/modern/router/types.js +0 -1
- package/dist/js/modern/router/utils.js +36 -54
- package/dist/js/modern/types.js +45 -47
- package/dist/js/modern/utils/alias.js +35 -50
- package/dist/js/modern/utils/debug.js +5 -2
- package/dist/js/modern/utils/index.js +5 -2
- package/dist/js/modern/utils/meta.js +8 -4
- package/dist/js/modern/utils/storage.js +8 -14
- package/dist/js/modern/utils/validate.js +23 -29
- package/dist/js/node/api.js +78 -46
- package/dist/js/node/client/generate-client.js +85 -55
- package/dist/js/node/client/index.js +17 -18
- package/dist/js/node/client/result.js +32 -18
- package/dist/js/node/errors/http.js +28 -22
- package/dist/js/node/index.js +45 -122
- package/dist/js/node/operators/http.js +184 -169
- package/dist/js/node/router/constants.js +60 -28
- package/dist/js/node/router/index.js +112 -201
- package/dist/js/node/router/types.js +15 -5
- package/dist/js/node/router/utils.js +71 -78
- package/dist/js/node/types.js +71 -57
- package/dist/js/node/utils/alias.js +65 -73
- package/dist/js/node/utils/debug.js +27 -10
- package/dist/js/node/utils/index.js +28 -68
- package/dist/js/node/utils/meta.js +30 -12
- package/dist/js/node/utils/storage.js +36 -24
- package/dist/js/node/utils/validate.js +50 -44
- package/package.json +12 -40
|
@@ -1,91 +1,76 @@
|
|
|
1
|
-
import * as path from
|
|
2
|
-
import * as os from
|
|
3
|
-
import fs from
|
|
4
|
-
import Module from
|
|
5
|
-
|
|
6
|
-
let relativeRuntimePath =
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
import * as path from "path";
|
|
2
|
+
import * as os from "os";
|
|
3
|
+
import fs from "fs";
|
|
4
|
+
import Module from "module";
|
|
5
|
+
const getRelativeRuntimePath = (appDirectory, serverRuntimePath) => {
|
|
6
|
+
let relativeRuntimePath = "";
|
|
7
|
+
if (os.platform() === "win32") {
|
|
8
|
+
relativeRuntimePath = `../${path.relative(
|
|
9
|
+
appDirectory,
|
|
10
|
+
serverRuntimePath
|
|
11
|
+
)}`;
|
|
11
12
|
} else {
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
relativeRuntimePath = path.join(
|
|
14
|
+
"../",
|
|
15
|
+
path.relative(appDirectory, serverRuntimePath)
|
|
16
|
+
);
|
|
14
17
|
}
|
|
15
|
-
|
|
16
|
-
if (process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test') {
|
|
18
|
+
if (process.env.NODE_ENV === "development" || process.env.NODE_ENV === "test") {
|
|
17
19
|
relativeRuntimePath = `./${path.relative(appDirectory, serverRuntimePath)}`;
|
|
18
20
|
}
|
|
19
|
-
|
|
20
21
|
return relativeRuntimePath;
|
|
21
22
|
};
|
|
22
|
-
|
|
23
|
-
const sortByLongestPrefix = arr => {
|
|
23
|
+
const sortByLongestPrefix = (arr) => {
|
|
24
24
|
return arr.concat().sort((a, b) => b.length - a.length);
|
|
25
25
|
};
|
|
26
|
-
|
|
27
|
-
export const createMatchPath = paths => {
|
|
26
|
+
const createMatchPath = (paths) => {
|
|
28
27
|
const sortedKeys = sortByLongestPrefix(Object.keys(paths));
|
|
29
28
|
const sortedPaths = {};
|
|
30
|
-
sortedKeys.forEach(key => {
|
|
29
|
+
sortedKeys.forEach((key) => {
|
|
31
30
|
sortedPaths[key] = paths[key];
|
|
32
31
|
});
|
|
33
|
-
return request => {
|
|
34
|
-
const found = Object.keys(sortedPaths).find(key => {
|
|
32
|
+
return (request) => {
|
|
33
|
+
const found = Object.keys(sortedPaths).find((key) => {
|
|
35
34
|
return request.startsWith(key);
|
|
36
35
|
});
|
|
37
|
-
|
|
38
36
|
if (found) {
|
|
39
37
|
let foundPaths = sortedPaths[found];
|
|
40
|
-
|
|
41
38
|
if (!Array.isArray(foundPaths)) {
|
|
42
39
|
foundPaths = [foundPaths];
|
|
43
40
|
}
|
|
44
|
-
|
|
45
|
-
foundPaths = foundPaths.filter(foundPath => path.isAbsolute(foundPath));
|
|
46
|
-
|
|
41
|
+
foundPaths = foundPaths.filter((foundPath) => path.isAbsolute(foundPath));
|
|
47
42
|
for (const p of foundPaths) {
|
|
48
43
|
const foundPath = request.replace(found, p);
|
|
49
|
-
|
|
50
44
|
if (fs.existsSync(foundPath)) {
|
|
51
45
|
return foundPath;
|
|
52
46
|
}
|
|
53
47
|
}
|
|
54
|
-
|
|
55
48
|
return request.replace(found, foundPaths[0]);
|
|
56
49
|
}
|
|
57
|
-
|
|
58
50
|
return null;
|
|
59
51
|
};
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
const {
|
|
66
|
-
builtinModules
|
|
67
|
-
} = Module;
|
|
52
|
+
};
|
|
53
|
+
const registerPaths = (paths) => {
|
|
54
|
+
const originalResolveFilename = Module._resolveFilename;
|
|
55
|
+
const { builtinModules } = Module;
|
|
68
56
|
const matchPath = createMatchPath(paths);
|
|
69
|
-
|
|
70
|
-
Module._resolveFilename = function (request, _parent) {
|
|
57
|
+
Module._resolveFilename = function(request, _parent) {
|
|
71
58
|
const isCoreModule = builtinModules.includes(request);
|
|
72
|
-
|
|
73
59
|
if (!isCoreModule) {
|
|
74
60
|
const matched = matchPath(request);
|
|
75
|
-
|
|
76
61
|
if (matched) {
|
|
77
|
-
|
|
78
|
-
const modifiedArguments = [matched, ...[].slice.call(arguments, 1)]; // Passes all arguments. Even those that is not specified above.
|
|
79
|
-
|
|
62
|
+
const modifiedArguments = [matched, ...[].slice.call(arguments, 1)];
|
|
80
63
|
return originalResolveFilename.apply(this, modifiedArguments);
|
|
81
64
|
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
|
|
65
|
+
}
|
|
85
66
|
return originalResolveFilename.apply(this, arguments);
|
|
86
67
|
};
|
|
87
|
-
|
|
88
68
|
return () => {
|
|
89
69
|
Module._resolveFilename = originalResolveFilename;
|
|
90
70
|
};
|
|
91
|
-
};
|
|
71
|
+
};
|
|
72
|
+
export {
|
|
73
|
+
createMatchPath,
|
|
74
|
+
getRelativeRuntimePath,
|
|
75
|
+
registerPaths
|
|
76
|
+
};
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
return typeof handler ===
|
|
4
|
-
};
|
|
1
|
+
const HANDLER_WITH_META = "HANDLER_WITH_META";
|
|
2
|
+
const isWithMetaHandler = (handler) => {
|
|
3
|
+
return typeof handler === "function" && handler[HANDLER_WITH_META];
|
|
4
|
+
};
|
|
5
|
+
export {
|
|
6
|
+
HANDLER_WITH_META,
|
|
7
|
+
isWithMetaHandler
|
|
8
|
+
};
|
|
@@ -1,18 +1,14 @@
|
|
|
1
|
-
import * as ah from
|
|
2
|
-
|
|
1
|
+
import * as ah from "async_hooks";
|
|
3
2
|
const createStorage = () => {
|
|
4
3
|
let storage;
|
|
5
|
-
|
|
6
|
-
if (typeof ah.AsyncLocalStorage !== 'undefined') {
|
|
4
|
+
if (typeof ah.AsyncLocalStorage !== "undefined") {
|
|
7
5
|
storage = new ah.AsyncLocalStorage();
|
|
8
6
|
}
|
|
9
|
-
|
|
10
7
|
const run = (context, cb) => {
|
|
11
8
|
if (!storage) {
|
|
12
9
|
throw new Error(`Unable to use async_hook, please confirm the node version >= 12.17
|
|
13
10
|
`);
|
|
14
11
|
}
|
|
15
|
-
|
|
16
12
|
return new Promise((resolve, reject) => {
|
|
17
13
|
storage.run(context, () => {
|
|
18
14
|
try {
|
|
@@ -23,26 +19,24 @@ const createStorage = () => {
|
|
|
23
19
|
});
|
|
24
20
|
});
|
|
25
21
|
};
|
|
26
|
-
|
|
27
22
|
const useContext = () => {
|
|
28
23
|
if (!storage) {
|
|
29
24
|
throw new Error(`Unable to use async_hook, please confirm the node version >= 12.17
|
|
30
25
|
`);
|
|
31
26
|
}
|
|
32
|
-
|
|
33
27
|
const context = storage.getStore();
|
|
34
|
-
|
|
35
28
|
if (!context) {
|
|
36
|
-
throw new Error(
|
|
29
|
+
throw new Error(
|
|
30
|
+
`Can't call useContext out of scope, it should be placed in the bff function`
|
|
31
|
+
);
|
|
37
32
|
}
|
|
38
|
-
|
|
39
33
|
return context;
|
|
40
34
|
};
|
|
41
|
-
|
|
42
35
|
return {
|
|
43
36
|
run,
|
|
44
37
|
useContext
|
|
45
38
|
};
|
|
46
39
|
};
|
|
47
|
-
|
|
48
|
-
|
|
40
|
+
export {
|
|
41
|
+
createStorage
|
|
42
|
+
};
|
|
@@ -1,49 +1,43 @@
|
|
|
1
|
-
import util from
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
let msg =
|
|
5
|
-
|
|
1
|
+
import util from "util";
|
|
2
|
+
const getTypeErrorMessage = (actual) => {
|
|
3
|
+
var _a;
|
|
4
|
+
let msg = "";
|
|
6
5
|
if (actual == null) {
|
|
7
6
|
msg += `. Received ${actual}`;
|
|
8
|
-
} else if (typeof actual ===
|
|
7
|
+
} else if (typeof actual === "function" && actual.name) {
|
|
9
8
|
msg += `. Received function ${actual.name}`;
|
|
10
|
-
} else if (typeof actual ===
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
if ((_actual$constructor = actual.constructor) !== null && _actual$constructor !== void 0 && _actual$constructor.name) {
|
|
9
|
+
} else if (typeof actual === "object") {
|
|
10
|
+
if ((_a = actual.constructor) == null ? void 0 : _a.name) {
|
|
14
11
|
msg += `. Received an instance of ${actual.constructor.name}`;
|
|
15
12
|
} else {
|
|
16
|
-
const inspected = util.inspect(actual, {
|
|
17
|
-
depth: -1
|
|
18
|
-
});
|
|
13
|
+
const inspected = util.inspect(actual, { depth: -1 });
|
|
19
14
|
msg += `. Received ${inspected}`;
|
|
20
15
|
}
|
|
21
16
|
} else {
|
|
22
|
-
let inspected = util.inspect(actual, {
|
|
23
|
-
colors: false
|
|
24
|
-
});
|
|
25
|
-
|
|
17
|
+
let inspected = util.inspect(actual, { colors: false });
|
|
26
18
|
if (inspected.length > 25) {
|
|
27
19
|
inspected = `${inspected.slice(0, 25)}...`;
|
|
28
20
|
}
|
|
29
|
-
|
|
30
21
|
msg += `. Received type ${typeof actual} (${inspected})`;
|
|
31
22
|
}
|
|
32
|
-
|
|
33
23
|
return msg;
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
export class ERR_INVALID_ARG_TYPE extends Error {
|
|
24
|
+
};
|
|
25
|
+
class ERR_INVALID_ARG_TYPE extends Error {
|
|
37
26
|
constructor(funcName, expectedType, actual) {
|
|
38
|
-
const message = `[ERR_INVALID_ARG_TYPE]: The '${funcName}' argument must be of type ${expectedType}${getTypeErrorMessage(
|
|
27
|
+
const message = `[ERR_INVALID_ARG_TYPE]: The '${funcName}' argument must be of type ${expectedType}${getTypeErrorMessage(
|
|
28
|
+
actual
|
|
29
|
+
)}`;
|
|
39
30
|
super(message);
|
|
40
31
|
}
|
|
41
|
-
|
|
42
32
|
}
|
|
43
|
-
|
|
44
|
-
if (typeof maybeFunc !==
|
|
45
|
-
throw new ERR_INVALID_ARG_TYPE(name,
|
|
33
|
+
const validateFunction = (maybeFunc, name) => {
|
|
34
|
+
if (typeof maybeFunc !== "function") {
|
|
35
|
+
throw new ERR_INVALID_ARG_TYPE(name, "function", maybeFunc);
|
|
46
36
|
}
|
|
47
|
-
|
|
48
37
|
return true;
|
|
49
|
-
};
|
|
38
|
+
};
|
|
39
|
+
export {
|
|
40
|
+
ERR_INVALID_ARG_TYPE,
|
|
41
|
+
getTypeErrorMessage,
|
|
42
|
+
validateFunction
|
|
43
|
+
};
|
package/dist/js/node/api.js
CHANGED
|
@@ -1,66 +1,98 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
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 __async = (__this, __arguments, generator) => {
|
|
25
|
+
return new Promise((resolve, reject) => {
|
|
26
|
+
var fulfilled = (value) => {
|
|
27
|
+
try {
|
|
28
|
+
step(generator.next(value));
|
|
29
|
+
} catch (e) {
|
|
30
|
+
reject(e);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
var rejected = (value) => {
|
|
34
|
+
try {
|
|
35
|
+
step(generator.throw(value));
|
|
36
|
+
} catch (e) {
|
|
37
|
+
reject(e);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
41
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
var api_exports = {};
|
|
45
|
+
__export(api_exports, {
|
|
46
|
+
Api: () => Api
|
|
5
47
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
require("
|
|
9
|
-
|
|
10
|
-
var _koaCompose = _interopRequireDefault(require("koa-compose"));
|
|
11
|
-
|
|
12
|
-
var _utils = require("./utils");
|
|
13
|
-
|
|
14
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
|
|
48
|
+
module.exports = __toCommonJS(api_exports);
|
|
49
|
+
var import_reflect_metadata = require("reflect-metadata");
|
|
50
|
+
var import_koa_compose = __toESM(require("koa-compose"));
|
|
51
|
+
var import_utils = require("./utils");
|
|
16
52
|
function Api(...args) {
|
|
17
53
|
const handler = args.pop();
|
|
18
|
-
(0,
|
|
54
|
+
(0, import_utils.validateFunction)(handler, "Apihandler");
|
|
19
55
|
const operators = args;
|
|
20
56
|
const metadataHelper = {
|
|
21
57
|
getMetadata(key) {
|
|
22
58
|
return Reflect.getMetadata(key, runner);
|
|
23
59
|
},
|
|
24
|
-
|
|
25
60
|
setMetadata(key, value) {
|
|
26
61
|
return Reflect.defineMetadata(key, value, runner);
|
|
27
62
|
}
|
|
28
|
-
|
|
29
63
|
};
|
|
30
|
-
|
|
31
64
|
for (const operator of operators) {
|
|
32
65
|
if (operator.metadata) {
|
|
33
66
|
operator.metadata(metadataHelper);
|
|
34
67
|
}
|
|
35
68
|
}
|
|
36
|
-
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
helper.result = res;
|
|
58
|
-
return next();
|
|
69
|
+
const validateHandlers = operators.filter((operator) => operator.validate).map((operator) => operator.validate);
|
|
70
|
+
const pipeHandlers = operators.filter((operator) => operator.execute).map((operator) => operator.execute);
|
|
71
|
+
function runner(inputs) {
|
|
72
|
+
return __async(this, null, function* () {
|
|
73
|
+
const executeHelper = {
|
|
74
|
+
result: null,
|
|
75
|
+
get inputs() {
|
|
76
|
+
return inputs;
|
|
77
|
+
},
|
|
78
|
+
set inputs(val) {
|
|
79
|
+
inputs = val;
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
const stack = [...validateHandlers, ...pipeHandlers];
|
|
83
|
+
stack.push((helper, next) => __async(this, null, function* () {
|
|
84
|
+
const res = yield handler(helper.inputs);
|
|
85
|
+
helper.result = res;
|
|
86
|
+
return next();
|
|
87
|
+
}));
|
|
88
|
+
yield (0, import_koa_compose.default)(stack)(executeHelper);
|
|
89
|
+
return executeHelper.result;
|
|
59
90
|
});
|
|
60
|
-
await (0, _koaCompose.default)(stack)(executeHelper);
|
|
61
|
-
return executeHelper.result;
|
|
62
91
|
}
|
|
63
|
-
|
|
64
|
-
runner[_utils.HANDLER_WITH_META] = true;
|
|
92
|
+
runner[import_utils.HANDLER_WITH_META] = true;
|
|
65
93
|
return runner;
|
|
66
|
-
}
|
|
94
|
+
}
|
|
95
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
96
|
+
0 && (module.exports = {
|
|
97
|
+
Api
|
|
98
|
+
});
|
|
@@ -1,24 +1,57 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
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 __async = (__this, __arguments, generator) => {
|
|
25
|
+
return new Promise((resolve, reject) => {
|
|
26
|
+
var fulfilled = (value) => {
|
|
27
|
+
try {
|
|
28
|
+
step(generator.next(value));
|
|
29
|
+
} catch (e) {
|
|
30
|
+
reject(e);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
var rejected = (value) => {
|
|
34
|
+
try {
|
|
35
|
+
step(generator.throw(value));
|
|
36
|
+
} catch (e) {
|
|
37
|
+
reject(e);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
41
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
var generate_client_exports = {};
|
|
45
|
+
__export(generate_client_exports, {
|
|
46
|
+
DEFAULT_CLIENT_REQUEST_CREATOR: () => DEFAULT_CLIENT_REQUEST_CREATOR,
|
|
47
|
+
generateClient: () => generateClient
|
|
5
48
|
});
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
var _result = require("./result");
|
|
13
|
-
|
|
14
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
15
|
-
|
|
16
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
17
|
-
|
|
18
|
-
const DEFAULT_CLIENT_REQUEST_CREATOR = '@modern-js/create-request';
|
|
19
|
-
exports.DEFAULT_CLIENT_REQUEST_CREATOR = DEFAULT_CLIENT_REQUEST_CREATOR;
|
|
20
|
-
|
|
21
|
-
const generateClient = async ({
|
|
49
|
+
module.exports = __toCommonJS(generate_client_exports);
|
|
50
|
+
var path = __toESM(require("path"));
|
|
51
|
+
var import_router = require("../router");
|
|
52
|
+
var import_result = require("./result");
|
|
53
|
+
const DEFAULT_CLIENT_REQUEST_CREATOR = "@modern-js/create-request";
|
|
54
|
+
const generateClient = (_0) => __async(void 0, [_0], function* ({
|
|
22
55
|
resourcePath,
|
|
23
56
|
apiDir,
|
|
24
57
|
prefix,
|
|
@@ -26,56 +59,53 @@ const generateClient = async ({
|
|
|
26
59
|
target,
|
|
27
60
|
requestCreator,
|
|
28
61
|
fetcher,
|
|
29
|
-
requireResolve
|
|
30
|
-
})
|
|
62
|
+
requireResolve = require.resolve
|
|
63
|
+
}) {
|
|
31
64
|
if (!requestCreator) {
|
|
32
|
-
|
|
33
|
-
|
|
65
|
+
requestCreator = requireResolve(
|
|
66
|
+
`${DEFAULT_CLIENT_REQUEST_CREATOR}${target ? `/${target}` : ""}`
|
|
67
|
+
).replace(/\\/g, "/");
|
|
34
68
|
} else {
|
|
35
|
-
// 这里约束传入的 requestCreator 包也必须有两个导出 client 和 server,因为目前的机制 client 和 server 要导出不同的 configure 函数;该 api 不对使用者暴露,后续可优化
|
|
36
69
|
let resolvedPath = requestCreator;
|
|
37
|
-
|
|
38
70
|
try {
|
|
39
|
-
resolvedPath = path.dirname(
|
|
40
|
-
} catch (error) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
71
|
+
resolvedPath = path.dirname(requireResolve(requestCreator));
|
|
72
|
+
} catch (error) {
|
|
73
|
+
}
|
|
74
|
+
requestCreator = `${resolvedPath}${target ? `/${target}` : ""}`.replace(
|
|
75
|
+
/\\/g,
|
|
76
|
+
"/"
|
|
77
|
+
);
|
|
44
78
|
}
|
|
45
|
-
|
|
46
|
-
const apiRouter = new _router.ApiRouter({
|
|
79
|
+
const apiRouter = new import_router.ApiRouter({
|
|
47
80
|
apiDir,
|
|
48
81
|
prefix
|
|
49
82
|
});
|
|
50
83
|
const handlerInfos = apiRouter.getSingleModuleHandlers(resourcePath);
|
|
51
|
-
|
|
52
84
|
if (!handlerInfos) {
|
|
53
|
-
return (0,
|
|
85
|
+
return (0, import_result.Err)(`generate client error: Cannot require module ${resourcePath}`);
|
|
54
86
|
}
|
|
55
|
-
|
|
56
|
-
let handlersCode = '';
|
|
57
|
-
|
|
87
|
+
let handlersCode = "";
|
|
58
88
|
for (const handlerInfo of handlerInfos) {
|
|
59
|
-
const {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
} = handlerInfo;
|
|
64
|
-
let exportStatement = `const ${name} =`;
|
|
65
|
-
|
|
66
|
-
if (name.toLowerCase() === 'default') {
|
|
67
|
-
exportStatement = 'default';
|
|
89
|
+
const { name, httpMethod, routePath } = handlerInfo;
|
|
90
|
+
let exportStatement = `var ${name} =`;
|
|
91
|
+
if (name.toLowerCase() === "default") {
|
|
92
|
+
exportStatement = "default";
|
|
68
93
|
}
|
|
69
|
-
|
|
70
94
|
const upperHttpMethod = httpMethod.toUpperCase();
|
|
71
95
|
const routeName = routePath;
|
|
72
|
-
handlersCode += `export ${exportStatement} createRequest('${routeName}', '${upperHttpMethod}', process.env.PORT || ${String(
|
|
96
|
+
handlersCode += `export ${exportStatement} createRequest('${routeName}', '${upperHttpMethod}', process.env.PORT || ${String(
|
|
97
|
+
port
|
|
98
|
+
)}${fetcher ? `, fetch` : ""});
|
|
73
99
|
`;
|
|
74
100
|
}
|
|
75
|
-
|
|
76
101
|
const importCode = `import { createRequest } from '${requestCreator}';
|
|
77
|
-
${fetcher ? `import { fetch } from '${fetcher}'
|
|
78
|
-
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
|
|
102
|
+
${fetcher ? `import { fetch } from '${fetcher}';
|
|
103
|
+
` : ""}`;
|
|
104
|
+
return (0, import_result.Ok)(`${importCode}
|
|
105
|
+
${handlersCode}`);
|
|
106
|
+
});
|
|
107
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
108
|
+
0 && (module.exports = {
|
|
109
|
+
DEFAULT_CLIENT_REQUEST_CREATOR,
|
|
110
|
+
generateClient
|
|
111
|
+
});
|
|
@@ -1,18 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
});
|
|
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);
|