@modern-js/server 2.19.1 → 2.21.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.
Files changed (37) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/dist/cjs/constants.js +1 -0
  3. package/dist/cjs/dev-tools/dev-middleware/hmr-client/index.js +5 -9
  4. package/dist/cjs/dev-tools/dev-middleware/index.js +6 -22
  5. package/dist/cjs/dev-tools/dev-middleware/socketServer.js +9 -25
  6. package/dist/cjs/dev-tools/mock/index.js +4 -47
  7. package/dist/cjs/dev-tools/register/index.js +2 -6
  8. package/dist/cjs/dev-tools/watcher/dependencyTree.js +5 -21
  9. package/dist/cjs/dev-tools/watcher/index.js +5 -21
  10. package/dist/cjs/dev-tools/watcher/statsCache.js +6 -22
  11. package/dist/cjs/server/devServer.js +21 -67
  12. package/dist/esm/constants.js +1 -0
  13. package/dist/esm/dev-tools/dev-middleware/hmr-client/index.js +3 -3
  14. package/dist/esm/dev-tools/dev-middleware/index.js +10 -253
  15. package/dist/esm/dev-tools/dev-middleware/socketServer.js +3 -35
  16. package/dist/esm/dev-tools/https/index.js +3 -132
  17. package/dist/esm/dev-tools/mock/getMockData.js +7 -246
  18. package/dist/esm/dev-tools/mock/index.js +3 -132
  19. package/dist/esm/dev-tools/register/index.js +3 -52
  20. package/dist/esm/dev-tools/watcher/dependencyTree.js +4 -69
  21. package/dist/esm/dev-tools/watcher/index.js +5 -84
  22. package/dist/esm/dev-tools/watcher/statsCache.js +3 -35
  23. package/dist/esm/server/devServer.js +45 -348
  24. package/dist/esm/server/index.js +3 -76
  25. package/dist/esm-node/constants.js +1 -0
  26. package/dist/esm-node/dev-tools/dev-middleware/hmr-client/index.js +3 -3
  27. package/dist/esm-node/dev-tools/dev-middleware/index.js +1 -13
  28. package/dist/esm-node/dev-tools/dev-middleware/socketServer.js +1 -13
  29. package/dist/esm-node/dev-tools/watcher/dependencyTree.js +1 -13
  30. package/dist/esm-node/dev-tools/watcher/index.js +1 -13
  31. package/dist/esm-node/dev-tools/watcher/statsCache.js +1 -13
  32. package/dist/esm-node/server/devServer.js +10 -13
  33. package/dist/types/dev-tools/mock/getMockData.d.ts +0 -2
  34. package/dist/types/dev-tools/watcher/dependencyTree.d.ts +0 -2
  35. package/dist/types/index.d.ts +0 -2
  36. package/dist/types/types.d.ts +0 -3
  37. package/package.json +14 -12
@@ -1,16 +1,4 @@
1
- function _define_property(obj, key, value) {
2
- if (key in obj) {
3
- Object.defineProperty(obj, key, {
4
- value,
5
- enumerable: true,
6
- configurable: true,
7
- writable: true
8
- });
9
- } else {
10
- obj[key] = value;
11
- }
12
- return obj;
13
- }
1
+ import { _ as _define_property } from "@swc/helpers/_/_define_property";
14
2
  import { createServer } from "http";
15
3
  import path from "path";
16
4
  import { createServer as createHttpsServer } from "https";
@@ -81,6 +69,15 @@ export class ModernDevServer extends ModernServer {
81
69
  }
