@modern-js/server-core 2.65.3 → 2.65.5

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.
@@ -19,6 +19,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
19
19
  var hono_exports = {};
20
20
  __export(hono_exports, {
21
21
  connectMid2HonoMid: () => connectMid2HonoMid,
22
+ connectMockMid2HonoMid: () => connectMockMid2HonoMid,
22
23
  httpCallBack2HonoMid: () => httpCallBack2HonoMid
23
24
  });
24
25
  module.exports = __toCommonJS(hono_exports);
@@ -68,8 +69,31 @@ const connectMid2HonoMid = (handler) => {
68
69
  });
69
70
  };
70
71
  };
72
+ const connectMockMid2HonoMid = (handler) => {
73
+ return async (context, next) => {
74
+ return new Promise((resolve, reject) => {
75
+ const { req, res } = context.env.node;
76
+ if (handler.length < 3) {
77
+ res.once("finish", () => {
78
+ context.finalized = true;
79
+ resolve();
80
+ });
81
+ handler(req, res, noop);
82
+ } else {
83
+ handler(req, res, (err) => {
84
+ if (err) {
85
+ reject(err);
86
+ } else {
87
+ resolve(next());
88
+ }
89
+ });
90
+ }
91
+ });
92
+ };
93
+ };
71
94
  // Annotate the CommonJS export names for ESM import in node:
72
95
  0 && (module.exports = {
73
96
  connectMid2HonoMid,
97
+ connectMockMid2HonoMid,
74
98
  httpCallBack2HonoMid
75
99
  });
@@ -19,6 +19,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
19
19
  var node_exports = {};
