@modern-js/prod-server 1.1.5 → 1.1.7

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 CHANGED
@@ -1,5 +1,22 @@
1
1
  # @modern-js/prod-server
2
2
 
3
+ ## 1.1.7
4
+
5
+ ### Patch Changes
6
+
7
+ - d4afeba71: fix: remove cors for prod-server
8
+
9
+ ## 1.1.6
10
+
11
+ ### Patch Changes
12
+
13
+ - 430d417e: optimize server side hot reload
14
+ - Updated dependencies [6451a098]
15
+ - Updated dependencies [d5a2cfd8]
16
+ - Updated dependencies [437367c6]
17
+ - @modern-js/utils@1.7.6
18
+ - @modern-js/server-core@1.3.5
19
+
3
20
  ## 1.1.5
4
21
 
5
22
  ### Patch Changes
@@ -111,13 +111,7 @@ export class ModernServer {
111
111
  distDir,
112
112
  staticGenerate,
113
113
  conf
114
- } = this; // Todo: why add this middleware
115
-
116
- this.addHandler((ctx, next) => {
117
- ctx.res.setHeader('Access-Control-Allow-Origin', '*');
118
- ctx.res.setHeader('Access-Control-Allow-Credentials', 'false');
119
- next();
120
- });
114
+ } = this;
121
115
  debug('final server conf', this.conf); // proxy handler, each proxy has own handler
122
116
 
123
117
  this.proxyHandler = createProxyHandler((_conf$bff = conf.bff) === null || _conf$bff === void 0 ? void 0 : _conf$bff.proxy);