82
70
  async applyDefaultMiddlewares(app) {
83
71
  const { pwd, dev, devMiddleware } = this;
72
+ if (dev.compress) {
73
+ const { default: compression } = await import("http-compression");
74
+ this.addHandler((ctx, next) => {
75
+ compression({
76
+ gzip: true,
77
+ brotli: false
78
+ })(ctx.req, ctx.res, next);
79
+ });
80
+ }
84
81
  this.addHandler((ctx, next) => {
85
82
  ctx.res.setHeader("Access-Control-Allow-Origin", "*");
86
83
  if (ctx.path.includes("hot-update")) {
@@ -11,8 +11,6 @@ export type MockApi = {
11
11
  };
12
12
  declare const createFunctionDataHandler: (method: string, handler: (req: IncomingMessage, res: ServerResponse, next: NextFunction) => void) => (context: ModernServerContext, next: NextFunction) => Promise<void>;
13
13
  declare const createStaticDataHandler: (method: string, handler: Record<string, any>) => (context: ModernServerContext) => void;
14
-
15
14
  declare const _default: (mockConfig: MockConfig) => MockApi[];
16
-
17
15
  export default _default;
18
16
  export declare const getMatched: (context: ModernServerContext, mockApiList: MockApi[]) => MockApi | undefined;
@@ -14,7 +14,6 @@ export interface TreeNode {
14
14
  * `module.parent` is the module that first required. so we have to implement
15
15
  * a new tree which revisit the cache tree to find all parent node
16
16
  */
17
-
18
17
  export declare class DependencyTree {
19
18
  private readonly tree;
20
19
  private readonly ignore;
@@ -25,7 +24,6 @@ export declare class DependencyTree {
25
24
  *
26
25
  * @param cache
27
26
  */
28
-
29
27
  update(cache: any): void;
30
28
  private shouldIgnore;
31
29
  }
@@ -2,7 +2,5 @@ import { DevServer as Server } from './server';
2
2
  import type { ModernDevServerOptions } from './types';
3
3
  export { Server };
4
4
  export type { ModernDevServerOptions };
5
-
6
5
  declare const _default: (options: ModernDevServerOptions) => Promise<Server>;
7
-
8
6
  export default _default;
@@ -15,12 +15,10 @@ export type DevMiddlewareOptions = {
15
15
  /** To ensure HMR works, the devMiddleware need inject the hmr client path into page when HMR enable. */
16
16
  hmrClientPath?: string;
17
17
  /** The options need by compiler middleware (like webpackMiddleware) */
18
-
19
18
  headers?: Record<string, string | string[]>;
20
19
  writeToDisk?: boolean | ((filename: string) => boolean);
21
20
  stats?: boolean;
22
21
  /** should trigger when compiler hook called */
23
-
24
22
  callbacks: MiddlewareCallbacks;
25
23
  };
26
24
  /**
@@ -29,7 +27,6 @@ export type DevMiddlewareOptions = {
29
27
  * - Inject the hmr client path into page (the hmr client modern/server already provide).
30
28
  * - Notify server when compiler hooks are triggered.
31
29
  */
32
-
33
30
  export type DevMiddleware = (options: DevMiddlewareOptions) => DevMiddlewareAPI;
34
31
  export type ExtraOptions = {
35
32
  dev: boolean | Partial<DevServerOptions>;
package/package.json CHANGED
@@ -15,7 +15,7 @@
15
15
  "modern",
16
16
  "modern.js"
17
17
  ],
18
- "version": "2.19.1",
18
+ "version": "2.21.0",
19
19
  "jsnext:source": "./src/index.ts",
20
20
  "types": "./dist/types/index.d.ts",
21
21
  "main": "./dist/cjs/index.js",
@@ -39,16 +39,18 @@
39
39
  }
40
40
  },
41
41
  "dependencies": {
42
- "@babel/core": "^7.18.0",
43
- "@babel/register": "^7.17.7",
42
+ "@babel/core": "^7.21.8",
43
+ "@babel/register": "^7.21.0",
44
+ "@swc/helpers": "0.5.1",
44
45
  "connect-history-api-fallback": "^2.0.0",
46
+ "http-compression": "1.0.6",
45
47
  "minimatch": "^3.0.4",
46
48
  "path-to-regexp": "^6.2.0",
47
49
  "ws": "^8.2.0",
48
- "@modern-js/prod-server": "2.19.1",
49
- "@modern-js/server-utils": "2.19.1",
50
- "@modern-js/types": "2.19.1",
51
- "@modern-js/utils": "2.19.1"
50
+ "@modern-js/prod-server": "2.21.0",
51
+ "@modern-js/server-utils": "2.21.0",
52
+ "@modern-js/types": "2.21.0",
53
+ "@modern-js/utils": "2.21.0"
52
54
  },
53
55
  "devDependencies": {
54
56
  "@types/connect-history-api-fallback": "^1.3.5",
@@ -58,14 +60,14 @@
58
60
  "@types/ws": "^7.4.7",
59
61
  "jest": "^29",
60
62
  "node-mocks-http": "^1.11.0",
61
- "ts-node": "^10.1.0",
63
+ "ts-node": "^10.9.1",
62
64
  "tsconfig-paths": "4.1.1",
63
- "typescript": "^4",
65
+ "typescript": "^5",
64
66
  "webpack": "^5.82.1",
65
67
  "websocket": "^1",
66
- "@modern-js/server-core": "2.19.1",
67
- "@scripts/build": "2.19.1",
68
- "@scripts/jest-config": "2.19.1"
68
+ "@modern-js/server-core": "2.21.0",
69
+ "@scripts/jest-config": "2.21.0",
70
+ "@scripts/build": "2.21.0"
69
71
  },
70
72
  "peerDependencies": {
71
73
  "devcert": "^1.0.0",