@modern-js/plugin-bff 1.0.0-rc.9 → 1.1.1

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.
@@ -0,0 +1 @@
1
+ export * from '/github/workspace/packages/cli/plugin-runtime'
package/CHANGELOG.md CHANGED
@@ -1,5 +1,343 @@
1
1
  # @modern-js/plugin-bff
2
2
 
3
+ ## 1.1.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 0fa83663: support more .env files
8
+ - Updated dependencies [6f7fe574]
9
+ - Updated dependencies [b011e0c5]
10
+ - Updated dependencies [0fa83663]
11
+ - Updated dependencies [f594fbc8]
12
+ - Updated dependencies [395beb1e]
13
+ - @modern-js/core@1.1.2
14
+ - @modern-js/babel-preset-lib@1.1.1
15
+ - @modern-js/server-utils@1.1.1
16
+ - @modern-js/bff-utils@1.1.1
17
+ - @modern-js/create-request@1.1.1
18
+ - @modern-js/server-plugin@1.1.1
19
+ - @modern-js/babel-chain@1.1.1
20
+ - @modern-js/babel-compiler@1.1.2
21
+ - @modern-js/utils@1.1.2
22
+
23
+ ## 1.1.0
24
+
25
+ ### Minor Changes
26
+
27
+ - 96119db2: Relese v1.1.0### Patch Changes
28
+
29
+ - Updated dependencies [96119db2]
30
+ - @modern-js/babel-preset-lib@1.1.0
31
+ - @modern-js/core@1.1.0
32
+ - @modern-js/bff-utils@1.1.0
33
+ - @modern-js/create-request@1.1.0
34
+ - @modern-js/server-plugin@1.1.0
35
+ - @modern-js/server-utils@1.1.0
36
+ - @modern-js/babel-chain@1.1.0
37
+ - @modern-js/babel-compiler@1.1.0
38
+ - @modern-js/utils@1.1.0
39
+
40
+ ## 1.0.0
41
+
42
+ ### Patch Changes
43
+
44
+ - 224f7fe: fix server route match
45
+ - 30ac27c: feat: add generator package description
46
+ - 0fd196e: feat: fix bugs
47
+ - 204c626: feat: initial
48
+ - 63be0a5: fix: #118 #104
49
+ - Updated dependencies [224f7fe]
50
+ - Updated dependencies [30ac27c]
51
+ - Updated dependencies [0fd196e]
52
+ - Updated dependencies [204c626]
53
+ - Updated dependencies [63be0a5]
54
+ - @modern-js/babel-preset-lib@1.0.0
55
+ - @modern-js/core@1.0.0
56
+ - @modern-js/bff-utils@1.0.0
57
+ - @modern-js/server-plugin@1.0.0
58
+ - @modern-js/server-utils@1.0.0
59
+ - @modern-js/babel-chain@1.0.0
60
+ - @modern-js/babel-compiler@1.0.0
61
+ - @modern-js/utils@1.0.0
62
+
63
+ ## 1.0.0-rc.23
64
+
65
+ ### Patch Changes
66
+
67
+ - 224f7fe: fix server route match
68
+ - 30ac27c: feat: add generator package description
69
+ - 0fd196e: feat: fix bugs
70
+ - 204c626: feat: initial
71
+ - 63be0a5: fix: #118 #104
72
+ - Updated dependencies [224f7fe]
73
+ - Updated dependencies [30ac27c]
74
+ - Updated dependencies [0fd196e]
75
+ - Updated dependencies [204c626]
76
+ - Updated dependencies [63be0a5]
77
+ - @modern-js/babel-preset-lib@1.0.0-rc.23
78
+ - @modern-js/core@1.0.0-rc.23
79
+ - @modern-js/bff-utils@1.0.0-rc.23
80
+ - @modern-js/server-plugin@1.0.0-rc.23
81
+ - @modern-js/server-utils@1.0.0-rc.23
82
+ - @modern-js/babel-chain@1.0.0-rc.23
83
+ - @modern-js/babel-compiler@1.0.0-rc.23
84
+ - @modern-js/utils@1.0.0-rc.23
85
+
86
+ ## 1.0.0-rc.22
87
+
88
+ ### Patch Changes
89
+
90
+ - 224f7fe: fix server route match
91
+ - 30ac27c: feat: add generator package description
92
+ - 0fd196e: feat: fix bugs
93
+ - 204c626: feat: initial
94
+ - 63be0a5: fix: #118 #104
95
+ - Updated dependencies [224f7fe]
96
+ - Updated dependencies [30ac27c]
97
+ - Updated dependencies [0fd196e]
98
+ - Updated dependencies [204c626]
99
+ - Updated dependencies [63be0a5]
100
+ - @modern-js/babel-preset-lib@1.0.0-rc.22
101
+ - @modern-js/core@1.0.0-rc.22
102
+ - @modern-js/bff-utils@1.0.0-rc.22
103
+ - @modern-js/server-plugin@1.0.0-rc.22
104
+ - @modern-js/server-utils@1.0.0-rc.22
105
+ - @modern-js/babel-chain@1.0.0-rc.22
106
+ - @modern-js/babel-compiler@1.0.0-rc.22
107
+ - @modern-js/utils@1.0.0-rc.22
108
+
109
+ ## 1.0.0-rc.21
110
+
111
+ ### Patch Changes
112
+
113
+ - 224f7fe: fix server route match
114
+ - 30ac27c: feat: add generator package description
115
+ - 0fd196e: feat: fix bugs
116
+ - 204c626: feat: initial
117
+ - 63be0a5: fix: #118 #104
118
+ - Updated dependencies [224f7fe]
119
+ - Updated dependencies [30ac27c]
120
+ - Updated dependencies [0fd196e]
121
+ - Updated dependencies [204c626]
122
+ - Updated dependencies [63be0a5]
123
+ - @modern-js/babel-preset-lib@1.0.0-rc.21
124
+ - @modern-js/core@1.0.0-rc.21
125
+ - @modern-js/bff-utils@1.0.0-rc.21
126
+ - @modern-js/server-plugin@1.0.0-rc.21
127
+ - @modern-js/server-utils@1.0.0-rc.21
128
+ - @modern-js/babel-chain@1.0.0-rc.21
129
+ - @modern-js/babel-compiler@1.0.0-rc.21
130
+ - @modern-js/utils@1.0.0-rc.21
131
+
132
+ ## 1.0.0-rc.20
133
+
134
+ ### Patch Changes
135
+
136
+ - 224f7fe: fix server route match
137
+ - 30ac27c: feat: add generator package description
138
+ - feat: fix bugs
139
+ - 204c626: feat: initial
140
+ - 63be0a5: fix: #118 #104
141
+ - Updated dependencies [224f7fe]
142
+ - Updated dependencies [30ac27c]
143
+ - Updated dependencies [undefined]
144
+ - Updated dependencies [204c626]
145
+ - Updated dependencies [63be0a5]
146
+ - @modern-js/babel-preset-lib@1.0.0-rc.20
147
+ - @modern-js/core@1.0.0-rc.20
148
+ - @modern-js/bff-utils@1.0.0-rc.20
149
+ - @modern-js/server-plugin@1.0.0-rc.20
150
+ - @modern-js/server-utils@1.0.0-rc.20
151
+ - @modern-js/babel-chain@1.0.0-rc.20
152
+ - @modern-js/babel-compiler@1.0.0-rc.20
153
+ - @modern-js/utils@1.0.0-rc.20
154
+
155
+ ## 1.0.0-rc.19
156
+
157
+ ### Patch Changes
158
+
159
+ - 224f7fe: fix server route match
160
+ - 30ac27c: feat: add generator package description
161
+ - 204c626: feat: initial
162
+ - 63be0a5: fix: #118 #104
163
+ - Updated dependencies [224f7fe]
164
+ - Updated dependencies [30ac27c]
165
+ - Updated dependencies [204c626]
166
+ - Updated dependencies [63be0a5]
167
+ - @modern-js/babel-preset-lib@1.0.0-rc.19
168
+ - @modern-js/core@1.0.0-rc.19
169
+ - @modern-js/bff-utils@1.0.0-rc.19
170
+ - @modern-js/server-plugin@1.0.0-rc.19
171
+ - @modern-js/server-utils@1.0.0-rc.19
172
+ - @modern-js/babel-chain@1.0.0-rc.19
173
+ - @modern-js/babel-compiler@1.0.0-rc.19
174
+ - @modern-js/utils@1.0.0-rc.19
175
+
176
+ ## 1.0.0-rc.18
177
+
178
+ ### Patch Changes
179
+
180
+ - 224f7fe: fix server route match
181
+ - 30ac27c: feat: add generator package description
182
+ - 204c626: feat: initial
183
+ - 63be0a5: fix: #118 #104
184
+ - Updated dependencies [224f7fe]
185
+ - Updated dependencies [30ac27c]
186
+ - Updated dependencies [204c626]
187
+ - Updated dependencies [63be0a5]
188
+ - @modern-js/babel-preset-lib@1.0.0-rc.18
189
+ - @modern-js/core@1.0.0-rc.18
190
+ - @modern-js/bff-utils@1.0.0-rc.18
191
+ - @modern-js/server-plugin@1.0.0-rc.18
192
+ - @modern-js/server-utils@1.0.0-rc.18
193
+ - @modern-js/babel-chain@1.0.0-rc.18
194
+ - @modern-js/babel-compiler@1.0.0-rc.18
195
+ - @modern-js/utils@1.0.0-rc.18
196
+
197
+ ## 1.0.0-rc.17
198
+
199
+ ### Patch Changes
200
+
201
+ - 224f7fe: fix server route match
202
+ - 30ac27c: feat: add generator package description
203
+ - 204c626: feat: initial
204
+ - fix: #118 #104
205
+ - Updated dependencies [224f7fe]
206
+ - Updated dependencies [30ac27c]
207
+ - Updated dependencies [204c626]
208
+ - Updated dependencies [undefined]
209
+ - @modern-js/babel-preset-lib@1.0.0-rc.17
210
+ - @modern-js/core@1.0.0-rc.17
211
+ - @modern-js/bff-utils@1.0.0-rc.17
212
+ - @modern-js/server-plugin@1.0.0-rc.17
213
+ - @modern-js/server-utils@1.0.0-rc.17
214
+ - @modern-js/babel-chain@1.0.0-rc.17
215
+ - @modern-js/babel-compiler@1.0.0-rc.17
216
+ - @modern-js/utils@1.0.0-rc.17
217
+
218
+ ## 1.0.0-rc.16
219
+
220
+ ### Patch Changes
221
+
222
+ - 224f7fe: fix server route match
223
+ - 30ac27c: feat: add generator package description
224
+ - 204c626: feat: initial
225
+ - Updated dependencies [224f7fe]
226
+ - Updated dependencies [30ac27c]
227
+ - Updated dependencies [204c626]
228
+ - @modern-js/babel-preset-lib@1.0.0-rc.16
229
+ - @modern-js/core@1.0.0-rc.16
230
+ - @modern-js/bff-utils@1.0.0-rc.16
231
+ - @modern-js/server-plugin@1.0.0-rc.16
232
+ - @modern-js/server-utils@1.0.0-rc.16
233
+ - @modern-js/babel-chain@1.0.0-rc.16
234
+ - @modern-js/babel-compiler@1.0.0-rc.16
235
+ - @modern-js/utils@1.0.0-rc.16
236
+
237
+ ## 1.0.0-rc.15
238
+
239
+ ### Patch Changes
240
+
241
+ - 224f7fe: fix server route match
242
+ - 30ac27c: feat: add generator package description
243
+ - 204c626: feat: initial
244
+ - Updated dependencies [224f7fe]
245
+ - Updated dependencies [30ac27c]
246
+ - Updated dependencies [204c626]
247
+ - @modern-js/babel-preset-lib@1.0.0-rc.15
248
+ - @modern-js/core@1.0.0-rc.15
249
+ - @modern-js/bff-utils@1.0.0-rc.15
250
+ - @modern-js/server-plugin@1.0.0-rc.15
251
+ - @modern-js/server-utils@1.0.0-rc.15
252
+ - @modern-js/babel-chain@1.0.0-rc.15
253
+ - @modern-js/babel-compiler@1.0.0-rc.15
254
+ - @modern-js/utils@1.0.0-rc.15
255
+
256
+ ## 1.0.0-rc.14
257
+
258
+ ### Patch Changes
259
+
260
+ - 224f7fe: fix server route match
261
+ - 204c626: feat: initial
262
+ - Updated dependencies [224f7fe]
263
+ - Updated dependencies [204c626]
264
+ - @modern-js/babel-preset-lib@1.0.0-rc.14
265
+ - @modern-js/core@1.0.0-rc.14
266
+ - @modern-js/bff-utils@1.0.0-rc.14
267
+ - @modern-js/server-plugin@1.0.0-rc.14
268
+ - @modern-js/server-utils@1.0.0-rc.14
269
+ - @modern-js/babel-chain@1.0.0-rc.14
270
+ - @modern-js/babel-compiler@1.0.0-rc.14
271
+ - @modern-js/utils@1.0.0-rc.14
272
+
273
+ ## 1.0.0-rc.13
274
+
275
+ ### Patch Changes
276
+
277
+ - 224f7fe: fix server route match
278
+ - 204c626: feat: initial
279
+ - Updated dependencies [224f7fe]
280
+ - Updated dependencies [204c626]
281
+ - @modern-js/babel-preset-lib@1.0.0-rc.13
282
+ - @modern-js/core@1.0.0-rc.13
283
+ - @modern-js/bff-utils@1.0.0-rc.13
284
+ - @modern-js/server-plugin@1.0.0-rc.13
285
+ - @modern-js/server-utils@1.0.0-rc.13
286
+ - @modern-js/babel-chain@1.0.0-rc.13
287
+ - @modern-js/babel-compiler@1.0.0-rc.13
288
+ - @modern-js/utils@1.0.0-rc.13
289
+
290
+ ## 1.0.0-rc.12
291
+
292
+ ### Patch Changes
293
+
294
+ - 224f7fe: fix server route match
295
+ - 204c626: feat: initial
296
+ - Updated dependencies [224f7fe]
297
+ - Updated dependencies [204c626]
298
+ - @modern-js/babel-preset-lib@1.0.0-rc.12
299
+ - @modern-js/core@1.0.0-rc.12
300
+ - @modern-js/bff-utils@1.0.0-rc.12
301
+ - @modern-js/server-plugin@1.0.0-rc.12
302
+ - @modern-js/server-utils@1.0.0-rc.12
303
+ - @modern-js/babel-chain@1.0.0-rc.12
304
+ - @modern-js/babel-compiler@1.0.0-rc.12
305
+ - @modern-js/utils@1.0.0-rc.12
306
+
307
+ ## 1.0.0-rc.11
308
+
309
+ ### Patch Changes
310
+
311
+ - 224f7fe: fix server route match
312
+ - 204c626: feat: initial
313
+ - Updated dependencies [224f7fe]
314
+ - Updated dependencies [204c626]
315
+ - @modern-js/babel-preset-lib@1.0.0-rc.11
316
+ - @modern-js/core@1.0.0-rc.11
317
+ - @modern-js/bff-utils@1.0.0-rc.11
318
+ - @modern-js/server-plugin@1.0.0-rc.11
319
+ - @modern-js/server-utils@1.0.0-rc.11
320
+ - @modern-js/babel-chain@1.0.0-rc.11
321
+ - @modern-js/babel-compiler@1.0.0-rc.11
322
+ - @modern-js/utils@1.0.0-rc.11
323
+
324
+ ## 1.0.0-rc.10
325
+
326
+ ### Patch Changes
327
+
328
+ - 224f7fe: fix server route match
329
+ - 204c626: feat: initial
330
+ - Updated dependencies [224f7fe]
331
+ - Updated dependencies [204c626]
332
+ - @modern-js/babel-preset-lib@1.0.0-rc.10
333
+ - @modern-js/core@1.0.0-rc.10
334
+ - @modern-js/bff-utils@1.0.0-rc.10
335
+ - @modern-js/server-plugin@1.0.0-rc.10
336
+ - @modern-js/server-utils@1.0.0-rc.10
337
+ - @modern-js/babel-chain@1.0.0-rc.10
338
+ - @modern-js/babel-compiler@1.0.0-rc.10
339
+ - @modern-js/utils@1.0.0-rc.10
340
+
3
341
  ## 1.0.0-rc.9
