@hono/node-server 1.19.5 → 1.19.6
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/serve-static.js +21 -19
- package/dist/serve-static.mjs +21 -19
- package/package.json +1 -1
package/dist/serve-static.js
CHANGED
|
@@ -98,7 +98,6 @@ var serveStatic = (options = { root: "" }) => {
|
|
|
98
98
|
await options.onNotFound?.(path, c);
|
|
99
99
|
return next();
|
|
100
100
|
}
|
|
101
|
-
await options.onFound?.(path, c);
|
|
102
101
|
const mimeType = (0, import_mime.getMimeType)(path);
|
|
103
102
|
c.header("Content-Type", mimeType || "application/octet-stream");
|
|
104
103
|
if (options.precompressed && (!mimeType || COMPRESSIBLE_CONTENT_TYPE_REGEX.test(mimeType))) {
|
|
@@ -119,30 +118,33 @@ var serveStatic = (options = { root: "" }) => {
|
|
|
119
118
|
}
|
|
120
119
|
}
|
|
121
120
|
}
|
|
121
|
+
let result;
|
|
122
122
|
const size = stats.size;
|
|
123
|
+
const range = c.req.header("range") || "";
|
|
123
124
|
if (c.req.method == "HEAD" || c.req.method == "OPTIONS") {
|
|
124
125
|
c.header("Content-Length", size.toString());
|
|
125
126
|
c.status(200);
|
|
126
|
-
|
|
127
|
-
}
|
|
128
|
-
const range = c.req.header("range") || "";
|
|
129
|
-
if (!range) {
|
|
127
|
+
result = c.body(null);
|
|
128
|
+
} else if (!range) {
|
|
130
129
|
c.header("Content-Length", size.toString());
|
|
131
|
-
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
130
|
+
result = c.body(createStreamBody((0, import_node_fs.createReadStream)(path)), 200);
|
|
131
|
+
} else {
|
|
132
|
+
c.header("Accept-Ranges", "bytes");
|
|
133
|
+
c.header("Date", stats.birthtime.toUTCString());
|
|
134
|
+
const parts = range.replace(/bytes=/, "").split("-", 2);
|
|
135
|
+
const start = parseInt(parts[0], 10) || 0;
|
|
136
|
+
let end = parseInt(parts[1], 10) || size - 1;
|
|
137
|
+
if (size < end - start + 1) {
|
|
138
|
+
end = size - 1;
|
|
139
|
+
}
|
|
140
|
+
const chunksize = end - start + 1;
|
|
141
|
+
const stream = (0, import_node_fs.createReadStream)(path, { start, end });
|
|
142
|
+
c.header("Content-Length", chunksize.toString());
|
|
143
|
+
c.header("Content-Range", `bytes ${start}-${end}/${stats.size}`);
|
|
144
|
+
result = c.body(createStreamBody(stream), 206);
|
|
140
145
|
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
c.header("Content-Length", chunksize.toString());
|
|
144
|
-
c.header("Content-Range", `bytes ${start}-${end}/${stats.size}`);
|
|
145
|
-
return c.body(createStreamBody(stream), 206);
|
|
146
|
+
await options.onFound?.(path, c);
|
|
147
|
+
return result;
|
|
146
148
|
};
|
|
147
149
|
};
|
|
148
150
|
// Annotate the CommonJS export names for ESM import in node:
|
package/dist/serve-static.mjs
CHANGED
|
@@ -74,7 +74,6 @@ var serveStatic = (options = { root: "" }) => {
|
|
|
74
74
|
await options.onNotFound?.(path, c);
|
|
75
75
|
return next();
|
|
76
76
|
}
|
|
77
|
-
await options.onFound?.(path, c);
|
|
78
77
|
const mimeType = getMimeType(path);
|
|
79
78
|
c.header("Content-Type", mimeType || "application/octet-stream");
|
|
80
79
|
if (options.precompressed && (!mimeType || COMPRESSIBLE_CONTENT_TYPE_REGEX.test(mimeType))) {
|
|
@@ -95,30 +94,33 @@ var serveStatic = (options = { root: "" }) => {
|
|
|
95
94
|
}
|
|
96
95
|
}
|
|
97
96
|
}
|
|
97
|
+
let result;
|
|
98
98
|
const size = stats.size;
|
|
99
|
+
const range = c.req.header("range") || "";
|
|
99
100
|
if (c.req.method == "HEAD" || c.req.method == "OPTIONS") {
|
|
100
101
|
c.header("Content-Length", size.toString());
|
|
101
102
|
c.status(200);
|
|
102
|
-
|
|
103
|
-
}
|
|
104
|
-
const range = c.req.header("range") || "";
|
|
105
|
-
if (!range) {
|
|
103
|
+
result = c.body(null);
|
|
104
|
+
} else if (!range) {
|
|
106
105
|
c.header("Content-Length", size.toString());
|
|
107
|
-
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
106
|
+
result = c.body(createStreamBody(createReadStream(path)), 200);
|
|
107
|
+
} else {
|
|
108
|
+
c.header("Accept-Ranges", "bytes");
|
|
109
|
+
c.header("Date", stats.birthtime.toUTCString());
|
|
110
|
+
const parts = range.replace(/bytes=/, "").split("-", 2);
|
|
111
|
+
const start = parseInt(parts[0], 10) || 0;
|
|
112
|
+
let end = parseInt(parts[1], 10) || size - 1;
|
|
113
|
+
if (size < end - start + 1) {
|
|
114
|
+
end = size - 1;
|
|
115
|
+
}
|
|
116
|
+
const chunksize = end - start + 1;
|
|
117
|
+
const stream = createReadStream(path, { start, end });
|
|
118
|
+
c.header("Content-Length", chunksize.toString());
|
|
119
|
+
c.header("Content-Range", `bytes ${start}-${end}/${stats.size}`);
|
|
120
|
+
result = c.body(createStreamBody(stream), 206);
|
|
116
121
|
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
c.header("Content-Length", chunksize.toString());
|
|
120
|
-
c.header("Content-Range", `bytes ${start}-${end}/${stats.size}`);
|
|
121
|
-
return c.body(createStreamBody(stream), 206);
|
|
122
|
+
await options.onFound?.(path, c);
|
|
123
|
+
return result;
|
|
122
124
|
};
|
|
123
125
|
};
|
|
124
126
|
export {
|