@flighthq/host-web 0.5.1-next.658.9cb44d7 → 0.5.1-next.685.f72fc7f
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/README.md +2 -2
- package/dist/webDialog.d.ts +2 -2
- package/dist/webDialog.d.ts.map +1 -1
- package/dist/webDialog.js +79 -18
- package/dist/webDialog.js.map +1 -1
- package/dist/webFilesystem.d.ts.map +1 -1
- package/dist/webFilesystem.js +127 -34
- package/dist/webFilesystem.js.map +1 -1
- package/package.json +36 -36
- package/src/webDialog.test.ts +43 -1
- package/src/webFilesystem.test.ts +81 -1
- package/src/webNet.test.ts +67 -0
package/README.md
CHANGED
|
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/host-web`. The `@fli
|
|
|
13
13
|
This package is part of the locked-version Flight SDK graph. Applications may instead install and import `@flighthq/sdk` when package-level tree shaking is sufficient.
|
|
14
14
|
|
|
15
15
|
- [Flight project](https://github.com/flighthq/flight)
|
|
16
|
-
- [Source for @flighthq/host-web@0.5.1-next.
|
|
17
|
-
- [License](https://github.com/flighthq/flight/blob/
|
|
16
|
+
- [Source for @flighthq/host-web@0.5.1-next.685.f72fc7f](https://github.com/flighthq/flight/tree/f72fc7feaa9653d950f39c7d2fe6365f48e82e51/packages/host-web)
|
|
17
|
+
- [License](https://github.com/flighthq/flight/blob/f72fc7feaa9653d950f39c7d2fe6365f48e82e51/LICENSE.md)
|
package/dist/webDialog.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DirectoryOpenDialogResult, FileOpenDialogResult, FileSaveDialogResult, OpenFileDialogOptions, SaveFileDialogOptions } from '@flighthq/types/contract';
|
|
1
|
+
import type { DirectoryOpenDialogResult, FileOpenDialogResult, FileSaveDialogResult, OpenDirectoryDialogOptions, OpenFileDialogOptions, SaveFileDialogOptions } from '@flighthq/types/contract';
|
|
2
2
|
export { webMessageDialogBackend, webPromptDialogBackend } from '@flighthq/dialog/contract';
|
|
3
3
|
export declare const webDirectoryOpenDialogBackend: {
|
|
4
4
|
open: typeof openDirectory;
|
|
@@ -9,7 +9,7 @@ export declare const webFileOpenDialogBackend: {
|
|
|
9
9
|
export declare const webFileSaveDialogBackend: {
|
|
10
10
|
save: typeof saveFile;
|
|
11
11
|
} & import("@flighthq/types/Entity").Entity;
|
|
12
|
-
declare function openDirectory(): Promise<DirectoryOpenDialogResult>;
|
|
12
|
+
declare function openDirectory(options?: Readonly<OpenDirectoryDialogOptions>): Promise<DirectoryOpenDialogResult>;
|
|
13
13
|
declare function openFile(options: Readonly<OpenFileDialogOptions>): Promise<FileOpenDialogResult>;
|
|
14
14
|
declare function saveFile(options: Readonly<SaveFileDialogOptions>): Promise<FileSaveDialogResult>;
|
|
15
15
|
//# sourceMappingURL=webDialog.d.ts.map
|
package/dist/webDialog.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webDialog.d.ts","sourceRoot":"","sources":["../src/webDialog.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,yBAAyB,EAKzB,oBAAoB,EAEpB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAE5F,eAAO,MAAM,6BAA6B;;2CAE4B,CAAC;AAEvE,eAAO,MAAM,wBAAwB;;2CAE4B,CAAC;AAElE,eAAO,MAAM,wBAAwB;;2CAE4B,CAAC;AAElE,iBAAe,aAAa,
|
|
1
|
+
{"version":3,"file":"webDialog.d.ts","sourceRoot":"","sources":["../src/webDialog.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,yBAAyB,EAKzB,oBAAoB,EAEpB,oBAAoB,EACpB,0BAA0B,EAC1B,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAE5F,eAAO,MAAM,6BAA6B;;2CAE4B,CAAC;AAEvE,eAAO,MAAM,wBAAwB;;2CAE4B,CAAC;AAElE,eAAO,MAAM,wBAAwB;;2CAE4B,CAAC;AAElE,iBAAe,aAAa,CAAC,OAAO,GAAE,QAAQ,CAAC,0BAA0B,CAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAcnH;AAED,iBAAS,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAOzF;AAkGD,iBAAe,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAkB/F"}
|
package/dist/webDialog.js
CHANGED
|
@@ -10,7 +10,9 @@ export const webFileOpenDialogBackend = createEntity({
|
|
|
10
10
|
export const webFileSaveDialogBackend = createEntity({
|
|
11
11
|
save: saveFile,
|
|
12
12
|
});
|
|
13
|
-
async function openDirectory() {
|
|
13
|
+
async function openDirectory(options = {}) {
|
|
14
|
+
if (options.signal?.aborted)
|
|
15
|
+
return { outcome: 'cancelled' };
|
|
14
16
|
if (typeof window === 'undefined')
|
|
15
17
|
return { outcome: 'runtime-unavailable' };
|
|
16
18
|
const picker = window.showDirectoryPicker;
|
|
@@ -28,6 +30,8 @@ async function openDirectory() {
|
|
|
28
30
|
}
|
|
29
31
|
}
|
|
30
32
|
function openFile(options) {
|
|
33
|
+
if (options.signal?.aborted)
|
|
34
|
+
return Promise.resolve({ outcome: 'cancelled' });
|
|
31
35
|
if (typeof window !== 'undefined') {
|
|
32
36
|
const picker = window.showOpenFilePicker;
|
|
33
37
|
if (typeof picker === 'function')
|
|
@@ -36,6 +40,8 @@ function openFile(options) {
|
|
|
36
40
|
return openLegacyFilePicker(options);
|
|
37
41
|
}
|
|
38
42
|
async function openFileSystemAccessPicker(win, picker, options) {
|
|
43
|
+
if (options.signal?.aborted)
|
|
44
|
+
return { outcome: 'cancelled' };
|
|
39
45
|
try {
|
|
40
46
|
const pickerOptions = { multiple: options.multiple ?? false };
|
|
41
47
|
const types = buildFileSystemAccessTypes(options.filters);
|
|
@@ -55,6 +61,8 @@ async function openFileSystemAccessPicker(win, picker, options) {
|
|
|
55
61
|
}
|
|
56
62
|
}
|
|
57
63
|
function openLegacyFilePicker(options) {
|
|
64
|
+
if (options.signal?.aborted)
|
|
65
|
+
return Promise.resolve({ outcome: 'cancelled' });
|
|
58
66
|
if (typeof document === 'undefined' ||
|
|
59
67
|
typeof document.createElement !== 'function' ||
|
|
60
68
|
typeof window === 'undefined' ||
|
|
@@ -74,6 +82,7 @@ function openLegacyFilePicker(options) {
|
|
|
74
82
|
input.removeEventListener('change', onChange);
|
|
75
83
|
input.removeEventListener('cancel', onCancel);
|
|
76
84
|
window.removeEventListener('focus', onFocus);
|
|
85
|
+
options.signal?.removeEventListener('abort', onAbort);
|
|
77
86
|
if (focusTimer !== null)
|
|
78
87
|
clearTimeout(focusTimer);
|
|
79
88
|
focusTimer = null;
|
|
@@ -108,9 +117,13 @@ function openLegacyFilePicker(options) {
|
|
|
108
117
|
// the no-event cancellation path deterministic.
|
|
109
118
|
focusTimer = setTimeout(() => finish(selectedResult() ?? { outcome: 'cancelled' }), 0);
|
|
110
119
|
}
|
|
120
|
+
function onAbort() {
|
|
121
|
+
finish({ outcome: 'cancelled' });
|
|
122
|
+
}
|
|
111
123
|
input.addEventListener('change', onChange);
|
|
112
124
|
input.addEventListener('cancel', onCancel);
|
|
113
125
|
window.addEventListener('focus', onFocus);
|
|
126
|
+
options.signal?.addEventListener('abort', onAbort, { once: true });
|
|
114
127
|
try {
|
|
115
128
|
input.click();
|
|
116
129
|
}
|
|
@@ -120,6 +133,8 @@ function openLegacyFilePicker(options) {
|
|
|
120
133
|
});
|
|
121
134
|
}
|
|
122
135
|
async function saveFile(options) {
|
|
136
|
+
if (options.signal?.aborted)
|
|
137
|
+
return { outcome: 'cancelled' };
|
|
123
138
|
if (typeof window === 'undefined')
|
|
124
139
|
return { outcome: 'runtime-unavailable' };
|
|
125
140
|
const picker = window.showSaveFilePicker;
|
|
@@ -192,7 +207,8 @@ function errorName(error) {
|
|
|
192
207
|
}
|
|
193
208
|
function retainedFileOperations(file) {
|
|
194
209
|
return {
|
|
195
|
-
async readBinary() {
|
|
210
|
+
async readBinary(signal) {
|
|
211
|
+
signal?.throwIfAborted();
|
|
196
212
|
try {
|
|
197
213
|
return new Uint8Array(await file.arrayBuffer());
|
|
198
214
|
}
|
|
@@ -200,7 +216,8 @@ function retainedFileOperations(file) {
|
|
|
200
216
|
return null;
|
|
201
217
|
}
|
|
202
218
|
},
|
|
203
|
-
async readText() {
|
|
219
|
+
async readText(signal) {
|
|
220
|
+
signal?.throwIfAborted();
|
|
204
221
|
try {
|
|
205
222
|
return await file.text();
|
|
206
223
|
}
|
|
@@ -212,47 +229,91 @@ function retainedFileOperations(file) {
|
|
|
212
229
|
}
|
|
213
230
|
function fileSystemHandleOperations(handle) {
|
|
214
231
|
return {
|
|
215
|
-
async readBinary() {
|
|
232
|
+
async readBinary(signal) {
|
|
233
|
+
signal?.throwIfAborted();
|
|
234
|
+
let file;
|
|
235
|
+
try {
|
|
236
|
+
file = await handle.getFile();
|
|
237
|
+
}
|
|
238
|
+
catch {
|
|
239
|
+
return null;
|
|
240
|
+
}
|
|
241
|
+
signal?.throwIfAborted();
|
|
216
242
|
try {
|
|
217
|
-
const file = await handle.getFile();
|
|
218
243
|
return new Uint8Array(await file.arrayBuffer());
|
|
219
244
|
}
|
|
220
245
|
catch {
|
|
221
246
|
return null;
|
|
222
247
|
}
|
|
223
248
|
},
|
|
224
|
-
async readText() {
|
|
249
|
+
async readText(signal) {
|
|
250
|
+
signal?.throwIfAborted();
|
|
251
|
+
let file;
|
|
225
252
|
try {
|
|
226
|
-
|
|
253
|
+
file = await handle.getFile();
|
|
254
|
+
}
|
|
255
|
+
catch {
|
|
256
|
+
return null;
|
|
257
|
+
}
|
|
258
|
+
signal?.throwIfAborted();
|
|
259
|
+
try {
|
|
260
|
+
return await file.text();
|
|
227
261
|
}
|
|
228
262
|
catch {
|
|
229
263
|
return null;
|
|
230
264
|
}
|
|
231
265
|
},
|
|
232
|
-
async writeBinary(data) {
|
|
233
|
-
|
|
266
|
+
async writeBinary(data, signal) {
|
|
267
|
+
signal?.throwIfAborted();
|
|
268
|
+
return writeFileSystemHandle(handle, data.slice(), signal);
|
|
234
269
|
},
|
|
235
|
-
async writeText(data) {
|
|
236
|
-
|
|
270
|
+
async writeText(data, signal) {
|
|
271
|
+
signal?.throwIfAborted();
|
|
272
|
+
return writeFileSystemHandle(handle, data, signal);
|
|
237
273
|
},
|
|
238
274
|
};
|
|
239
275
|
}
|
|
240
|
-
async function writeFileSystemHandle(handle, data) {
|
|
276
|
+
async function writeFileSystemHandle(handle, data, signal) {
|
|
277
|
+
signal?.throwIfAborted();
|
|
241
278
|
let writable = null;
|
|
242
279
|
try {
|
|
243
280
|
writable = await handle.createWritable();
|
|
281
|
+
}
|
|
282
|
+
catch {
|
|
283
|
+
return false;
|
|
284
|
+
}
|
|
285
|
+
if (signal?.aborted) {
|
|
286
|
+
await writable.abort?.(signal.reason).catch(() => { });
|
|
287
|
+
throw signal.reason;
|
|
288
|
+
}
|
|
289
|
+
let aborted = false;
|
|
290
|
+
let abortPromise = null;
|
|
291
|
+
const onAbort = () => {
|
|
292
|
+
aborted = true;
|
|
293
|
+
abortPromise = writable?.abort?.(signal?.reason).catch(() => { }) ?? Promise.resolve();
|
|
294
|
+
};
|
|
295
|
+
if (writable.abort !== undefined)
|
|
296
|
+
signal?.addEventListener('abort', onAbort, { once: true });
|
|
297
|
+
try {
|
|
244
298
|
await writable.write(data);
|
|
299
|
+
if (aborted) {
|
|
300
|
+
await abortPromise;
|
|
301
|
+
throw signal?.reason;
|
|
302
|
+
}
|
|
245
303
|
await writable.close();
|
|
246
304
|
return true;
|
|
247
305
|
}
|
|
248
306
|
catch {
|
|
249
|
-
|
|
250
|
-
await writable
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
307
|
+
if (abortPromise === null)
|
|
308
|
+
await writable.abort?.().catch(() => { });
|
|
309
|
+
else
|
|
310
|
+
await abortPromise;
|
|
311
|
+
if (aborted)
|
|
312
|
+
throw signal?.reason;
|
|
255
313
|
return false;
|
|
256
314
|
}
|
|
315
|
+
finally {
|
|
316
|
+
signal?.removeEventListener('abort', onAbort);
|
|
317
|
+
}
|
|
257
318
|
}
|
|
258
319
|
//# sourceMappingURL=webDialog.js.map
|
package/dist/webDialog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webDialog.js","sourceRoot":"","sources":["../src/webDialog.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"webDialog.js","sourceRoot":"","sources":["../src/webDialog.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webFilesystem.d.ts","sourceRoot":"","sources":["../src/webFilesystem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAIjF,eAAO,MAAM,oBAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"webFilesystem.d.ts","sourceRoot":"","sources":["../src/webFilesystem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAIjF,eAAO,MAAM,oBAAoB,EAAE,qBAmQlC,CAAC"}
|
package/dist/webFilesystem.js
CHANGED
|
@@ -1,18 +1,23 @@
|
|
|
1
1
|
// Stable OPFS provider. Unsupported symlink, permissions, real-path, watch, and well-known-path
|
|
2
2
|
// operations are intentionally absent; @flighthq/filesystem owns those documented absence results.
|
|
3
3
|
export const webFileSystemBackend = {
|
|
4
|
-
async appendTextFile(path, data) {
|
|
4
|
+
async appendTextFile(path, data, signal) {
|
|
5
|
+
signal?.throwIfAborted();
|
|
5
6
|
const handle = await getFileHandle(path, false);
|
|
7
|
+
signal?.throwIfAborted();
|
|
6
8
|
let existing = '';
|
|
7
9
|
if (handle !== null) {
|
|
8
10
|
try {
|
|
9
|
-
|
|
11
|
+
const file = await handle.getFile();
|
|
12
|
+
signal?.throwIfAborted();
|
|
13
|
+
existing = await file.text();
|
|
10
14
|
}
|
|
11
15
|
catch {
|
|
12
16
|
existing = '';
|
|
13
17
|
}
|
|
14
18
|
}
|
|
15
|
-
|
|
19
|
+
signal?.throwIfAborted();
|
|
20
|
+
return writeFile(path, existing + data, signal);
|
|
16
21
|
},
|
|
17
22
|
async canAccessFile(path, mode) {
|
|
18
23
|
if (mode === 'executable')
|
|
@@ -73,10 +78,13 @@ export const webFileSystemBackend = {
|
|
|
73
78
|
const root = await getRoot();
|
|
74
79
|
return root !== null && (await getDirectoryHandle(root, splitPath(path), true)) !== null;
|
|
75
80
|
},
|
|
76
|
-
async openFileReadStream(path) {
|
|
81
|
+
async openFileReadStream(path, signal) {
|
|
82
|
+
signal?.throwIfAborted();
|
|
77
83
|
const handle = await getFileHandle(path, false);
|
|
84
|
+
signal?.throwIfAborted();
|
|
78
85
|
if (handle === null)
|
|
79
86
|
return null;
|
|
87
|
+
signal?.throwIfAborted();
|
|
80
88
|
try {
|
|
81
89
|
return (await handle.getFile()).stream();
|
|
82
90
|
}
|
|
@@ -84,10 +92,13 @@ export const webFileSystemBackend = {
|
|
|
84
92
|
return null;
|
|
85
93
|
}
|
|
86
94
|
},
|
|
87
|
-
async openFileWriteStream(path) {
|
|
95
|
+
async openFileWriteStream(path, signal) {
|
|
96
|
+
signal?.throwIfAborted();
|
|
88
97
|
const handle = await getFileHandle(path, true);
|
|
98
|
+
signal?.throwIfAborted();
|
|
89
99
|
if (handle === null || typeof handle.createWritable !== 'function')
|
|
90
100
|
return null;
|
|
101
|
+
signal?.throwIfAborted();
|
|
91
102
|
try {
|
|
92
103
|
return (await handle.createWritable());
|
|
93
104
|
}
|
|
@@ -95,42 +106,65 @@ export const webFileSystemBackend = {
|
|
|
95
106
|
return null;
|
|
96
107
|
}
|
|
97
108
|
},
|
|
98
|
-
async readBinaryFile(path) {
|
|
109
|
+
async readBinaryFile(path, signal) {
|
|
110
|
+
signal?.throwIfAborted();
|
|
99
111
|
const handle = await getFileHandle(path, false);
|
|
112
|
+
signal?.throwIfAborted();
|
|
100
113
|
if (handle === null)
|
|
101
114
|
return null;
|
|
115
|
+
let file;
|
|
102
116
|
try {
|
|
103
|
-
|
|
117
|
+
file = await handle.getFile();
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
return null;
|
|
121
|
+
}
|
|
122
|
+
signal?.throwIfAborted();
|
|
123
|
+
try {
|
|
124
|
+
return new Uint8Array(await file.arrayBuffer());
|
|
104
125
|
}
|
|
105
126
|
catch {
|
|
106
127
|
return null;
|
|
107
128
|
}
|
|
108
129
|
},
|
|
109
|
-
async readBinaryFileRange(path, offset, length) {
|
|
130
|
+
async readBinaryFileRange(path, offset, length, signal) {
|
|
131
|
+
signal?.throwIfAborted();
|
|
110
132
|
const handle = await getFileHandle(path, false);
|
|
133
|
+
signal?.throwIfAborted();
|
|
111
134
|
if (handle === null)
|
|
112
135
|
return null;
|
|
136
|
+
let file;
|
|
137
|
+
try {
|
|
138
|
+
file = await handle.getFile();
|
|
139
|
+
}
|
|
140
|
+
catch {
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
143
|
+
signal?.throwIfAborted();
|
|
144
|
+
if (offset >= file.size)
|
|
145
|
+
return new Uint8Array(0);
|
|
113
146
|
try {
|
|
114
|
-
const file = await handle.getFile();
|
|
115
|
-
if (offset >= file.size)
|
|
116
|
-
return new Uint8Array(0);
|
|
117
147
|
return new Uint8Array(await file.slice(offset, offset + length).arrayBuffer());
|
|
118
148
|
}
|
|
119
149
|
catch {
|
|
120
150
|
return null;
|
|
121
151
|
}
|
|
122
152
|
},
|
|
123
|
-
async readDirectory(path) {
|
|
153
|
+
async readDirectory(path, signal) {
|
|
154
|
+
signal?.throwIfAborted();
|
|
124
155
|
const root = await getRoot();
|
|
156
|
+
signal?.throwIfAborted();
|
|
125
157
|
if (root === null)
|
|
126
158
|
return [];
|
|
127
159
|
const directory = await getDirectoryHandle(root, splitPath(path), false);
|
|
160
|
+
signal?.throwIfAborted();
|
|
128
161
|
if (directory === null)
|
|
129
162
|
return [];
|
|
130
163
|
const entries = [];
|
|
131
164
|
try {
|
|
132
165
|
const base = normalizePath(path);
|
|
133
166
|
for await (const [name, handle] of asAsyncEntries(directory)) {
|
|
167
|
+
signal?.throwIfAborted();
|
|
134
168
|
entries.push({
|
|
135
169
|
isDirectory: handle.kind === 'directory',
|
|
136
170
|
name,
|
|
@@ -140,31 +174,48 @@ export const webFileSystemBackend = {
|
|
|
140
174
|
return entries;
|
|
141
175
|
}
|
|
142
176
|
catch {
|
|
177
|
+
if (signal?.aborted)
|
|
178
|
+
throw signal.reason;
|
|
143
179
|
return [];
|
|
144
180
|
}
|
|
145
181
|
},
|
|
146
182
|
async readDirectoryRecursive(path, options) {
|
|
183
|
+
options?.signal?.throwIfAborted();
|
|
147
184
|
const root = await getRoot();
|
|
185
|
+
options?.signal?.throwIfAborted();
|
|
148
186
|
if (root === null)
|
|
149
187
|
return [];
|
|
150
188
|
const directory = await getDirectoryHandle(root, splitPath(path), false);
|
|
189
|
+
options?.signal?.throwIfAborted();
|
|
151
190
|
if (directory === null)
|
|
152
191
|
return [];
|
|
153
192
|
const entries = [];
|
|
154
193
|
try {
|
|
155
|
-
await walkDirectory(directory, normalizePath(path), entries, 0, options?.maxDepth ?? Infinity);
|
|
194
|
+
await walkDirectory(directory, normalizePath(path), entries, 0, options?.maxDepth ?? Infinity, options?.signal);
|
|
156
195
|
return entries;
|
|
157
196
|
}
|
|
158
197
|
catch {
|
|
198
|
+
if (options?.signal?.aborted)
|
|
199
|
+
throw options.signal.reason;
|
|
159
200
|
return [];
|
|
160
201
|
}
|
|
161
202
|
},
|
|
162
|
-
async readTextFile(path) {
|
|
203
|
+
async readTextFile(path, signal) {
|
|
204
|
+
signal?.throwIfAborted();
|
|
163
205
|
const handle = await getFileHandle(path, false);
|
|
206
|
+
signal?.throwIfAborted();
|
|
164
207
|
if (handle === null)
|
|
165
208
|
return null;
|
|
209
|
+
let file;
|
|
210
|
+
try {
|
|
211
|
+
file = await handle.getFile();
|
|
212
|
+
}
|
|
213
|
+
catch {
|
|
214
|
+
return null;
|
|
215
|
+
}
|
|
216
|
+
signal?.throwIfAborted();
|
|
166
217
|
try {
|
|
167
|
-
return await
|
|
218
|
+
return await file.text();
|
|
168
219
|
}
|
|
169
220
|
catch {
|
|
170
221
|
return null;
|
|
@@ -217,30 +268,39 @@ export const webFileSystemBackend = {
|
|
|
217
268
|
return null;
|
|
218
269
|
return { createdTime: 0, isDirectory: true, isSymlink: false, modifiedTime: 0, size: 0 };
|
|
219
270
|
},
|
|
220
|
-
async writeBinaryFile(path, data) {
|
|
221
|
-
|
|
271
|
+
async writeBinaryFile(path, data, signal) {
|
|
272
|
+
signal?.throwIfAborted();
|
|
273
|
+
return writeFile(path, data.slice(), signal);
|
|
222
274
|
},
|
|
223
|
-
async writeFileAtomic(path, data) {
|
|
275
|
+
async writeFileAtomic(path, data, signal) {
|
|
276
|
+
signal?.throwIfAborted();
|
|
224
277
|
const temporaryPath = path + '.__atomic_tmp__';
|
|
225
278
|
const payload = typeof data === 'string' ? data : data.slice();
|
|
226
|
-
if (!(await writeFile(temporaryPath, payload)))
|
|
227
|
-
return false;
|
|
228
|
-
const temporaryHandle = await getFileHandle(temporaryPath, false);
|
|
229
|
-
if (temporaryHandle === null)
|
|
230
|
-
return false;
|
|
231
279
|
try {
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
await
|
|
235
|
-
|
|
280
|
+
if (!(await writeFile(temporaryPath, payload, signal)))
|
|
281
|
+
return false;
|
|
282
|
+
const temporaryHandle = await getFileHandle(temporaryPath, false);
|
|
283
|
+
signal?.throwIfAborted();
|
|
284
|
+
if (temporaryHandle === null)
|
|
285
|
+
return false;
|
|
286
|
+
const file = await temporaryHandle.getFile();
|
|
287
|
+
signal?.throwIfAborted();
|
|
288
|
+
const bytes = new Uint8Array(await file.arrayBuffer());
|
|
289
|
+
signal?.throwIfAborted();
|
|
290
|
+
return await writeFile(path, bytes, signal);
|
|
236
291
|
}
|
|
237
292
|
catch {
|
|
238
|
-
|
|
293
|
+
if (signal?.aborted)
|
|
294
|
+
throw signal.reason;
|
|
239
295
|
return false;
|
|
240
296
|
}
|
|
297
|
+
finally {
|
|
298
|
+
await removeFile(temporaryPath);
|
|
299
|
+
}
|
|
241
300
|
},
|
|
242
|
-
async writeTextFile(path, data) {
|
|
243
|
-
|
|
301
|
+
async writeTextFile(path, data, signal) {
|
|
302
|
+
signal?.throwIfAborted();
|
|
303
|
+
return writeFile(path, data, signal);
|
|
244
304
|
},
|
|
245
305
|
};
|
|
246
306
|
function asAsyncEntries(directory) {
|
|
@@ -311,28 +371,61 @@ async function removeFile(path) {
|
|
|
311
371
|
function splitPath(path) {
|
|
312
372
|
return path.split('/').filter((segment) => segment !== '' && segment !== '.');
|
|
313
373
|
}
|
|
314
|
-
async function walkDirectory(directory, basePath, out, depth, maxDepth) {
|
|
374
|
+
async function walkDirectory(directory, basePath, out, depth, maxDepth, signal) {
|
|
315
375
|
for await (const [name, handle] of asAsyncEntries(directory)) {
|
|
376
|
+
signal?.throwIfAborted();
|
|
316
377
|
const path = basePath === '' ? name : `${basePath}/${name}`;
|
|
317
378
|
const isDirectory = handle.kind === 'directory';
|
|
318
379
|
out.push({ isDirectory, name, path });
|
|
319
380
|
if (isDirectory && depth < maxDepth) {
|
|
320
|
-
await walkDirectory(handle, path, out, depth + 1, maxDepth);
|
|
381
|
+
await walkDirectory(handle, path, out, depth + 1, maxDepth, signal);
|
|
321
382
|
}
|
|
322
383
|
}
|
|
323
384
|
}
|
|
324
|
-
async function writeFile(path, data) {
|
|
385
|
+
async function writeFile(path, data, signal) {
|
|
386
|
+
signal?.throwIfAborted();
|
|
325
387
|
const handle = await getFileHandle(path, true);
|
|
388
|
+
signal?.throwIfAborted();
|
|
326
389
|
if (handle === null || typeof handle.createWritable !== 'function')
|
|
327
390
|
return false;
|
|
391
|
+
let writable;
|
|
392
|
+
try {
|
|
393
|
+
writable = await handle.createWritable();
|
|
394
|
+
}
|
|
395
|
+
catch {
|
|
396
|
+
return false;
|
|
397
|
+
}
|
|
398
|
+
if (signal?.aborted) {
|
|
399
|
+
await writable.abort(signal.reason).catch(() => { });
|
|
400
|
+
throw signal.reason;
|
|
401
|
+
}
|
|
402
|
+
let aborted = false;
|
|
403
|
+
let abortPromise = null;
|
|
404
|
+
const onAbort = () => {
|
|
405
|
+
aborted = true;
|
|
406
|
+
abortPromise = writable.abort(signal?.reason).catch(() => { });
|
|
407
|
+
};
|
|
408
|
+
signal?.addEventListener('abort', onAbort, { once: true });
|
|
328
409
|
try {
|
|
329
|
-
const writable = await handle.createWritable();
|
|
330
410
|
await writable.write(data);
|
|
411
|
+
if (aborted) {
|
|
412
|
+
await abortPromise;
|
|
413
|
+
throw signal?.reason;
|
|
414
|
+
}
|
|
331
415
|
await writable.close();
|
|
332
416
|
return true;
|
|
333
417
|
}
|
|
334
418
|
catch {
|
|
419
|
+
if (abortPromise === null)
|
|
420
|
+
await writable.abort().catch(() => { });
|
|
421
|
+
else
|
|
422
|
+
await abortPromise;
|
|
423
|
+
if (aborted)
|
|
424
|
+
throw signal?.reason;
|
|
335
425
|
return false;
|
|
336
426
|
}
|
|
427
|
+
finally {
|
|
428
|
+
signal?.removeEventListener('abort', onAbort);
|
|
429
|
+
}
|
|
337
430
|
}
|
|
338
431
|
//# sourceMappingURL=webFilesystem.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webFilesystem.js","sourceRoot":"","sources":["../src/webFilesystem.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"webFilesystem.js","sourceRoot":"","sources":["../src/webFilesystem.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flighthq/host-web",
|
|
3
|
-
"version": "0.5.1-next.
|
|
3
|
+
"version": "0.5.1-next.685.f72fc7f",
|
|
4
4
|
"author": "Joshua Granick and other contributors",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -38,41 +38,41 @@
|
|
|
38
38
|
"clean:dist": "tsx ../../scripts/clean-package-dist.ts"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@flighthq/app": "0.5.1-next.
|
|
42
|
-
"@flighthq/application": "0.5.1-next.
|
|
43
|
-
"@flighthq/audio": "0.5.1-next.
|
|
44
|
-
"@flighthq/bitmap": "0.5.1-next.
|
|
45
|
-
"@flighthq/device": "0.5.1-next.
|
|
46
|
-
"@flighthq/dialog": "0.5.1-next.
|
|
47
|
-
"@flighthq/entity": "0.5.1-next.
|
|
48
|
-
"@flighthq/filesystem": "0.5.1-next.
|
|
49
|
-
"@flighthq/font": "0.5.1-next.
|
|
50
|
-
"@flighthq/geolocation": "0.5.1-next.
|
|
51
|
-
"@flighthq/glyphatlas": "0.5.1-next.
|
|
52
|
-
"@flighthq/haptics": "0.5.1-next.
|
|
53
|
-
"@flighthq/image": "0.5.1-next.
|
|
54
|
-
"@flighthq/lifecycle": "0.5.1-next.
|
|
55
|
-
"@flighthq/media": "0.5.1-next.
|
|
56
|
-
"@flighthq/menu": "0.5.1-next.
|
|
57
|
-
"@flighthq/midi": "0.5.1-next.
|
|
58
|
-
"@flighthq/notification": "0.5.1-next.
|
|
59
|
-
"@flighthq/platform": "0.5.1-next.
|
|
60
|
-
"@flighthq/power": "0.5.1-next.
|
|
61
|
-
"@flighthq/protocol": "0.5.1-next.
|
|
62
|
-
"@flighthq/render": "0.5.1-next.
|
|
63
|
-
"@flighthq/render-gl": "0.5.1-next.
|
|
64
|
-
"@flighthq/render-wgpu": "0.5.1-next.
|
|
65
|
-
"@flighthq/screen": "0.5.1-next.
|
|
66
|
-
"@flighthq/sensors": "0.5.1-next.
|
|
67
|
-
"@flighthq/socket": "0.5.1-next.
|
|
68
|
-
"@flighthq/share": "0.5.1-next.
|
|
69
|
-
"@flighthq/signals": "0.5.1-next.
|
|
70
|
-
"@flighthq/statusbar": "0.5.1-next.
|
|
71
|
-
"@flighthq/storage": "0.5.1-next.
|
|
72
|
-
"@flighthq/types": "0.5.1-next.
|
|
73
|
-
"@flighthq/useragent": "0.5.1-next.
|
|
74
|
-
"@flighthq/video": "0.5.1-next.
|
|
75
|
-
"@flighthq/webcam": "0.5.1-next.
|
|
41
|
+
"@flighthq/app": "0.5.1-next.685.f72fc7f",
|
|
42
|
+
"@flighthq/application": "0.5.1-next.685.f72fc7f",
|
|
43
|
+
"@flighthq/audio": "0.5.1-next.685.f72fc7f",
|
|
44
|
+
"@flighthq/bitmap": "0.5.1-next.685.f72fc7f",
|
|
45
|
+
"@flighthq/device": "0.5.1-next.685.f72fc7f",
|
|
46
|
+
"@flighthq/dialog": "0.5.1-next.685.f72fc7f",
|
|
47
|
+
"@flighthq/entity": "0.5.1-next.685.f72fc7f",
|
|
48
|
+
"@flighthq/filesystem": "0.5.1-next.685.f72fc7f",
|
|
49
|
+
"@flighthq/font": "0.5.1-next.685.f72fc7f",
|
|
50
|
+
"@flighthq/geolocation": "0.5.1-next.685.f72fc7f",
|
|
51
|
+
"@flighthq/glyphatlas": "0.5.1-next.685.f72fc7f",
|
|
52
|
+
"@flighthq/haptics": "0.5.1-next.685.f72fc7f",
|
|
53
|
+
"@flighthq/image": "0.5.1-next.685.f72fc7f",
|
|
54
|
+
"@flighthq/lifecycle": "0.5.1-next.685.f72fc7f",
|
|
55
|
+
"@flighthq/media": "0.5.1-next.685.f72fc7f",
|
|
56
|
+
"@flighthq/menu": "0.5.1-next.685.f72fc7f",
|
|
57
|
+
"@flighthq/midi": "0.5.1-next.685.f72fc7f",
|
|
58
|
+
"@flighthq/notification": "0.5.1-next.685.f72fc7f",
|
|
59
|
+
"@flighthq/platform": "0.5.1-next.685.f72fc7f",
|
|
60
|
+
"@flighthq/power": "0.5.1-next.685.f72fc7f",
|
|
61
|
+
"@flighthq/protocol": "0.5.1-next.685.f72fc7f",
|
|
62
|
+
"@flighthq/render": "0.5.1-next.685.f72fc7f",
|
|
63
|
+
"@flighthq/render-gl": "0.5.1-next.685.f72fc7f",
|
|
64
|
+
"@flighthq/render-wgpu": "0.5.1-next.685.f72fc7f",
|
|
65
|
+
"@flighthq/screen": "0.5.1-next.685.f72fc7f",
|
|
66
|
+
"@flighthq/sensors": "0.5.1-next.685.f72fc7f",
|
|
67
|
+
"@flighthq/socket": "0.5.1-next.685.f72fc7f",
|
|
68
|
+
"@flighthq/share": "0.5.1-next.685.f72fc7f",
|
|
69
|
+
"@flighthq/signals": "0.5.1-next.685.f72fc7f",
|
|
70
|
+
"@flighthq/statusbar": "0.5.1-next.685.f72fc7f",
|
|
71
|
+
"@flighthq/storage": "0.5.1-next.685.f72fc7f",
|
|
72
|
+
"@flighthq/types": "0.5.1-next.685.f72fc7f",
|
|
73
|
+
"@flighthq/useragent": "0.5.1-next.685.f72fc7f",
|
|
74
|
+
"@flighthq/video": "0.5.1-next.685.f72fc7f",
|
|
75
|
+
"@flighthq/webcam": "0.5.1-next.685.f72fc7f"
|
|
76
76
|
},
|
|
77
77
|
"devDependencies": {
|
|
78
78
|
"typescript": "^5.3.0"
|
package/src/webDialog.test.ts
CHANGED
|
@@ -146,6 +146,24 @@ describe('webFileOpenDialogBackend', () => {
|
|
|
146
146
|
expect(removeInput).toHaveBeenCalledWith('cancel', expect.any(Function));
|
|
147
147
|
expect(removeWindow).toHaveBeenCalledWith('focus', expect.any(Function));
|
|
148
148
|
});
|
|
149
|
+
|
|
150
|
+
it('settles an in-flight legacy picker abort once and removes every listener', async () => {
|
|
151
|
+
const input = document.createElement('input');
|
|
152
|
+
const removeInput = vi.spyOn(input, 'removeEventListener');
|
|
153
|
+
const removeWindow = vi.spyOn(window, 'removeEventListener');
|
|
154
|
+
const controller = new AbortController();
|
|
155
|
+
const removeSignal = vi.spyOn(controller.signal, 'removeEventListener');
|
|
156
|
+
vi.spyOn(document, 'createElement').mockReturnValue(input as never);
|
|
157
|
+
|
|
158
|
+
const pending = webFileOpenDialogBackend.open({ signal: controller.signal });
|
|
159
|
+
controller.abort(new Error('cancel picker'));
|
|
160
|
+
|
|
161
|
+
await expect(pending).resolves.toEqual({ outcome: 'cancelled' });
|
|
162
|
+
expect(removeInput).toHaveBeenCalledWith('change', expect.any(Function));
|
|
163
|
+
expect(removeInput).toHaveBeenCalledWith('cancel', expect.any(Function));
|
|
164
|
+
expect(removeWindow).toHaveBeenCalledWith('focus', expect.any(Function));
|
|
165
|
+
expect(removeSignal).toHaveBeenCalledWith('abort', expect.any(Function));
|
|
166
|
+
});
|
|
149
167
|
});
|
|
150
168
|
|
|
151
169
|
describe('webFileSaveDialogBackend', () => {
|
|
@@ -179,12 +197,36 @@ describe('webFileSaveDialogBackend', () => {
|
|
|
179
197
|
expect(writes).toEqual(['saved']);
|
|
180
198
|
expect(closes).toBe(1);
|
|
181
199
|
});
|
|
200
|
+
|
|
201
|
+
it('aborts an in-flight handle write and releases the signal listener', async () => {
|
|
202
|
+
const reason = new Error('cancel handle write');
|
|
203
|
+
const controller = new AbortController();
|
|
204
|
+
const remove = vi.spyOn(controller.signal, 'removeEventListener');
|
|
205
|
+
const abort = vi.fn(async () => {});
|
|
206
|
+
(window as Window & { showSaveFilePicker?: unknown }).showSaveFilePicker = async () =>
|
|
207
|
+
fileSystemHandle('out.txt', '', {
|
|
208
|
+
abort,
|
|
209
|
+
async close() {},
|
|
210
|
+
async write() {
|
|
211
|
+
controller.abort(reason);
|
|
212
|
+
throw reason;
|
|
213
|
+
},
|
|
214
|
+
});
|
|
215
|
+
const result = await webFileSaveDialogBackend.save({});
|
|
216
|
+
expect(result.outcome).toBe('selected');
|
|
217
|
+
if (result.outcome !== 'selected') return;
|
|
218
|
+
|
|
219
|
+
const write = getFileDialogHandleOperations(result.handle)?.writeText;
|
|
220
|
+
await expect(write?.('saved', controller.signal)).rejects.toBe(reason);
|
|
221
|
+
expect(abort).toHaveBeenCalledWith(reason);
|
|
222
|
+
expect(remove).toHaveBeenCalledWith('abort', expect.any(Function));
|
|
223
|
+
});
|
|
182
224
|
});
|
|
183
225
|
|
|
184
226
|
function fileSystemHandle(
|
|
185
227
|
name: string,
|
|
186
228
|
text: string,
|
|
187
|
-
writable?: { close(): Promise<void>; write(data: unknown): Promise<void> },
|
|
229
|
+
writable?: { abort?(reason?: unknown): Promise<void>; close(): Promise<void>; write(data: unknown): Promise<void> },
|
|
188
230
|
) {
|
|
189
231
|
return {
|
|
190
232
|
kind: 'file' as const,
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { describe, expect, it } from 'vitest';
|
|
1
|
+
import { describe, expect, it, vi } from 'vitest';
|
|
2
2
|
|
|
3
3
|
import { webFileSystemBackend } from './webFilesystem';
|
|
4
4
|
|
|
5
5
|
describe('webFileSystemBackend', () => {
|
|
6
|
+
afterEach(() => vi.unstubAllGlobals());
|
|
7
|
+
|
|
6
8
|
it('publishes exactly the genuine OPFS operation family', () => {
|
|
7
9
|
expect(Object.keys(webFileSystemBackend).sort()).toEqual([
|
|
8
10
|
'appendTextFile',
|
|
@@ -33,4 +35,82 @@ describe('webFileSystemBackend', () => {
|
|
|
33
35
|
await expect(webFileSystemBackend.readTextFile?.('a')).resolves.toBe(null);
|
|
34
36
|
await expect(webFileSystemBackend.writeTextFile?.('a', 'b')).resolves.toBe(false);
|
|
35
37
|
});
|
|
38
|
+
|
|
39
|
+
it('aborts an in-flight owned writable and releases the signal listener', async () => {
|
|
40
|
+
const reason = new Error('cancel OPFS write');
|
|
41
|
+
const controller = new AbortController();
|
|
42
|
+
const remove = vi.spyOn(controller.signal, 'removeEventListener');
|
|
43
|
+
const abort = vi.fn(async () => {});
|
|
44
|
+
const writable = {
|
|
45
|
+
abort,
|
|
46
|
+
async close() {},
|
|
47
|
+
async write() {
|
|
48
|
+
controller.abort(reason);
|
|
49
|
+
throw reason;
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
vi.stubGlobal('navigator', {
|
|
53
|
+
storage: {
|
|
54
|
+
async getDirectory() {
|
|
55
|
+
return {
|
|
56
|
+
async getFileHandle() {
|
|
57
|
+
return {
|
|
58
|
+
async createWritable() {
|
|
59
|
+
return writable;
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
await expect(webFileSystemBackend.writeTextFile?.('a', 'b', controller.signal)).rejects.toBe(reason);
|
|
69
|
+
expect(abort).toHaveBeenCalledWith(reason);
|
|
70
|
+
expect(remove).toHaveBeenCalledWith('abort', expect.any(Function));
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
it('stops an in-flight recursive directory walk', async () => {
|
|
74
|
+
const reason = new Error('cancel OPFS walk');
|
|
75
|
+
const controller = new AbortController();
|
|
76
|
+
vi.stubGlobal('navigator', {
|
|
77
|
+
storage: {
|
|
78
|
+
async getDirectory() {
|
|
79
|
+
return {
|
|
80
|
+
async *entries() {
|
|
81
|
+
controller.abort(reason);
|
|
82
|
+
yield ['ignored', { kind: 'file' }];
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
await expect(webFileSystemBackend.readDirectoryRecursive?.('', { signal: controller.signal })).rejects.toBe(reason);
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
it('does not let a late abort rewrite a completed write', async () => {
|
|
93
|
+
const controller = new AbortController();
|
|
94
|
+
const abort = vi.fn(async () => {});
|
|
95
|
+
const writable = { abort, async close() {}, async write() {} };
|
|
96
|
+
vi.stubGlobal('navigator', {
|
|
97
|
+
storage: {
|
|
98
|
+
async getDirectory() {
|
|
99
|
+
return {
|
|
100
|
+
async getFileHandle() {
|
|
101
|
+
return {
|
|
102
|
+
async createWritable() {
|
|
103
|
+
return writable;
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
},
|
|
107
|
+
};
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
await expect(webFileSystemBackend.writeTextFile?.('a', 'b', controller.signal)).resolves.toBe(true);
|
|
113
|
+
controller.abort(new Error('too late'));
|
|
114
|
+
expect(abort).not.toHaveBeenCalled();
|
|
115
|
+
});
|
|
36
116
|
});
|
package/src/webNet.test.ts
CHANGED
|
@@ -182,6 +182,73 @@ describe('createWebNetBackend', () => {
|
|
|
182
182
|
expect(res.statusText).toBe('aborted');
|
|
183
183
|
});
|
|
184
184
|
|
|
185
|
+
it('never reaches the transport when the caller signal is already aborted', () => {
|
|
186
|
+
// The pre-aborted branch is the one a caller hits by passing a signal from a scope torn down
|
|
187
|
+
// before the request was issued. Asserted through the signal fetch actually receives, so the
|
|
188
|
+
// check cannot pass by the request merely failing for some other reason.
|
|
189
|
+
let observedAborted: boolean | null = null;
|
|
190
|
+
globalThis.fetch = ((_url: string, init: RequestInit) => {
|
|
191
|
+
const signal = init.signal as AbortSignal;
|
|
192
|
+
observedAborted = signal.aborted;
|
|
193
|
+
return Promise.reject(new DOMException('aborted', 'AbortError'));
|
|
194
|
+
}) as unknown as typeof fetch;
|
|
195
|
+
const controller = new AbortController();
|
|
196
|
+
controller.abort();
|
|
197
|
+
return createWebNetBackend()
|
|
198
|
+
.sendNetRequest({ method: 'GET', url: 'u' }, { signal: controller.signal })
|
|
199
|
+
.then((res) => {
|
|
200
|
+
expect(observedAborted).toBe(true);
|
|
201
|
+
expect(res.status).toBe(0);
|
|
202
|
+
expect(res.ok).toBe(false);
|
|
203
|
+
expect(res.statusText).toBe('aborted');
|
|
204
|
+
});
|
|
205
|
+
});
|
|
206
|
+
|
|
207
|
+
it('labels a caller abort apart from a timeout even when both are configured', async () => {
|
|
208
|
+
// A request carrying both timeoutMs and a caller signal must report which one fired. The timeout
|
|
209
|
+
// here is long enough that only the explicit abort can win, so the case needs no timer to elapse.
|
|
210
|
+
globalThis.fetch = ((_url: string, init: RequestInit) =>
|
|
211
|
+
new Promise<Response>((_resolve, reject) => {
|
|
212
|
+
const signal = init.signal as AbortSignal;
|
|
213
|
+
signal.addEventListener('abort', () => reject(new DOMException('aborted', 'AbortError')));
|
|
214
|
+
})) as unknown as typeof fetch;
|
|
215
|
+
const controller = new AbortController();
|
|
216
|
+
const promise = createWebNetBackend().sendNetRequest(
|
|
217
|
+
{ method: 'GET', timeoutMs: 60_000, url: 'u' },
|
|
218
|
+
{ signal: controller.signal },
|
|
219
|
+
);
|
|
220
|
+
controller.abort();
|
|
221
|
+
const res = await promise;
|
|
222
|
+
expect(res.statusText).toBe('aborted');
|
|
223
|
+
});
|
|
224
|
+
|
|
225
|
+
it('releases its abort listener from the caller signal once the request settles', async () => {
|
|
226
|
+
// A caller signal outlives the requests made with it — a per-request listener left attached is a
|
|
227
|
+
// leak that grows with every call and that no behavioural assertion would ever notice.
|
|
228
|
+
globalThis.fetch = (async () => fakeResponse({ text: 'ok' })) as unknown as typeof fetch;
|
|
229
|
+
const controller = new AbortController();
|
|
230
|
+
let attached = 0;
|
|
231
|
+
const target = controller.signal as AbortSignal & {
|
|
232
|
+
addEventListener: AbortSignal['addEventListener'];
|
|
233
|
+
removeEventListener: AbortSignal['removeEventListener'];
|
|
234
|
+
};
|
|
235
|
+
const add = target.addEventListener.bind(target);
|
|
236
|
+
const remove = target.removeEventListener.bind(target);
|
|
237
|
+
target.addEventListener = ((...args: Parameters<AbortSignal['addEventListener']>) => {
|
|
238
|
+
attached++;
|
|
239
|
+
return add(...args);
|
|
240
|
+
}) as AbortSignal['addEventListener'];
|
|
241
|
+
target.removeEventListener = ((...args: Parameters<AbortSignal['removeEventListener']>) => {
|
|
242
|
+
attached--;
|
|
243
|
+
return remove(...args);
|
|
244
|
+
}) as AbortSignal['removeEventListener'];
|
|
245
|
+
|
|
246
|
+
const backend = createWebNetBackend();
|
|
247
|
+
await backend.sendNetRequest({ method: 'GET', url: 'u' }, { signal: controller.signal });
|
|
248
|
+
await backend.sendNetRequest({ method: 'GET', url: 'u' }, { signal: controller.signal });
|
|
249
|
+
expect(attached).toBe(0);
|
|
250
|
+
});
|
|
251
|
+
|
|
185
252
|
it('emits download progress ticks when a progress signal is supplied', async () => {
|
|
186
253
|
globalThis.fetch = (async () =>
|
|
187
254
|
fakeResponse({
|