20
20
  __export(node_exports, {
21
21
  connectMid2HonoMid: () => import_hono.connectMid2HonoMid,
22
+ connectMockMid2HonoMid: () => import_hono.connectMockMid2HonoMid,
22
23
  createNodeServer: () => import_node.createNodeServer,
23
24
  createWebRequest: () => import_node.createWebRequest,
24
25
  getHtmlTemplates: () => import_plugins.getHtmlTemplates,
@@ -44,6 +45,7 @@ var import_helper = require("./helper");
44
45
  // Annotate the CommonJS export names for ESM import in node:
45
46
  0 && (module.exports = {
46
47
  connectMid2HonoMid,
48
+ connectMockMid2HonoMid,
47
49
  createNodeServer,
48
50
  createWebRequest,
49
51
  getHtmlTemplates,
@@ -128,7 +128,7 @@ function createStaticMiddleware(options) {
128
128
  }
129
129
  const stat = await import_utils.fs.lstat(filepath);
130
130
  const { size } = stat;
131
- const chunk = await import_fileReader.fileReader.readFile(filepath, "buffer");
131
+ const chunk = await import_fileReader.fileReader.readFileFromSystem(filepath, "buffer");
132
132
  c.header("Content-Length", String(size));
133
133
  return c.body(chunk, 200);
134
134
  } else {
@@ -103,7 +103,40 @@ var connectMid2HonoMid = function(handler) {
103
103
  };
104
104
  }();
105
105
  };
106
+ var connectMockMid2HonoMid = function(handler) {
107
+ return function() {
108
+ var _ref = _async_to_generator(function(context, next) {
109
+ return _ts_generator(this, function(_state) {
110
+ return [
111
+ 2,
112
+ new Promise(function(resolve, reject) {
113
+ var _context_env_node = context.env.node, req = _context_env_node.req, res = _context_env_node.res;
114
+ if (handler.length < 3) {
115
+ res.once("finish", function() {
116
+ context.finalized = true;
117
+ resolve();
118
+ });
119
+ handler(req, res, noop);
120
+ } else {
121
+ handler(req, res, function(err) {
122
+ if (err) {
123
+ reject(err);
124
+ } else {
125
+ resolve(next());
126
+ }
127
+ });
128
+ }
129
+ })
130
+ ];
131
+ });
132
+ });
133
+ return function(context, next) {
134
+ return _ref.apply(this, arguments);
135
+ };
136
+ }();
137
+ };
106
138
  export {
107
139
  connectMid2HonoMid,
140
+ connectMockMid2HonoMid,
108
141
  httpCallBack2HonoMid
109
142
  };
@@ -1,9 +1,10 @@
1
- import { httpCallBack2HonoMid, connectMid2HonoMid } from "./hono";
1
+ import { httpCallBack2HonoMid, connectMid2HonoMid, connectMockMid2HonoMid } from "./hono";
2
2
  import { createNodeServer, sendResponse, createWebRequest, writeReadableStreamToWritable } from "./node";
3
3
  import { serverStaticPlugin, injectResourcePlugin, getHtmlTemplates, getServerManifest, injectNodeSeverPlugin, injectRscManifestPlugin } from "./plugins";
4
4
  import { loadServerPlugins, loadServerEnv, loadServerRuntimeConfig, loadServerCliConfig, loadCacheConfig } from "./helper";
5
5
  export {
6
6
  connectMid2HonoMid,
7
+ connectMockMid2HonoMid,
7
8
  createNodeServer,
8
9
  createWebRequest,
9
10
  getHtmlTemplates,
@@ -173,7 +173,7 @@ function createStaticMiddleware(options) {
173
173
  size = stat.size;
174
174
  return [
175
175
  4,
176
- fileReader.readFile(filepath, "buffer")
176
+ fileReader.readFileFromSystem(filepath, "buffer")
177
177
  ];
178
178
  case 3:
179
179
  chunk = _state.sent();
@@ -44,7 +44,30 @@ const connectMid2HonoMid = (handler) => {
44
44
  });
45
45
  };
46
46
  };
47
+ const connectMockMid2HonoMid = (handler) => {
48
+ return async (context, next) => {
49
+ return new Promise((resolve, reject) => {
50
+ const { req, res } = context.env.node;
51
+ if (handler.length < 3) {
52
+ res.once("finish", () => {
53
+ context.finalized = true;
54
+ resolve();
55
+ });
56
+ handler(req, res, noop);
57
+ } else {
58
+ handler(req, res, (err) => {
59
+ if (err) {
60
+ reject(err);
61
+ } else {
62
+ resolve(next());
63
+ }
64
+ });
65
+ }
66
+ });
67
+ };
68
+ };
47
69
  export {
48
70
  connectMid2HonoMid,
71
+ connectMockMid2HonoMid,
49
72
  httpCallBack2HonoMid
50
73
  };
@@ -1,9 +1,10 @@
1
- import { httpCallBack2HonoMid, connectMid2HonoMid } from "./hono";
1
+ import { httpCallBack2HonoMid, connectMid2HonoMid, connectMockMid2HonoMid } from "./hono";
2
2
  import { createNodeServer, sendResponse, createWebRequest, writeReadableStreamToWritable } from "./node";
3
3
  import { serverStaticPlugin, injectResourcePlugin, getHtmlTemplates, getServerManifest, injectNodeSeverPlugin, injectRscManifestPlugin } from "./plugins";
4
4
  import { loadServerPlugins, loadServerEnv, loadServerRuntimeConfig, loadServerCliConfig, loadCacheConfig } from "./helper";
5
5
  export {
6
6
  connectMid2HonoMid,
7
+ connectMockMid2HonoMid,
7
8
  createNodeServer,
8
9
  createWebRequest,
9
10
  getHtmlTemplates,
@@ -93,7 +93,7 @@ function createStaticMiddleware(options) {
93
93
  }
94
94
  const stat = await fs.lstat(filepath);
95
95
  const { size } = stat;
96
- const chunk = await fileReader.readFile(filepath, "buffer");
96
+ const chunk = await fileReader.readFileFromSystem(filepath, "buffer");
97
97
  c.header("Content-Length", String(size));
98
98
  return c.body(chunk, 200);
99
99
  } else {
@@ -9,4 +9,10 @@ type Handler = (req: NodeRequest, res: NodeResponse) => void | Promise<void>;
9
9
  export declare const httpCallBack2HonoMid: (handler: Handler) => (context: Context<ServerNodeEnv & ServerEnv>, next: Next) => Promise<void>;
10
10
  type ConnectMiddleware = ((req: NodeRequest, res: NodeResponse, callback: (...args: unknown[]) => void) => void) | ((req: NodeRequest, res: NodeResponse) => void);
11
11
  export declare const connectMid2HonoMid: (handler: ConnectMiddleware) => Middleware;
12
+ /**
13
+ * Because we are not sure how use devServer.before and devServer.after, we add a new function to handle the mock middleware
14
+ * And we supose mock handler always process the res directly
15
+ * So we need to set the context.finalized = true and resolve the promise
16
+ */
17
+ export declare const connectMockMid2HonoMid: (handler: ConnectMiddleware) => Middleware;
12
18
  export {};
@@ -1,4 +1,4 @@
1
- export { httpCallBack2HonoMid, connectMid2HonoMid } from './hono';
1
+ export { httpCallBack2HonoMid, connectMid2HonoMid, connectMockMid2HonoMid, } from './hono';
2
2
  export type { ServerNodeContext, ServerNodeMiddleware } from './hono';
3
3
  export { createNodeServer, sendResponse, createWebRequest, writeReadableStreamToWritable, } from './node';
4
4
  export { serverStaticPlugin, injectResourcePlugin, getHtmlTemplates, getServerManifest, injectNodeSeverPlugin, injectRscManifestPlugin, } from './plugins';
@@ -12,4 +12,13 @@ export interface ServerStaticOptions {
12
12
  html: HtmlNormalizedConfig;
13
13
  routes?: ServerRoute[];
14
14
  }
15
+ /**
16
+ * This middleware is used to serve static assets
17
+ * TODO: In next major version, only serve static assets in the `static` and `upload` directory.
18
+ *
19
+ * 1. In dev mode, the static assets generated by bundler will be served by the rsbuildDevMiddleware, and other file in `static` directory will be served by this middleware.
20
+ * 2. In prod mode, all the static assets in `static` and `upload` directory will be served by this middleware.
21
+ * 3. So some file not in `static` can be access in dev mode, but not in prod mode. Cause we can not serve all files in prod mode, as we should not expose server code in prod mode.
22
+ * 4. Through Modern.js not serve this file in prod mode, you can upload the files to a CDN.
23
+ */
15
24
  export declare function createStaticMiddleware(options: ServerStaticOptions): Middleware;
package/package.json CHANGED
@@ -15,7 +15,7 @@
15
15
  "modern",
16
16
  "modern.js"
17
17
  ],
18
- "version": "2.65.3",
18
+ "version": "2.65.5",
19
19
  "jsnext:source": "./src/index.ts",
20
20
  "types": "./dist/types/index.d.ts",
21
21
  "main": "./dist/cjs/index.js",
@@ -53,9 +53,9 @@
53
53
  "flatted": "^3.2.9",
54
54
  "hono": "^3.12.2",
55
55
  "ts-deepmerge": "7.0.2",
56
- "@modern-js/plugin": "2.65.3",
57
- "@modern-js/runtime-utils": "2.65.3",
58
- "@modern-js/utils": "2.65.3"
56
+ "@modern-js/plugin": "2.65.5",
57
+ "@modern-js/utils": "2.65.5",
58
+ "@modern-js/runtime-utils": "2.65.5"
59
59
  },
60
60
  "devDependencies": {
61
61
  "@types/jest": "^29",
@@ -65,15 +65,14 @@
65
65
  "jest": "^29",
66
66
  "ts-jest": "^29.1.0",
67
67
  "typescript": "^5",
68
- "@modern-js/types": "2.65.3",
69
- "@scripts/build": "2.65.3",
70
- "@scripts/jest-config": "2.65.3"
68
+ "@modern-js/types": "2.65.5",
69
+ "@scripts/build": "2.65.5",
70
+ "@scripts/jest-config": "2.65.5"
71
71
  },
72
72
  "sideEffects": false,
73
73
  "publishConfig": {
74
74
  "registry": "https://registry.npmjs.org/",
75
- "access": "public",
76
- "provenance": true
75
+ "access": "public"
77
76
  },
78
77
  "scripts": {
79
78
  "new": "modern-lib new",