@@ -167,8 +161,24 @@ export class ModernServer {
167
161
  onListening(_) {// empty
168
162
  }
169
163
 
170
- onServerChange(_) {
171
- this.prepareFrameHandler();
164
+ onServerChange({
165
+ filepath
166
+ }) {
167
+ const {
168
+ pwd
169
+ } = this;
170
+ const {
171
+ api,
172
+ server
173
+ } = AGGRED_DIR;
174
+ const apiPath = path.normalize(path.join(pwd, api));
175
+ const serverPath = path.normalize(path.join(pwd, server));
176
+ const onlyApi = filepath.startsWith(apiPath);
177
+ const onlyWeb = filepath.startsWith(serverPath);
178
+ this.prepareFrameHandler({
179
+ onlyWeb,
180
+ onlyApi
181
+ });
172
182
  } // exposed requestHandler
173
183
 
174
184
 
@@ -217,11 +227,15 @@ export class ModernServer {
217
227
  } // gather frame extension and get framework handler
218
228
 
219
229
 
220
- async prepareFrameHandler() {
230
+ async prepareFrameHandler(options) {
221
231
  const {
222
232
  workDir,
223
233
  runner
224
- } = this; // server hook, gather plugin inject
234
+ } = this;
235
+ const {
236
+ onlyApi,
237
+ onlyWeb
238
+ } = options || {}; // server hook, gather plugin inject
225
239
 
226
240
  const _createMiddlewareColl = createMiddlewareCollecter(),
227
241
  {
@@ -237,12 +251,12 @@ export class ModernServer {
237
251
  const apiDir = path.join(workDir, API_DIR);
238
252
  const serverDir = path.join(workDir, SERVER_DIR); // get api or web server handler from server-framework plugin
239
253
 
240
- if (await fs.pathExists(path.join(serverDir))) {
254
+ if ((await fs.pathExists(path.join(serverDir))) && !onlyApi) {
241
255
  const webExtension = mergeExtension(pluginWebExt);
242
256
  this.frameWebHandler = await this.prepareWebHandler(webExtension);
243
257
  }
244
258
 
245
- if (fs.existsSync(apiDir)) {
259
+ if (fs.existsSync(apiDir) && !onlyWeb) {
246
260
  const mode = fs.existsSync(path.join(apiDir, AGGRED_DIR.lambda)) ? ApiServerMode.frame : ApiServerMode.func;
247
261
  debug('exists api dir', mode); // if use lambda/, mean framework style of writing, then discard user extension
248
262
 
@@ -140,13 +140,7 @@ class ModernServer {
140
140
  distDir,
141
141
  staticGenerate,
142
142
  conf
143
- } = this; // Todo: why add this middleware
144
-
145
- this.addHandler((ctx, next) => {
146
- ctx.res.setHeader('Access-Control-Allow-Origin', '*');
147
- ctx.res.setHeader('Access-Control-Allow-Credentials', 'false');
148
- next();
149
- });
143
+ } = this;
150
144
  (0, _utils2.debug)('final server conf', this.conf); // proxy handler, each proxy has own handler
151
145
 
152
146
  this.proxyHandler = (0, _proxy.createProxyHandler)((_conf$bff = conf.bff) === null || _conf$bff === void 0 ? void 0 : _conf$bff.proxy);
@@ -196,8 +190,27 @@ class ModernServer {
196
190
  onListening(_) {// empty
197
191
  }
198
192
 
199
- onServerChange(_) {
200
- this.prepareFrameHandler();
193
+ onServerChange({
194
+ filepath
195
+ }) {
196
+ const {
197
+ pwd
198
+ } = this;
199
+ const {
200
+ api,
201
+ server
202
+ } = _constants.AGGRED_DIR;
203
+
204
+ const apiPath = _path.default.normalize(_path.default.join(pwd, api));
205
+
206
+ const serverPath = _path.default.normalize(_path.default.join(pwd, server));
207
+
208
+ const onlyApi = filepath.startsWith(apiPath);
209
+ const onlyWeb = filepath.startsWith(serverPath);
210
+ this.prepareFrameHandler({
211
+ onlyWeb,
212
+ onlyApi
213
+ });
201
214
  } // exposed requestHandler
202
215
 
203
216
 
@@ -247,11 +260,15 @@ class ModernServer {
247
260
  } // gather frame extension and get framework handler
248
261
 
249
262
 
250
- async prepareFrameHandler() {
263
+ async prepareFrameHandler(options) {
251
264
  const {
252
265
  workDir,
253
266
  runner
254
- } = this; // server hook, gather plugin inject
267
+ } = this;
268
+ const {
269
+ onlyApi,
270
+ onlyWeb
271
+ } = options || {}; // server hook, gather plugin inject
255
272
 
256
273
  const _createMiddlewareColl = (0, _utils2.createMiddlewareCollecter)(),
257
274
  {
@@ -270,12 +287,12 @@ class ModernServer {
270
287
  const serverDir = _path.default.join(workDir, SERVER_DIR); // get api or web server handler from server-framework plugin
271
288
 
272
289
 
273
- if (await _utils.fs.pathExists(_path.default.join(serverDir))) {
290
+ if ((await _utils.fs.pathExists(_path.default.join(serverDir))) && !onlyApi) {
274
291
  const webExtension = (0, _utils2.mergeExtension)(pluginWebExt);
275
292
  this.frameWebHandler = await this.prepareWebHandler(webExtension);
276
293
  }
277
294
 
278
- if (_utils.fs.existsSync(apiDir)) {
295
+ if (_utils.fs.existsSync(apiDir) && !onlyWeb) {
279
296
  const mode = _utils.fs.existsSync(_path.default.join(apiDir, _constants.AGGRED_DIR.lambda)) ? _constants.ApiServerMode.frame : _constants.ApiServerMode.func;
280
297
  (0, _utils2.debug)('exists api dir', mode); // if use lambda/, mean framework style of writing, then discard user extension
281
298
 
@@ -45,13 +45,20 @@ export declare class ModernServer implements ModernServerInterface {
45
45
  onClose(): Promise<void>;
46
46
  onRepack(_: BuildOptions): void;
47
47
  onListening(_: Server): void;
48
- protected onServerChange(_: Record<string, any>): void;
48
+ protected onServerChange({
49
+ filepath
50
+ }: {
51
+ filepath: string;
52
+ }): void;
49
53
  getRequestHandler(): (req: IncomingMessage, res: ServerResponse, next?: () => void) => void | ServerResponse;
50
54
  createHTTPServer(handler: (req: IncomingMessage, res: ServerResponse, next?: () => void) => void): Promise<Server>;
51
55
  protected getRoutes(): ModernRouteInterface[];
52
56
  protected addHandler(handler: ModernServerHandler): void;
53
57
  protected render404(context: ModernServerContext): void;
54
- protected prepareFrameHandler(): Promise<void>;
58
+ protected prepareFrameHandler(options?: {
59
+ onlyApi: boolean;
60
+ onlyWeb: boolean;
61
+ }): Promise<void>;
55
62
  protected prepareWebHandler(extension: ReturnType<typeof mergeExtension>): Promise<Adapter>;
56
63
  protected prepareAPIHandler(mode: ApiServerMode, extension: APIServerStartInput['config']): Promise<Adapter>;
57
64
  protected filterRoutes(routes: ModernRouteInterface[]): ModernRouteInterface[];
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "modern",
12
12
  "modern.js"
13
13
  ],
14
- "version": "1.1.5",
14
+ "version": "1.1.7",
15
15
  "jsnext:source": "./src/index.ts",
16
16
  "types": "./dist/types/index.d.ts",
17
17
  "main": "./dist/js/node/index.js",
@@ -28,7 +28,7 @@
28
28
  }
29
29
  },
30
30
  "dependencies": {
31
- "@modern-js/utils": "^1.7.3",
31
+ "@modern-js/utils": "^1.7.6",
32
32
  "@babel/compat-data": "^7.17.0",
33
33
  "@modern-js/server-core": "^1.3.5",
34
34
  "axios": "^0.24.0",
@@ -43,8 +43,8 @@
43
43
  "ua-parser-js": "^0.7.28"
44
44
  },
45
45
  "devDependencies": {
46
- "@modern-js/types": "1.5.3",
47
- "@modern-js/core": "1.10.2",
46
+ "@modern-js/types": "1.5.4",
47
+ "@modern-js/core": "1.11.1",
48
48
  "@scripts/jest-config": "0.0.0",
49
49
  "@scripts/build": "0.0.0",
50
50
  "@types/cookie": "^0.4.1",
@@ -86,7 +86,8 @@
86
86
  "files": [
87
87
  "src/**/*",
88
88
  "tsconfig.json",
89
- "package.json"
89
+ "package.json",
90
+ "tests/**/*"
90
91
  ],
91
92
  "output": []
92
93
  }