4
342
 
5
343
  ### Patch Changes
package/README.md CHANGED
@@ -2,31 +2,29 @@
2
2
  <p align="center">
3
3
  <a href="https://modernjs.dev" target="blank"><img src="https://lf3-static.bytednsdoc.com/obj/eden-cn/ylaelkeh7nuhfnuhf/modernjs-cover.png" width="300" alt="Modern.js Logo" /></a>
4
4
  </p>
5
+ <p align="center">
6
+ 现代 Web 工程体系
7
+ <br/>
8
+ <a href="https://modernjs.dev" target="blank">
9
+ modernjs.dev
10
+ </a>
11
+ </p>
12
+ <p align="center">
13
+ The meta-framework suite designed from scratch for frontend-focused modern web development
14
+ </p>
5
15
 
6
- <p align="center">现代 Web 工程体系</p>
7
-
8
- ## 背景
9
- - [迈入现代 Web 开发](https://zhuanlan.zhihu.com/p/386607009)
10
- - [现代 Web 开发者问卷调查报告](https://zhuanlan.zhihu.com/p/403206195)
11
-
12
- ## 计划
13
-
14
- Modern.js 的 1.0.0.rc 版已经发到 npm,目前在做测试改进,README 文档之后统一提供(现阶段加入测试和开发,可以发 [issue](https://github.com/modern-js-dev/modern.js/issues) 留微信联系),完整的文档站计划在10月14日上线
15
-
16
-
17
-
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
-
16
+ # Introduction
27
17
 
18
+ > The doc site ([modernjs.dev](https://modernjs.dev)) and articles are only available in Chinese for now, we are planning to add English versions soon.
28
19
 
20
+ - [Modern.js: Hello, World!](https://zhuanlan.zhihu.com/p/426707646)
29
21
 
22
+ ## Getting Started
30
23
 
24
+ - [Quick Start](https://modernjs.dev/docs/start)
25
+ - [Guides](https://modernjs.dev/docs/guides)
26
+ - [API References](https://modernjs.dev/docs/apis)
31
27
 
28
+ ## Contributing
32
29
 
30
+ - [Contributing Guide](https://github.com/modern-js-dev/modern.js/blob/main/CONTRIBUTING.md)
@@ -1,7 +1,8 @@
1
1
  import path from 'path';
2
+ import fs from 'fs-extra';
2
3
  import { createPlugin, useAppContext, useResolvedConfigContext } from '@modern-js/core';
3
4
  import { compiler } from '@modern-js/babel-compiler';
4
- import { PLUGIN_SCHEMAS, fs } from '@modern-js/utils';
5
+ import { PLUGIN_SCHEMAS, normalizeOutputPath } from '@modern-js/utils';
5
6
  import { resolveBabelConfig } from '@modern-js/server-utils';
6
7
  import { API_DIR } from "./constants";
7
8
  const DEFAULT_API_PREFIX = '/api';
@@ -33,8 +34,9 @@ export default createPlugin(() => ({
33
34
  } = bff || {};
34
35
  const prefix = (bff === null || bff === void 0 ? void 0 : bff.prefix) || DEFAULT_API_PREFIX;
35
36
  const rootDir = path.resolve(appDirectory, API_DIR);
36
- const apiRegexp = new RegExp(`${appDirectory}/api/.*(.[tj]s)$`);
37
- chain.module.rule('loaders').oneOf('bff-client').before('fallback').test(apiRegexp).use('custom-loader').loader(require.resolve("./loader")).options({
37
+ chain.resolve.alias.set('@api', rootDir);
38
+ const apiRegexp = new RegExp(normalizeOutputPath(`${appDirectory}${path.sep}api${path.sep}.*(.[tj]s)$`));
39
+ chain.module.rule('loaders').oneOf('bff-client').before('fallback').test(apiRegexp).use('custom-loader').loader(require.resolve("./loader").replace(/\\/g, '/')).options({
38
40
  prefix,
39
41
  apiDir: rootDir,
40
42
  port,
@@ -44,9 +46,7 @@ export default createPlugin(() => ({
44
46
  }
45
47
  },
46
48
  source: {
47
- moduleScopes: scopes => {
48
- scopes.push('./api');
49
- }
49
+ moduleScopes: [`./${API_DIR}`]
50
50
  }
51
51
  };
52
52
  },
@@ -26,6 +26,7 @@ async function loader(source) {
26
26
  options.requestCreator = draftOptions.requestCreator;
27
27
  }
28
28
 
29
+ options.requireResolve = require.resolve;
29
30
  const result = await generateClient(options);
30
31
 
31
32
  if (result.isOk) {
@@ -7,6 +7,8 @@ exports.default = void 0;
7
7
 
8
8
  var _path = _interopRequireDefault(require("path"));
9
9
 
10
+ var _fsExtra = _interopRequireDefault(require("fs-extra"));
11
+
10
12
  var _core = require("@modern-js/core");
11
13
 
12
14
  var _babelCompiler = require("@modern-js/babel-compiler");
@@ -51,8 +53,9 @@ var _default = (0, _core.createPlugin)(() => ({
51
53
 
52
54
  const rootDir = _path.default.resolve(appDirectory, _constants.API_DIR);
53
55
 
54
- const apiRegexp = new RegExp(`${appDirectory}/api/.*(.[tj]s)$`);
55
- chain.module.rule('loaders').oneOf('bff-client').before('fallback').test(apiRegexp).use('custom-loader').loader(require.resolve("./loader")).options({
56
+ chain.resolve.alias.set('@api', rootDir);
57
+ const apiRegexp = new RegExp((0, _utils.normalizeOutputPath)(`${appDirectory}${_path.default.sep}api${_path.default.sep}.*(.[tj]s)$`));
58
+ chain.module.rule('loaders').oneOf('bff-client').before('fallback').test(apiRegexp).use('custom-loader').loader(require.resolve("./loader").replace(/\\/g, '/')).options({
56
59
  prefix,
57
60
  apiDir: rootDir,
58
61
  port,
@@ -62,9 +65,7 @@ var _default = (0, _core.createPlugin)(() => ({
62
65
  }
63
66
  },
64
67
  source: {
65
- moduleScopes: scopes => {
66
- scopes.push('./api');
67
- }
68
+ moduleScopes: [`./${_constants.API_DIR}`]
68
69
  }
69
70
  };
70
71
  },
@@ -129,8 +130,8 @@ var _default = (0, _core.createPlugin)(() => ({
129
130
  ignore: [`**/__tests__/**`, '**/typings/**', '*.d.ts']
130
131
  }, babelConfig);
131
132
 
132
- if (await _utils.fs.pathExists(rootDir)) {
133
- await _utils.fs.copy(rootDir, distDir, {
133
+ if (await _fsExtra.default.pathExists(rootDir)) {
134
+ await _fsExtra.default.copy(rootDir, distDir, {
134
135
  filter: src => !['.ts', '.js'].includes(_path.default.extname(src)) && src !== tsconfigPath
135
136
  });
136
137
  }
@@ -34,6 +34,7 @@ async function loader(source) {
34
34
  options.requestCreator = draftOptions.requestCreator;
35
35
  }
36
36
 
37
+ options.requireResolve = require.resolve;
37
38
  const result = await (0, _bffUtils.generateClient)(options);
38
39
 
39
40
  if (result.isOk) {
package/package.json CHANGED
@@ -1,6 +1,17 @@
1
1
  {
2
2
  "name": "@modern-js/plugin-bff",
3
- "version": "1.0.0-rc.9",
3
+ "description": "The meta-framework suite designed from scratch for frontend-focused modern web development.",
4
+ "homepage": "https://modernjs.dev",
5
+ "bugs": "https://github.com/modern-js-dev/modern.js/issues",
6
+ "repository": "modern-js-dev/modern.js",
7
+ "license": "MIT",
8
+ "keywords": [
9
+ "react",
10
+ "framework",
11
+ "modern",
12
+ "modern.js"
13
+ ],
14
+ "version": "1.1.1",
4
15
  "jsnext:source": "./src/index.ts",
5
16
  "types": "./dist/types/index.d.ts",
6
17
  "main": "./dist/js/node/index.js",
@@ -33,23 +44,26 @@
33
44
  "dependencies": {
34
45
  "@babel/core": "^7.15.5",
35
46
  "@babel/runtime": "^7",
36
- "@modern-js/babel-chain": "^1.0.0-rc.9",
37
- "@modern-js/babel-compiler": "^1.0.0-rc.9",
38
- "@modern-js/babel-preset-lib": "^1.0.0-rc.9",
39
- "@modern-js/core": "^1.0.0-rc.9",
40
- "@modern-js/server-plugin": "^1.0.0-rc.9",
41
- "@modern-js/server-utils": "^1.0.0-rc.9",
42
- "@modern-js/utils": "^1.0.0-rc.9",
47
+ "@modern-js/babel-chain": "^1.1.1",
48
+ "@modern-js/babel-compiler": "^1.1.2",
49
+ "@modern-js/babel-preset-lib": "^1.1.1",
50
+ "@modern-js/create-request": "^1.1.1",
51
+ "@modern-js/server-utils": "^1.1.1",
52
+ "@modern-js/utils": "^1.1.2",
53
+ "fs-extra": "^10.0.0",
43
54
  "loader-utils": "^2.0.0"
44
55
  },
45
56
  "devDependencies": {
46
- "@modern-js/plugin-testing": "^1.0.0-rc.9",
47
- "@modern-js/plugin-analyze": "^1.0.0-rc.9",
48
- "@modern-js/bff-utils": "^1.0.0-rc.9",
49
- "@modern-js/create-request": "^1.0.0-rc.9",
50
- "@modern-js/runtime": "^1.0.0-rc.9",
51
- "@modern-js/types": "^1.0.0-rc.9",
57
+ "@modern-js/bff-utils": "^1.1.1",
58
+ "@modern-js/core": "^1.1.2",
59
+ "@modern-js/module-tools": "^1.1.0",
60
+ "@modern-js/plugin-analyze": "^1.1.1",
61
+ "@modern-js/plugin-testing": "^1.1.0",
62
+ "@modern-js/runtime": "^1.1.1",
63
+ "@modern-js/server-plugin": "^1.1.1",
64
+ "@modern-js/types": "^1.1.2",
52
65
  "@types/babel__core": "^7.1.15",
66
+ "@types/fs-extra": "^9.0.13",
53
67
  "@types/jest": "^26",
54
68
  "@types/loader-utils": "^2.0.3",
55
69
  "@types/node": "^14",
@@ -57,11 +71,12 @@
57
71
  "ts-jest": "^27.0.5",
58
72
  "typescript": "^4",
59
73
  "webpack": "^5.54.0",
60
- "webpack-chain": "^6.5.1",
61
- "@modern-js/module-tools": "^1.0.0-rc.9"
74
+ "webpack-chain": "^6.5.1"
62
75
  },
63
76
  "peerDependencies": {
64
- "@modern-js/bff-utils": "^1.0.0-rc.9"
77
+ "@modern-js/bff-utils": "^1.1.1",
78
+ "@modern-js/core": "^1.1.2",
79
+ "@modern-js/server-plugin": "^1.1.1"
65
80
  },
66
81
  "modernConfig": {
67
82
  "output": {
package/src/cli.ts CHANGED
@@ -1,16 +1,17 @@
1
1
  import path from 'path';
2
+ import fs from 'fs-extra';
2
3
  import {
3
4
  createPlugin,
4
5
  useAppContext,
5
6
  useResolvedConfigContext,
6
7
  } from '@modern-js/core';
7
8
  import { compiler } from '@modern-js/babel-compiler';
8
- import { PLUGIN_SCHEMAS, fs } from '@modern-js/utils';
9
+ import { PLUGIN_SCHEMAS, normalizeOutputPath } from '@modern-js/utils';
10
+ import { resolveBabelConfig } from '@modern-js/server-utils';
9
11
 
10
12
  import type { Configuration } from 'webpack';
11
13
  import type Chain from 'webpack-chain';
12
14
  import type { ServerRoute } from '@modern-js/types';
13
- import { resolveBabelConfig } from '@modern-js/server-utils';
14
15
  import { API_DIR } from './constants';
15
16
 
16
17
  declare module '@modern-js/core' {
@@ -48,14 +49,20 @@ export default createPlugin(
48
49
 
49
50
  const rootDir = path.resolve(appDirectory, API_DIR);
50
51
 
51
- const apiRegexp = new RegExp(`${appDirectory}/api/.*(.[tj]s)$`);
52
+ chain.resolve.alias.set('@api', rootDir);
53
+
54
+ const apiRegexp = new RegExp(
55
+ normalizeOutputPath(
56
+ `${appDirectory}${path.sep}api${path.sep}.*(.[tj]s)$`,
57
+ ),
58
+ );
52
59
  chain.module
53
60
  .rule('loaders')
54
61
  .oneOf('bff-client')
55
62
  .before('fallback')
56
63
  .test(apiRegexp)
57
64
  .use('custom-loader')
58
- .loader(require.resolve('./loader'))
65
+ .loader(require.resolve('./loader').replace(/\\/g, '/'))
59
66
  .options({
60
67
  prefix,
61
68
  apiDir: rootDir,
@@ -66,9 +73,7 @@ export default createPlugin(
66
73
  },
67
74
  },
68
75
  source: {
69
- moduleScopes: (scopes: any) => {
70
- scopes.push('./api');
71
- },
76
+ moduleScopes: [`./${API_DIR}`],
72
77
  },
73
78
  };
74
79
  },
package/src/loader.ts CHANGED
@@ -37,6 +37,8 @@ async function loader(this: LoaderContext<APILoaderOptions>, source: string) {
37
37
  options.requestCreator = draftOptions.requestCreator as string;
38
38
  }
39
39
 
40
+ options.requireResolve = require.resolve;
41
+
40
42
  const result = await generateClient(options);
41
43
 
42
44
  if (result.isOk) {
@@ -0,0 +1,6 @@
1
+ module.exports = {
2
+ extends: ['@modern-js'],
3
+ parserOptions: {
4
+ project: require.resolve('./tsconfig.json'),
5
+ },
6
+ };
@@ -4,7 +4,9 @@ exports[`bff cli plugin config 1`] = `
4
4
  Array [
5
5
  Object {
6
6
  "source": Object {
7
- "moduleScopes": [Function],
7
+ "moduleScopes": Array [
8
+ "./api",
9
+ ],
8
10
  },
9
11
  "tools": Object {
10
12
  "webpack": [Function],
@@ -13,34 +15,6 @@ Array [
13
15
  ]
14
16
  `;
15
17
 
16
- exports[`bff cli plugin config webpack chain 1`] = `
17
- Object {
18
- "module": Object {
19
- "rules": Array [
20
- Object {
21
- "oneOf": Array [
22
- Object {
23
- "test": /\\.\\\\/fixtures\\\\/function\\\\/api\\\\/\\.\\*\\(\\.\\[tj\\]s\\)\\$/,
24
- "use": Array [
25
- Object {
26
- "loader": "/packages/cli/plugin-bff/src/loader.ts",
27
- "options": Object {
28
- "apiDir": "/packages/cli/plugin-bff/fixtures/function/api",
29
- "fetcher": undefined,
30
- "port": 3000,
31
- "prefix": "/api",
32
- "target": undefined,
33
- },
34
- },
35
- ],
36
- },
37
- ],
38
- },
39
- ],
40
- },
41
- }
42
- `;
43
-
44
18
  exports[`bff cli plugin schema 1`] = `
45
19
  Array [
46
20
  Array [
@@ -53,6 +27,9 @@ Array [
53
27
  "prefix": Object {
54
28
  "type": "string",
55
29
  },
30
+ "proxy": Object {
31
+ "type": "object",
32
+ },
56
33
  "requestCreater": Object {
57
34
  "type": "string",
58
35
  },
package/tests/cli.test.ts CHANGED
@@ -4,12 +4,22 @@ import { modifyServerRoutes } from '@modern-js/plugin-analyze';
4
4
  import Chain from 'webpack-chain';
5
5
  import plugin from '../src/cli';
6
6
 
7
- const root = path.resolve(__dirname, '../../../../');
7
+ const root = path.normalize(path.resolve(__dirname, '../../../../'));
8
8
  expect.addSnapshotSerializer({
9
- test: val => typeof val === 'string' && val.includes('modern-js'),
9
+ test: val =>
10
+ typeof val === 'string' &&
11
+ (val.includes('modern.js') ||
12
+ val.includes('node_modules') ||
13
+ val.includes(root)),
10
14
  print: val =>
15
+ // eslint-disable-next-line no-nested-ternary
11
16
  typeof val === 'string'
12
- ? `"${val.replace(root, '').replace(root.replace('/', '\\//'), '')}"`
17
+ ? // eslint-disable-next-line no-nested-ternary
18
+ val.includes('node_modules')
19
+ ? `"${val.replace(/.+node_modules/, '')}"`
20
+ : val.includes('modern.js')
21
+ ? `"${val.replace(/.+modern\.js/, '')}"`
22
+ : `"${val.replace(root, '')}"`
13
23
  : (val as string),
14
24
  });
15
25
 
@@ -43,7 +53,38 @@ describe('bff cli plugin', () => {
43
53
  });
44
54
  manager.run(() => tools.webpack({}, { chain }));
45
55
 
46
- expect(chain.toConfig()).toMatchSnapshot();
56
+ expect(chain.toConfig()).toMatchObject({
57
+ module: {
58
+ rules: [
59
+ {
60
+ oneOf: [
61
+ {
62
+ test: /.\/fixtures\/function\/api\/\.*(\.[tj]s)$/,
63
+ use: [
64
+ {
65
+ loader: require
66
+ .resolve('../src/loader.ts')
67
+ .replace(/\\/g, '/'),
68
+ options: {
69
+ apiDir: path.resolve('./fixtures/function/api'),
70
+ fetcher: undefined,
71
+ port: 3000,
72
+ prefix: '/api',
73
+ target: undefined,
74
+ },
75
+ },
76
+ ],
77
+ },
78
+ ],
79
+ },
80
+ ],
81
+ },
82
+ resolve: {
83
+ alias: {
84
+ '@api': path.resolve('./fixtures/function/api'),
85
+ },
86
+ },
87
+ });
47
88
  });
48
89
 
49
90
  it('server routes', async () => {
@@ -8,9 +8,21 @@ jest.setTimeout(100000);
8
8
 
9
9
  const root = path.resolve(__dirname, '../../../../');
10
10
  expect.addSnapshotSerializer({
11
- test: val => typeof val === 'string' && val.includes('modern-js'),
11
+ test: val =>
12
+ typeof val === 'string' &&
13
+ (val.includes('modern.js') ||
14
+ val.includes('node_modules') ||
15
+ val.includes(root)),
12
16
  print: val =>
13
- typeof val === 'string' ? `"${val.replace(root, '')}"` : (val as string),
17
+ // eslint-disable-next-line no-nested-ternary
18
+ typeof val === 'string'
19
+ ? // eslint-disable-next-line no-nested-ternary
20
+ val.includes('node_modules')
21
+ ? `"${val.replace(/'.+node_modules/, `'`)}"`
22
+ : val.includes('modern.js')
23
+ ? `"${val.replace(/'.+modern\.js/, `'`)}"`
24
+ : `"${val.replace(root, '')}"`
25
+ : (val as string),
14
26
  });
15
27
 
16
28
  describe('bff loader', () => {
@@ -68,7 +80,9 @@ describe('bff loader', () => {
68
80
  prefix: '',
69
81
  port: 80,
70
82
  target: 'client',
71
- fetcher: path.resolve(__dirname, './fixtures/test-fetcher'),
83
+ fetcher: path
84
+ .resolve(__dirname, './fixtures/test-fetcher')
85
+ .replace(/\\/g, '/'),
72
86
  });
73
87
  const output = stats?.toJson({ source: true }).modules?.[0]?.source;
74
88
 
@@ -81,7 +95,9 @@ describe('bff loader', () => {
81
95
  prefix: '',
82
96
  port: 80,
83
97
  target: 'client',
84
- requestCreator: path.resolve(__dirname, './fixtures/test-requestCreator'),
98
+ requestCreator: path
99
+ .resolve(__dirname, './fixtures/test-requestCreator')
100
+ .replace(/\\/g, '/'),
85
101
  });
86
102
  const output = stats?.toJson({ source: true }).modules?.[0]?.source;
87
103