@modern-js/plugin-bff 2.35.0 → 2.36.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/dist/cjs/cli.js +59 -42
- package/dist/cjs/constants.js +25 -15
- package/dist/cjs/helper.js +38 -12
- package/dist/cjs/index.js +20 -4
- package/dist/cjs/loader.js +26 -13
- package/dist/cjs/server.js +44 -22
- package/dist/esm/cli.js +26 -23
- package/dist/esm/constants.js +6 -2
- package/dist/esm/helper.js +3 -1
- package/dist/esm/loader.js +6 -3
- package/dist/esm/server.js +9 -6
- package/dist/esm-node/cli.js +13 -10
- package/dist/esm-node/constants.js +6 -2
- package/dist/esm-node/helper.js +3 -1
- package/dist/esm-node/loader.js +4 -1
- package/dist/esm-node/server.js +4 -1
- package/package.json +13 -13
- package/types.d.ts +3 -0
package/dist/cjs/cli.js
CHANGED
|
@@ -1,28 +1,42 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
6
9
|
for (var name in all)
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
return bffPlugin;
|
|
15
|
-
},
|
|
16
|
-
default: function() {
|
|
17
|
-
return _default;
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
18
17
|
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var cli_exports = {};
|
|
30
|
+
__export(cli_exports, {
|
|
31
|
+
bffPlugin: () => bffPlugin,
|
|
32
|
+
default: () => cli_default
|
|
19
33
|
});
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
34
|
+
module.exports = __toCommonJS(cli_exports);
|
|
35
|
+
var import_path = __toESM(require("path"));
|
|
36
|
+
var import_utils = require("@modern-js/utils");
|
|
37
|
+
var import_server_utils = require("@modern-js/server-utils");
|
|
38
|
+
var import_bff_core = require("@modern-js/bff-core");
|
|
39
|
+
var import_helper = require("./helper");
|
|
26
40
|
const DEFAULT_API_PREFIX = "/api";
|
|
27
41
|
const TS_CONFIG_FILENAME = "tsconfig.json";
|
|
28
42
|
const bffPlugin = () => ({
|
|
@@ -61,14 +75,12 @@ const bffPlugin = () => ({
|
|
|
61
75
|
return {
|
|
62
76
|
tools: {
|
|
63
77
|
bundlerChain: (chain, { CHAIN_ID, isServer }) => {
|
|
64
|
-
var _bff, _bff1, _bff2;
|
|
65
78
|
const { port, appDirectory, apiDirectory, lambdaDirectory } = api.useAppContext();
|
|
66
79
|
const modernConfig = api.useResolvedConfigContext();
|
|
67
80
|
const { bff } = modernConfig || {};
|
|
68
|
-
const prefix = (
|
|
69
|
-
const httpMethodDecider =
|
|
70
|
-
|
|
71
|
-
const apiRouter = new _bffcore.ApiRouter({
|
|
81
|
+
const prefix = (bff === null || bff === void 0 ? void 0 : bff.prefix) || DEFAULT_API_PREFIX;
|
|
82
|
+
const httpMethodDecider = bff === null || bff === void 0 ? void 0 : bff.httpMethodDecider;
|
|
83
|
+
const apiRouter = new import_bff_core.ApiRouter({
|
|
72
84
|
apiDir: apiDirectory,
|
|
73
85
|
appDir: appDirectory,
|
|
74
86
|
lambdaDir: lambdaDirectory,
|
|
@@ -78,7 +90,7 @@ const bffPlugin = () => ({
|
|
|
78
90
|
});
|
|
79
91
|
const lambdaDir = apiRouter.getLambdaDir();
|
|
80
92
|
const existLambda = apiRouter.isExistLambda();
|
|
81
|
-
const apiRegexp = new RegExp((0,
|
|
93
|
+
const apiRegexp = new RegExp((0, import_utils.normalizeOutputPath)(`${apiDirectory}${import_path.default.sep}.*(.[tj]s)$`));
|
|
82
94
|
const name = isServer ? "server" : "client";
|
|
83
95
|
chain.module.rule(CHAIN_ID.RULE.JS).exclude.add(apiRegexp);
|
|
84
96
|
chain.module.rule(CHAIN_ID.RULE.JS_BFF_API).test(apiRegexp).use("custom-loader").loader(require.resolve("./loader").replace(/\\/g, "/")).options({
|
|
@@ -90,24 +102,25 @@ const bffPlugin = () => ({
|
|
|
90
102
|
port,
|
|
91
103
|
target: name,
|
|
92
104
|
// Internal field
|
|
93
|
-
requestCreator:
|
|
105
|
+
requestCreator: bff === null || bff === void 0 ? void 0 : bff.requestCreator,
|
|
94
106
|
httpMethodDecider
|
|
95
107
|
});
|
|
108
|
+
chain.resolve.alias.set("@api", apiDirectory);
|
|
109
|
+
chain.resolve.alias.set("@modern-js/runtime/bff", isServer ? require.resolve("@modern-js/create-request/server") : require.resolve("@modern-js/create-request/client"));
|
|
96
110
|
}
|
|
97
111
|
},
|
|
98
112
|
source: {
|
|
99
113
|
moduleScopes: [
|
|
100
|
-
`./${
|
|
114
|
+
`./${import_utils.API_DIR}`,
|
|
101
115
|
/create-request/
|
|
102
116
|
]
|
|
103
117
|
}
|
|
104
118
|
};
|
|
105
119
|
},
|
|
106
120
|
modifyServerRoutes({ routes }) {
|
|
107
|
-
var _bff, _bff1;
|
|
108
121
|
const modernConfig = api.useResolvedConfigContext();
|
|
109
122
|
const { bff } = modernConfig || {};
|
|
110
|
-
const prefix = (
|
|
123
|
+
const prefix = (bff === null || bff === void 0 ? void 0 : bff.prefix) || "/api";
|
|
111
124
|
const prefixList = [];
|
|
112
125
|
if (Array.isArray(prefix)) {
|
|
113
126
|
prefixList.push(...prefix);
|
|
@@ -121,7 +134,7 @@ const bffPlugin = () => ({
|
|
|
121
134
|
isSPA: false,
|
|
122
135
|
isSSR: false
|
|
123
136
|
}));
|
|
124
|
-
if (
|
|
137
|
+
if (bff === null || bff === void 0 ? void 0 : bff.enableHandleWeb) {
|
|
125
138
|
return {
|
|
126
139
|
routes: routes.map((route) => {
|
|
127
140
|
return {
|
|
@@ -144,9 +157,9 @@ const bffPlugin = () => ({
|
|
|
144
157
|
};
|
|
145
158
|
},
|
|
146
159
|
async beforeBuild() {
|
|
147
|
-
if ((0,
|
|
160
|
+
if ((0, import_utils.isProd)()) {
|
|
148
161
|
const { internalDirectory } = api.useAppContext();
|
|
149
|
-
unRegisterResolveRuntimePath = (0,
|
|
162
|
+
unRegisterResolveRuntimePath = (0, import_helper.registerModernRuntimePath)(internalDirectory);
|
|
150
163
|
}
|
|
151
164
|
},
|
|
152
165
|
async afterBuild() {
|
|
@@ -155,22 +168,22 @@ const bffPlugin = () => ({
|
|
|
155
168
|
}
|
|
156
169
|
const { appDirectory, distDirectory, apiDirectory, sharedDirectory } = api.useAppContext();
|
|
157
170
|
const modernConfig = api.useResolvedConfigContext();
|
|
158
|
-
const distDir =
|
|
159
|
-
const apiDir = apiDirectory ||
|
|
160
|
-
const sharedDir = sharedDirectory ||
|
|
161
|
-
const tsconfigPath =
|
|
171
|
+
const distDir = import_path.default.resolve(distDirectory);
|
|
172
|
+
const apiDir = apiDirectory || import_path.default.resolve(appDirectory, import_utils.API_DIR);
|
|
173
|
+
const sharedDir = sharedDirectory || import_path.default.resolve(appDirectory, import_utils.SHARED_DIR);
|
|
174
|
+
const tsconfigPath = import_path.default.resolve(appDirectory, TS_CONFIG_FILENAME);
|
|
162
175
|
const sourceDirs = [];
|
|
163
|
-
if (
|
|
176
|
+
if (import_utils.fs.existsSync(apiDir)) {
|
|
164
177
|
sourceDirs.push(apiDir);
|
|
165
178
|
}
|
|
166
|
-
if (
|
|
179
|
+
if (import_utils.fs.existsSync(sharedDir)) {
|
|
167
180
|
sourceDirs.push(sharedDir);
|
|
168
181
|
}
|
|
169
182
|
const { server } = modernConfig;
|
|
170
183
|
const { alias } = modernConfig.source;
|
|
171
184
|
const { babel } = modernConfig.tools;
|
|
172
185
|
if (sourceDirs.length > 0) {
|
|
173
|
-
await (0,
|
|
186
|
+
await (0, import_server_utils.compile)(appDirectory, {
|
|
174
187
|
server,
|
|
175
188
|
alias,
|
|
176
189
|
babelConfig: babel
|
|
@@ -184,4 +197,8 @@ const bffPlugin = () => ({
|
|
|
184
197
|
};
|
|
185
198
|
}
|
|
186
199
|
});
|
|
187
|
-
|
|
200
|
+
var cli_default = bffPlugin;
|
|
201
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
202
|
+
0 && (module.exports = {
|
|
203
|
+
bffPlugin
|
|
204
|
+
});
|
package/dist/cjs/constants.js
CHANGED
|
@@ -1,22 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
6
7
|
for (var name in all)
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
return API_APP_NAME;
|
|
15
|
-
},
|
|
16
|
-
BUILD_FILES: function() {
|
|
17
|
-
return BUILD_FILES;
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
18
15
|
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var constants_exports = {};
|
|
20
|
+
__export(constants_exports, {
|
|
21
|
+
API_APP_NAME: () => API_APP_NAME,
|
|
22
|
+
BUILD_FILES: () => BUILD_FILES
|
|
19
23
|
});
|
|
24
|
+
module.exports = __toCommonJS(constants_exports);
|
|
20
25
|
const API_APP_NAME = "_app";
|
|
21
26
|
const BUILD_FILES = [
|
|
22
27
|
"**/*.[tj]sx?",
|
|
@@ -27,3 +32,8 @@ const BUILD_FILES = [
|
|
|
27
32
|
"!__tests__/*.tsx?",
|
|
28
33
|
"!__tests__/*.jsx?"
|
|
29
34
|
];
|
|
35
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
36
|
+
0 && (module.exports = {
|
|
37
|
+
API_APP_NAME,
|
|
38
|
+
BUILD_FILES
|
|
39
|
+
});
|
package/dist/cjs/helper.js
CHANGED
|
@@ -1,22 +1,48 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Object.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
9
17
|
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var helper_exports = {};
|
|
30
|
+
__export(helper_exports, {
|
|
31
|
+
registerModernRuntimePath: () => registerModernRuntimePath
|
|
10
32
|
});
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
33
|
+
module.exports = __toCommonJS(helper_exports);
|
|
34
|
+
var path = __toESM(require("path"));
|
|
35
|
+
var import_bff_core = require("@modern-js/bff-core");
|
|
14
36
|
const serverRuntimeAlias = "@modern-js/runtime/server";
|
|
15
37
|
const serverRuntimePath = ".runtime-exports/server";
|
|
16
38
|
const registerModernRuntimePath = (internalDirectory) => {
|
|
17
39
|
const paths = {
|
|
18
|
-
[serverRuntimeAlias]:
|
|
40
|
+
[serverRuntimeAlias]: path.join(internalDirectory, serverRuntimePath)
|
|
19
41
|
};
|
|
20
|
-
const unRegister = (0,
|
|
42
|
+
const unRegister = (0, import_bff_core.registerPaths)(paths);
|
|
21
43
|
return unRegister;
|
|
22
44
|
};
|
|
45
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
46
|
+
0 && (module.exports = {
|
|
47
|
+
registerModernRuntimePath
|
|
48
|
+
});
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,6 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty
|
|
3
|
-
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
16
|
+
var src_exports = {};
|
|
17
|
+
module.exports = __toCommonJS(src_exports);
|
|
18
|
+
__reExport(src_exports, require("./constants"), module.exports);
|
|
19
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
20
|
+
0 && (module.exports = {
|
|
21
|
+
...require("./constants")
|
|
4
22
|
});
|
|
5
|
-
const _export_star = require("@swc/helpers/_/_export_star");
|
|
6
|
-
_export_star._(require("./constants"), exports);
|
package/dist/cjs/loader.js
CHANGED
|
@@ -1,15 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Object.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
9
15
|
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var loader_exports = {};
|
|
20
|
+
__export(loader_exports, {
|
|
21
|
+
default: () => loader_default
|
|
10
22
|
});
|
|
11
|
-
|
|
12
|
-
|
|
23
|
+
module.exports = __toCommonJS(loader_exports);
|
|
24
|
+
var import_bff_core = require("@modern-js/bff-core");
|
|
25
|
+
var import_utils = require("@modern-js/utils");
|
|
13
26
|
async function loader(source) {
|
|
14
27
|
this.cacheable();
|
|
15
28
|
const { resourcePath } = this;
|
|
@@ -18,7 +31,7 @@ async function loader(source) {
|
|
|
18
31
|
const draftOptions = this.getOptions();
|
|
19
32
|
const warning = `The file ${resourcePath} is not allowd to be imported in src directory, only API definition files are allowed.`;
|
|
20
33
|
if (!draftOptions.existLambda) {
|
|
21
|
-
|
|
34
|
+
import_utils.logger.warn(warning);
|
|
22
35
|
callback(null, `throw new Error('${warning}')`);
|
|
23
36
|
return;
|
|
24
37
|
}
|
|
@@ -35,7 +48,7 @@ async function loader(source) {
|
|
|
35
48
|
};
|
|
36
49
|
const { lambdaDir } = draftOptions;
|
|
37
50
|
if (!resourcePath.startsWith(lambdaDir)) {
|
|
38
|
-
|
|
51
|
+
import_utils.logger.warn(warning);
|
|
39
52
|
callback(null, `throw new Error('${warning}')`);
|
|
40
53
|
return;
|
|
41
54
|
}
|
|
@@ -46,11 +59,11 @@ async function loader(source) {
|
|
|
46
59
|
options.requestCreator = draftOptions.requestCreator;
|
|
47
60
|
}
|
|
48
61
|
options.requireResolve = require.resolve;
|
|
49
|
-
const result = await (0,
|
|
62
|
+
const result = await (0, import_bff_core.generateClient)(options);
|
|
50
63
|
if (result.isOk) {
|
|
51
64
|
callback(void 0, result.value);
|
|
52
65
|
} else {
|
|
53
66
|
callback(void 0, `throw new Error('${result.value}')`);
|
|
54
67
|
}
|
|
55
68
|
}
|
|
56
|
-
|
|
69
|
+
var loader_default = loader;
|
package/dist/cjs/server.js
CHANGED
|
@@ -1,25 +1,47 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Object.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
9
17
|
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var server_exports = {};
|
|
30
|
+
__export(server_exports, {
|
|
31
|
+
default: () => server_default
|
|
10
32
|
});
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
33
|
+
module.exports = __toCommonJS(server_exports);
|
|
34
|
+
var import_define_property = require("@swc/helpers/_/_define_property");
|
|
35
|
+
var import_path = __toESM(require("path"));
|
|
36
|
+
var import_bff_core = require("@modern-js/bff-core");
|
|
37
|
+
var import_utils = require("@modern-js/utils");
|
|
38
|
+
var import_constants = require("./constants");
|
|
17
39
|
class Storage {
|
|
18
40
|
reset() {
|
|
19
41
|
this.middlewares = [];
|
|
20
42
|
}
|
|
21
43
|
constructor() {
|
|
22
|
-
|
|
44
|
+
(0, import_define_property._)(this, "middlewares", []);
|
|
23
45
|
}
|
|
24
46
|
}
|
|
25
47
|
const createTransformAPI = (storage) => ({
|
|
@@ -27,7 +49,7 @@ const createTransformAPI = (storage) => ({
|
|
|
27
49
|
storage.middlewares.push(fn);
|
|
28
50
|
}
|
|
29
51
|
});
|
|
30
|
-
|
|
52
|
+
var server_default = () => ({
|
|
31
53
|
name: "@modern-js/plugin-bff",
|
|
32
54
|
setup: (api) => {
|
|
33
55
|
const storage = new Storage();
|
|
@@ -36,17 +58,17 @@ const _default = () => ({
|
|
|
36
58
|
return {
|
|
37
59
|
prepare() {
|
|
38
60
|
const { appDirectory, distDirectory } = api.useAppContext();
|
|
39
|
-
const root = (0,
|
|
40
|
-
const apiPath =
|
|
41
|
-
apiAppPath =
|
|
42
|
-
const apiMod = (0,
|
|
61
|
+
const root = (0, import_utils.isProd)() ? distDirectory : appDirectory;
|
|
62
|
+
const apiPath = import_path.default.resolve(root || process.cwd(), import_utils.API_DIR);
|
|
63
|
+
apiAppPath = import_path.default.resolve(apiPath, import_constants.API_APP_NAME);
|
|
64
|
+
const apiMod = (0, import_utils.requireExistModule)(apiAppPath);
|
|
43
65
|
if (apiMod && typeof apiMod === "function") {
|
|
44
66
|
apiMod(transformAPI);
|
|
45
67
|
}
|
|
46
68
|
},
|
|
47
69
|
reset() {
|
|
48
70
|
storage.reset();
|
|
49
|
-
const newApiModule = (0,
|
|
71
|
+
const newApiModule = (0, import_utils.requireExistModule)(apiAppPath);
|
|
50
72
|
if (newApiModule && typeof newApiModule === "function") {
|
|
51
73
|
newApiModule(transformAPI);
|
|
52
74
|
}
|
|
@@ -58,10 +80,10 @@ const _default = () => ({
|
|
|
58
80
|
},
|
|
59
81
|
prepareApiServer(props, next) {
|
|
60
82
|
const { pwd, prefix, httpMethodDecider } = props;
|
|
61
|
-
const apiDir =
|
|
83
|
+
const apiDir = import_path.default.resolve(pwd, import_utils.API_DIR);
|
|
62
84
|
const appContext = api.useAppContext();
|
|
63
85
|
const { apiDirectory, lambdaDirectory } = appContext;
|
|
64
|
-
const apiRouter = new
|
|
86
|
+
const apiRouter = new import_bff_core.ApiRouter({
|
|
65
87
|
appDir: pwd,
|
|
66
88
|
apiDir: apiDirectory || apiDir,
|
|
67
89
|
lambdaDir: lambdaDirectory,
|
package/dist/esm/cli.js
CHANGED
|
@@ -10,7 +10,7 @@ import { ApiRouter } from "@modern-js/bff-core";
|
|
|
10
10
|
import { registerModernRuntimePath } from "./helper";
|
|
11
11
|
var DEFAULT_API_PREFIX = "/api";
|
|
12
12
|
var TS_CONFIG_FILENAME = "tsconfig.json";
|
|
13
|
-
|
|
13
|
+
var bffPlugin = function() {
|
|
14
14
|
return {
|
|
15
15
|
name: "@modern-js/plugin-bff",
|
|
16
16
|
setup: function(api) {
|
|
@@ -48,19 +48,17 @@ export var bffPlugin = function() {
|
|
|
48
48
|
tools: {
|
|
49
49
|
bundlerChain: function(chain, param) {
|
|
50
50
|
var CHAIN_ID = param.CHAIN_ID, isServer = param.isServer;
|
|
51
|
-
var _bff, _bff1, _bff2;
|
|
52
51
|
var _api_useAppContext = api.useAppContext(), port = _api_useAppContext.port, appDirectory = _api_useAppContext.appDirectory, apiDirectory = _api_useAppContext.apiDirectory, lambdaDirectory = _api_useAppContext.lambdaDirectory;
|
|
53
52
|
var modernConfig = api.useResolvedConfigContext();
|
|
54
53
|
var bff = (modernConfig || {}).bff;
|
|
55
|
-
var prefix = (
|
|
56
|
-
var httpMethodDecider =
|
|
57
|
-
chain.resolve.alias.set("@api", apiDirectory);
|
|
54
|
+
var prefix = (bff === null || bff === void 0 ? void 0 : bff.prefix) || DEFAULT_API_PREFIX;
|
|
55
|
+
var httpMethodDecider = bff === null || bff === void 0 ? void 0 : bff.httpMethodDecider;
|
|
58
56
|
var apiRouter = new ApiRouter({
|
|
59
57
|
apiDir: apiDirectory,
|
|
60
58
|
appDir: appDirectory,
|
|
61
59
|
lambdaDir: lambdaDirectory,
|
|
62
|
-
prefix
|
|
63
|
-
httpMethodDecider
|
|
60
|
+
prefix,
|
|
61
|
+
httpMethodDecider,
|
|
64
62
|
isBuild: true
|
|
65
63
|
});
|
|
66
64
|
var lambdaDir = apiRouter.getLambdaDir();
|
|
@@ -69,17 +67,19 @@ export var bffPlugin = function() {
|
|
|
69
67
|
var name = isServer ? "server" : "client";
|
|
70
68
|
chain.module.rule(CHAIN_ID.RULE.JS).exclude.add(apiRegexp);
|
|
71
69
|
chain.module.rule(CHAIN_ID.RULE.JS_BFF_API).test(apiRegexp).use("custom-loader").loader(require.resolve("./loader").replace(/\\/g, "/")).options({
|
|
72
|
-
prefix
|
|
70
|
+
prefix,
|
|
73
71
|
appDir: appDirectory,
|
|
74
72
|
apiDir: apiDirectory,
|
|
75
|
-
lambdaDir
|
|
76
|
-
existLambda
|
|
77
|
-
port
|
|
73
|
+
lambdaDir,
|
|
74
|
+
existLambda,
|
|
75
|
+
port,
|
|
78
76
|
target: name,
|
|
79
77
|
// Internal field
|
|
80
|
-
requestCreator:
|
|
81
|
-
httpMethodDecider
|
|
78
|
+
requestCreator: bff === null || bff === void 0 ? void 0 : bff.requestCreator,
|
|
79
|
+
httpMethodDecider
|
|
82
80
|
});
|
|
81
|
+
chain.resolve.alias.set("@api", apiDirectory);
|
|
82
|
+
chain.resolve.alias.set("@modern-js/runtime/bff", isServer ? require.resolve("@modern-js/create-request/server") : require.resolve("@modern-js/create-request/client"));
|
|
83
83
|
}
|
|
84
84
|
},
|
|
85
85
|
source: {
|
|
@@ -92,10 +92,9 @@ export var bffPlugin = function() {
|
|
|
92
92
|
},
|
|
93
93
|
modifyServerRoutes: function modifyServerRoutes(param) {
|
|
94
94
|
var routes = param.routes;
|
|
95
|
-
var _bff, _bff1;
|
|
96
95
|
var modernConfig = api.useResolvedConfigContext();
|
|
97
96
|
var bff = (modernConfig || {}).bff;
|
|
98
|
-
var prefix = (
|
|
97
|
+
var prefix = (bff === null || bff === void 0 ? void 0 : bff.prefix) || "/api";
|
|
99
98
|
var prefixList = [];
|
|
100
99
|
if (Array.isArray(prefix)) {
|
|
101
100
|
var _prefixList;
|
|
@@ -112,7 +111,7 @@ export var bffPlugin = function() {
|
|
|
112
111
|
isSSR: false
|
|
113
112
|
};
|
|
114
113
|
});
|
|
115
|
-
if (
|
|
114
|
+
if (bff === null || bff === void 0 ? void 0 : bff.enableHandleWeb) {
|
|
116
115
|
return {
|
|
117
116
|
routes: routes.map(function(route) {
|
|
118
117
|
return _object_spread_props(_object_spread({}, route), {
|
|
@@ -131,7 +130,7 @@ export var bffPlugin = function() {
|
|
|
131
130
|
"@modern-js/plugin-bff": "@modern-js/plugin-bff/server"
|
|
132
131
|
});
|
|
133
132
|
return {
|
|
134
|
-
plugins
|
|
133
|
+
plugins
|
|
135
134
|
};
|
|
136
135
|
},
|
|
137
136
|
beforeBuild: function beforeBuild() {
|
|
@@ -181,13 +180,13 @@ export var bffPlugin = function() {
|
|
|
181
180
|
return [
|
|
182
181
|
4,
|
|
183
182
|
compile(appDirectory, {
|
|
184
|
-
server
|
|
185
|
-
alias
|
|
183
|
+
server,
|
|
184
|
+
alias,
|
|
186
185
|
babelConfig: babel
|
|
187
186
|
}, {
|
|
188
|
-
sourceDirs
|
|
189
|
-
distDir
|
|
190
|
-
tsconfigPath
|
|
187
|
+
sourceDirs,
|
|
188
|
+
distDir,
|
|
189
|
+
tsconfigPath
|
|
191
190
|
})
|
|
192
191
|
];
|
|
193
192
|
case 1:
|
|
@@ -205,4 +204,8 @@ export var bffPlugin = function() {
|
|
|
205
204
|
}
|
|
206
205
|
};
|
|
207
206
|
};
|
|
208
|
-
|
|
207
|
+
var cli_default = bffPlugin;
|
|
208
|
+
export {
|
|
209
|
+
bffPlugin,
|
|
210
|
+
cli_default as default
|
|
211
|
+
};
|
package/dist/esm/constants.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
var API_APP_NAME = "_app";
|
|
2
|
+
var BUILD_FILES = [
|
|
3
3
|
"**/*.[tj]sx?",
|
|
4
4
|
"!**/*.test.jsx?",
|
|
5
5
|
"!**/*.test.tsx?",
|
|
@@ -8,3 +8,7 @@ export var BUILD_FILES = [
|
|
|
8
8
|
"!__tests__/*.tsx?",
|
|
9
9
|
"!__tests__/*.jsx?"
|
|
10
10
|
];
|
|
11
|
+
export {
|
|
12
|
+
API_APP_NAME,
|
|
13
|
+
BUILD_FILES
|
|
14
|
+
};
|
package/dist/esm/helper.js
CHANGED
package/dist/esm/loader.js
CHANGED
|
@@ -31,8 +31,8 @@ function _loader() {
|
|
|
31
31
|
lambdaDir: draftOptions.lambdaDir,
|
|
32
32
|
target: draftOptions.target,
|
|
33
33
|
port: Number(draftOptions.port),
|
|
34
|
-
source
|
|
35
|
-
resourcePath
|
|
34
|
+
source,
|
|
35
|
+
resourcePath,
|
|
36
36
|
httpMethodDecider: draftOptions.httpMethodDecider
|
|
37
37
|
};
|
|
38
38
|
lambdaDir = draftOptions.lambdaDir;
|
|
@@ -69,4 +69,7 @@ function _loader() {
|
|
|
69
69
|
});
|
|
70
70
|
return _loader.apply(this, arguments);
|
|
71
71
|
}
|
|
72
|
-
|
|
72
|
+
var loader_default = loader;
|
|
73
|
+
export {
|
|
74
|
+
loader_default as default
|
|
75
|
+
};
|
package/dist/esm/server.js
CHANGED
|
@@ -30,7 +30,7 @@ var createTransformAPI = function(storage) {
|
|
|
30
30
|
}
|
|
31
31
|
};
|
|
32
32
|
};
|
|
33
|
-
|
|
33
|
+
function server_default() {
|
|
34
34
|
return {
|
|
35
35
|
name: "@modern-js/plugin-bff",
|
|
36
36
|
setup: function(api) {
|
|
@@ -70,15 +70,15 @@ export default function() {
|
|
|
70
70
|
appDir: pwd,
|
|
71
71
|
apiDir: apiDirectory || apiDir,
|
|
72
72
|
lambdaDir: lambdaDirectory,
|
|
73
|
-
prefix
|
|
74
|
-
httpMethodDecider
|
|
73
|
+
prefix,
|
|
74
|
+
httpMethodDecider
|
|
75
75
|
});
|
|
76
76
|
var apiMode = apiRouter.getApiMode();
|
|
77
77
|
var apiHandlerInfos = apiRouter.getApiHandlers();
|
|
78
78
|
api.setAppContext(_object_spread_props(_object_spread({}, appContext), {
|
|
79
|
-
apiRouter
|
|
80
|
-
apiHandlerInfos
|
|
81
|
-
apiMode
|
|
79
|
+
apiRouter,
|
|
80
|
+
apiHandlerInfos,
|
|
81
|
+
apiMode
|
|
82
82
|
}));
|
|
83
83
|
return next(props);
|
|
84
84
|
}
|
|
@@ -87,3 +87,6 @@ export default function() {
|
|
|
87
87
|
};
|
|
88
88
|
}
|
|
89
89
|
;
|
|
90
|
+
export {
|
|
91
|
+
server_default as default
|
|
92
|
+
};
|
package/dist/esm-node/cli.js
CHANGED
|
@@ -5,7 +5,7 @@ import { ApiRouter } from "@modern-js/bff-core";
|
|
|
5
5
|
import { registerModernRuntimePath } from "./helper";
|
|
6
6
|
const DEFAULT_API_PREFIX = "/api";
|
|
7
7
|
const TS_CONFIG_FILENAME = "tsconfig.json";
|
|
8
|
-
|
|
8
|
+
const bffPlugin = () => ({
|
|
9
9
|
name: "@modern-js/plugin-bff",
|
|
10
10
|
setup: (api) => {
|
|
11
11
|
let unRegisterResolveRuntimePath = null;
|
|
@@ -41,13 +41,11 @@ export const bffPlugin = () => ({
|
|
|
41
41
|
return {
|
|
42
42
|
tools: {
|
|
43
43
|
bundlerChain: (chain, { CHAIN_ID, isServer }) => {
|
|
44
|
-
var _bff, _bff1, _bff2;
|
|
45
44
|
const { port, appDirectory, apiDirectory, lambdaDirectory } = api.useAppContext();
|
|
46
45
|
const modernConfig = api.useResolvedConfigContext();
|
|
47
46
|
const { bff } = modernConfig || {};
|
|
48
|
-
const prefix = (
|
|
49
|
-
const httpMethodDecider =
|
|
50
|
-
chain.resolve.alias.set("@api", apiDirectory);
|
|
47
|
+
const prefix = (bff === null || bff === void 0 ? void 0 : bff.prefix) || DEFAULT_API_PREFIX;
|
|
48
|
+
const httpMethodDecider = bff === null || bff === void 0 ? void 0 : bff.httpMethodDecider;
|
|
51
49
|
const apiRouter = new ApiRouter({
|
|
52
50
|
apiDir: apiDirectory,
|
|
53
51
|
appDir: appDirectory,
|
|
@@ -70,9 +68,11 @@ export const bffPlugin = () => ({
|
|
|
70
68
|
port,
|
|
71
69
|
target: name,
|
|
72
70
|
// Internal field
|
|
73
|
-
requestCreator:
|
|
71
|
+
requestCreator: bff === null || bff === void 0 ? void 0 : bff.requestCreator,
|
|
74
72
|
httpMethodDecider
|
|
75
73
|
});
|
|
74
|
+
chain.resolve.alias.set("@api", apiDirectory);
|
|
75
|
+
chain.resolve.alias.set("@modern-js/runtime/bff", isServer ? require.resolve("@modern-js/create-request/server") : require.resolve("@modern-js/create-request/client"));
|
|
76
76
|
}
|
|
77
77
|
},
|
|
78
78
|
source: {
|
|
@@ -84,10 +84,9 @@ export const bffPlugin = () => ({
|
|
|
84
84
|
};
|
|
85
85
|
},
|
|
86
86
|
modifyServerRoutes({ routes }) {
|
|
87
|
-
var _bff, _bff1;
|
|
88
87
|
const modernConfig = api.useResolvedConfigContext();
|
|
89
88
|
const { bff } = modernConfig || {};
|
|
90
|
-
const prefix = (
|
|
89
|
+
const prefix = (bff === null || bff === void 0 ? void 0 : bff.prefix) || "/api";
|
|
91
90
|
const prefixList = [];
|
|
92
91
|
if (Array.isArray(prefix)) {
|
|
93
92
|
prefixList.push(...prefix);
|
|
@@ -101,7 +100,7 @@ export const bffPlugin = () => ({
|
|
|
101
100
|
isSPA: false,
|
|
102
101
|
isSSR: false
|
|
103
102
|
}));
|
|
104
|
-
if (
|
|
103
|
+
if (bff === null || bff === void 0 ? void 0 : bff.enableHandleWeb) {
|
|
105
104
|
return {
|
|
106
105
|
routes: routes.map((route) => {
|
|
107
106
|
return {
|
|
@@ -164,4 +163,8 @@ export const bffPlugin = () => ({
|
|
|
164
163
|
};
|
|
165
164
|
}
|
|
166
165
|
});
|
|
167
|
-
|
|
166
|
+
var cli_default = bffPlugin;
|
|
167
|
+
export {
|
|
168
|
+
bffPlugin,
|
|
169
|
+
cli_default as default
|
|
170
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
const API_APP_NAME = "_app";
|
|
2
|
+
const BUILD_FILES = [
|
|
3
3
|
"**/*.[tj]sx?",
|
|
4
4
|
"!**/*.test.jsx?",
|
|
5
5
|
"!**/*.test.tsx?",
|
|
@@ -8,3 +8,7 @@ export const BUILD_FILES = [
|
|
|
8
8
|
"!__tests__/*.tsx?",
|
|
9
9
|
"!__tests__/*.jsx?"
|
|
10
10
|
];
|
|
11
|
+
export {
|
|
12
|
+
API_APP_NAME,
|
|
13
|
+
BUILD_FILES
|
|
14
|
+
};
|
package/dist/esm-node/helper.js
CHANGED
package/dist/esm-node/loader.js
CHANGED
package/dist/esm-node/server.js
CHANGED
|
@@ -16,7 +16,7 @@ const createTransformAPI = (storage) => ({
|
|
|
16
16
|
storage.middlewares.push(fn);
|
|
17
17
|
}
|
|
18
18
|
});
|
|
19
|
-
|
|
19
|
+
var server_default = () => ({
|
|
20
20
|
name: "@modern-js/plugin-bff",
|
|
21
21
|
setup: (api) => {
|
|
22
22
|
const storage = new Storage();
|
|
@@ -70,3 +70,6 @@ export default () => ({
|
|
|
70
70
|
};
|
|
71
71
|
}
|
|
72
72
|
});
|
|
73
|
+
export {
|
|
74
|
+
server_default as default
|
|
75
|
+
};
|
package/package.json
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"modern",
|
|
16
16
|
"modern.js"
|
|
17
17
|
],
|
|
18
|
-
"version": "2.
|
|
18
|
+
"version": "2.36.0",
|
|
19
19
|
"jsnext:source": "./src/cli.ts",
|
|
20
20
|
"types": "./dist/types/cli.d.ts",
|
|
21
21
|
"main": "./dist/cjs/cli.js",
|
|
@@ -57,10 +57,10 @@
|
|
|
57
57
|
"dependencies": {
|
|
58
58
|
"@babel/core": "^7.22.15",
|
|
59
59
|
"@swc/helpers": "0.5.1",
|
|
60
|
-
"@modern-js/
|
|
61
|
-
"@modern-js/
|
|
62
|
-
"@modern-js/server-utils": "2.
|
|
63
|
-
"@modern-js/utils": "2.
|
|
60
|
+
"@modern-js/bff-core": "2.36.0",
|
|
61
|
+
"@modern-js/create-request": "2.36.0",
|
|
62
|
+
"@modern-js/server-utils": "2.36.0",
|
|
63
|
+
"@modern-js/utils": "2.36.0"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
66
|
"@types/babel__core": "^7.20.0",
|
|
@@ -71,14 +71,14 @@
|
|
|
71
71
|
"ts-jest": "^29.1.0",
|
|
72
72
|
"typescript": "^5",
|
|
73
73
|
"webpack": "^5.88.1",
|
|
74
|
-
"@modern-js/runtime": "2.
|
|
75
|
-
"@modern-js/core": "2.
|
|
76
|
-
"@modern-js/bff-runtime": "2.
|
|
77
|
-
"@modern-js/server-core": "2.
|
|
78
|
-
"@modern-js/types": "2.
|
|
79
|
-
"@modern-js/app-tools": "2.
|
|
80
|
-
"@scripts/
|
|
81
|
-
"@scripts/
|
|
74
|
+
"@modern-js/runtime": "2.36.0",
|
|
75
|
+
"@modern-js/core": "2.36.0",
|
|
76
|
+
"@modern-js/bff-runtime": "2.36.0",
|
|
77
|
+
"@modern-js/server-core": "2.36.0",
|
|
78
|
+
"@modern-js/types": "2.36.0",
|
|
79
|
+
"@modern-js/app-tools": "2.36.0",
|
|
80
|
+
"@scripts/build": "2.36.0",
|
|
81
|
+
"@scripts/jest-config": "2.36.0"
|
|
82
82
|
},
|
|
83
83
|
"sideEffects": false,
|
|
84
84
|
"publishConfig": {
|
package/types.d.ts
ADDED