@webqit/webflo 0.20.59 → 0.20.61
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/package.json
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"vanila-javascript"
|
|
13
13
|
],
|
|
14
14
|
"homepage": "https://webqit.io/tooling/webflo",
|
|
15
|
-
"version": "0.20.
|
|
15
|
+
"version": "0.20.61",
|
|
16
16
|
"license": "MIT",
|
|
17
17
|
"repository": {
|
|
18
18
|
"type": "git",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"dependencies": {
|
|
48
48
|
"@octokit/webhooks": "^7.15.1",
|
|
49
49
|
"@webqit/backpack": "^0.1.12",
|
|
50
|
-
"@webqit/fetch-plus": "^0.1.
|
|
50
|
+
"@webqit/fetch-plus": "^0.1.30",
|
|
51
51
|
"@webqit/keyval": "^0.2.17",
|
|
52
52
|
"@webqit/observer": "^3.8.14",
|
|
53
53
|
"@webqit/oohtml-ssr": "^2.2.4",
|
|
@@ -273,14 +273,22 @@ export class AppRuntime {
|
|
|
273
273
|
createStreamingResponse(httpEvent, readStream, stats) {
|
|
274
274
|
let response;
|
|
275
275
|
const requestRange = httpEvent.request.headers.get('Range', true); // Parses the Range header
|
|
276
|
+
|
|
276
277
|
if (requestRange.length) {
|
|
277
278
|
const streams = requestRange.reduce((streams, range) => {
|
|
278
279
|
if (!streams) return;
|
|
279
|
-
const [start, end] = range.resolveAgainst(stats.size); // Resolve offsets
|
|
280
280
|
const currentStart = (streams[streams.length - 1]?.end || -1) + 1;
|
|
281
|
+
|
|
281
282
|
if (!range.canResolveAgainst(currentStart, stats.size)) return; // Only after rendering()
|
|
282
|
-
|
|
283
|
+
const [start, end] = range.resolveAgainst(stats.size); // Resolve offsets
|
|
284
|
+
|
|
285
|
+
try {
|
|
286
|
+
return streams.concat({ start, end, stream: readStream({ start, end }) });
|
|
287
|
+
} catch(e) {
|
|
288
|
+
console.log('_______', httpEvent.request.headers.get('Range'), requestRange, stats.size, [start, end]);
|
|
289
|
+
}
|
|
283
290
|
}, []);
|
|
291
|
+
|
|
284
292
|
if (!streams) {
|
|
285
293
|
return new Response(null, {
|
|
286
294
|
status: 416, statusText: 'Requested Range Not Satisfiable', headers: {
|
|
@@ -288,6 +296,7 @@ export class AppRuntime {
|
|
|
288
296
|
}
|
|
289
297
|
});
|
|
290
298
|
}
|
|
299
|
+
|
|
291
300
|
const streamJoin = this.streamJoin(streams, stats.mime, stats.size);
|
|
292
301
|
response = new Response(streamJoin.stream, { status: 206, statusText: 'Partial Content' });
|
|
293
302
|
if (streamJoin.boundary) {
|
|
@@ -302,6 +311,7 @@ export class AppRuntime {
|
|
|
302
311
|
response.headers.set('Content-Type', stats.mime);
|
|
303
312
|
response.headers.set('Content-Length', stats.size);
|
|
304
313
|
}
|
|
314
|
+
|
|
305
315
|
return response;
|
|
306
316
|
}
|
|
307
317
|
}
|
|
@@ -138,7 +138,6 @@ export class WebfloServer extends AppRuntime {
|
|
|
138
138
|
if (revalidate
|
|
139
139
|
|| !this.#buildContexts[realm]) {
|
|
140
140
|
await this.#buildContexts[realm]?.dispose();
|
|
141
|
-
console.info('Building routes...');
|
|
142
141
|
|
|
143
142
|
const entryPoints = await $glob(`${routeDirs[realm]}/**/handler{,.${realm}}.js`, { absolute: true })
|
|
144
143
|
.then((files) => files.map((f) => f.replace(/\\/g, '/')));
|