@flighthq/filesystem 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/filesystem.d.ts +16 -16
- package/dist/filesystem.d.ts.map +1 -1
- package/dist/filesystem.js +138 -47
- package/dist/filesystem.js.map +1 -1
- package/package.json +3 -3
- package/src/filesystem.test.ts +49 -7
package/README.md
CHANGED
|
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/filesystem`. The `@f
|
|
|
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/filesystem@0.5.1-next.
|
|
17
|
-
- [License](https://github.com/flighthq/flight/blob/
|
|
16
|
+
- [Source for @flighthq/filesystem@0.5.1-next.685.f72fc7f](https://github.com/flighthq/flight/tree/f72fc7feaa9653d950f39c7d2fe6365f48e82e51/packages/filesystem)
|
|
17
|
+
- [License](https://github.com/flighthq/flight/blob/f72fc7feaa9653d950f39c7d2fe6365f48e82e51/LICENSE.md)
|
package/dist/filesystem.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { FileDialogHandle, FileEntry, FilePermissions, FileStat, FileSystemPathKind, FileSystemUsage, FileWalkOptions, FileWatchEvent, HasStorageFileSystem } from '@flighthq/types/contract';
|
|
2
|
-
export declare function appendTextFile(host: HasStorageFileSystem, path: string, data: string): Promise<boolean>;
|
|
2
|
+
export declare function appendTextFile(host: HasStorageFileSystem, path: string, data: string, signal?: AbortSignal): Promise<boolean>;
|
|
3
3
|
export declare function canAccessFile(host: HasStorageFileSystem, path: string, mode: 'readable' | 'writable' | 'executable'): Promise<boolean>;
|
|
4
4
|
export declare function copyFile(host: HasStorageFileSystem, from: string, to: string): Promise<boolean>;
|
|
5
5
|
export declare function createFileSymlink(_host: HasStorageFileSystem, _target: string, _linkPath: string): Promise<boolean>;
|
|
6
6
|
export declare function directoryExists(host: HasStorageFileSystem, path: string): Promise<boolean>;
|
|
7
7
|
export declare function fileExists(host: HasStorageFileSystem, path: string): Promise<boolean>;
|
|
8
|
-
export declare function findFiles(host: HasStorageFileSystem, rootPath: string, pattern: string): Promise<readonly FileEntry[]>;
|
|
8
|
+
export declare function findFiles(host: HasStorageFileSystem, rootPath: string, pattern: string, options?: Readonly<FileWalkOptions>): Promise<readonly FileEntry[]>;
|
|
9
9
|
export declare function getFileBaseName(path: string): string;
|
|
10
10
|
export declare function getFileDirectoryName(path: string): string;
|
|
11
11
|
export declare function getFileExtensionName(path: string): string;
|
|
@@ -17,26 +17,26 @@ export declare function isAbsoluteFilePath(path: string): boolean;
|
|
|
17
17
|
export declare function joinFilePath(...segments: readonly string[]): string;
|
|
18
18
|
export declare function makeDirectory(host: HasStorageFileSystem, path: string): Promise<boolean>;
|
|
19
19
|
export declare function normalizeFilePath(path: string): string;
|
|
20
|
-
export declare function openFileReadStream(host: HasStorageFileSystem, path: string): Promise<ReadableStream<Uint8Array> | null>;
|
|
21
|
-
export declare function openFileWriteStream(host: HasStorageFileSystem, path: string): Promise<WritableStream<Uint8Array> | null>;
|
|
22
|
-
export declare function readBinaryFile(host: HasStorageFileSystem, path: string): Promise<Uint8Array | null>;
|
|
23
|
-
export declare function readBinaryFileRange(host: HasStorageFileSystem, path: string, offset: number, length: number): Promise<Uint8Array | null>;
|
|
24
|
-
export declare function readDialogHandleBinaryFile(host: HasStorageFileSystem, handle: Readonly<FileDialogHandle
|
|
25
|
-
export declare function readDialogHandleTextFile(host: HasStorageFileSystem, handle: Readonly<FileDialogHandle
|
|
26
|
-
export declare function readDirectory(host: HasStorageFileSystem, path: string): Promise<FileEntry[]>;
|
|
20
|
+
export declare function openFileReadStream(host: HasStorageFileSystem, path: string, signal?: AbortSignal): Promise<ReadableStream<Uint8Array> | null>;
|
|
21
|
+
export declare function openFileWriteStream(host: HasStorageFileSystem, path: string, signal?: AbortSignal): Promise<WritableStream<Uint8Array> | null>;
|
|
22
|
+
export declare function readBinaryFile(host: HasStorageFileSystem, path: string, signal?: AbortSignal): Promise<Uint8Array | null>;
|
|
23
|
+
export declare function readBinaryFileRange(host: HasStorageFileSystem, path: string, offset: number, length: number, signal?: AbortSignal): Promise<Uint8Array | null>;
|
|
24
|
+
export declare function readDialogHandleBinaryFile(host: HasStorageFileSystem, handle: Readonly<FileDialogHandle>, signal?: AbortSignal): Promise<Uint8Array | null>;
|
|
25
|
+
export declare function readDialogHandleTextFile(host: HasStorageFileSystem, handle: Readonly<FileDialogHandle>, signal?: AbortSignal): Promise<string | null>;
|
|
26
|
+
export declare function readDirectory(host: HasStorageFileSystem, path: string, signal?: AbortSignal): Promise<FileEntry[]>;
|
|
27
27
|
export declare function readDirectoryRecursive(host: HasStorageFileSystem, path: string, options?: Readonly<FileWalkOptions>): Promise<readonly FileEntry[]>;
|
|
28
28
|
export declare function readFileSymlink(_host: HasStorageFileSystem, _path: string): Promise<string | null>;
|
|
29
|
-
export declare function readTextFile(host: HasStorageFileSystem, path: string): Promise<string | null>;
|
|
29
|
+
export declare function readTextFile(host: HasStorageFileSystem, path: string, signal?: AbortSignal): Promise<string | null>;
|
|
30
30
|
export declare function removeDirectory(host: HasStorageFileSystem, path: string, recursive?: boolean): Promise<boolean>;
|
|
31
31
|
export declare function removeFile(host: HasStorageFileSystem, path: string): Promise<boolean>;
|
|
32
32
|
export declare function renameFile(host: HasStorageFileSystem, from: string, to: string): Promise<boolean>;
|
|
33
33
|
export declare function setFilePermissions(_host: HasStorageFileSystem, _path: string, _permissions: Readonly<FilePermissions>): Promise<boolean>;
|
|
34
34
|
export declare function statFile(host: HasStorageFileSystem, path: string): Promise<FileStat | null>;
|
|
35
35
|
export declare function watchPath(_host: HasStorageFileSystem, _path: string, _listener: (event: Readonly<FileWatchEvent>) => void): () => void;
|
|
36
|
-
export declare function writeBinaryFile(host: HasStorageFileSystem, path: string, data: Readonly<Uint8Array
|
|
37
|
-
export declare function writeBinaryFileChunks(host: HasStorageFileSystem, path: string, chunks: AsyncIterable<Readonly<Uint8Array
|
|
38
|
-
export declare function writeDialogHandleBinaryFile(host: HasStorageFileSystem, handle: Readonly<FileDialogHandle>, data: Readonly<Uint8Array
|
|
39
|
-
export declare function writeDialogHandleTextFile(host: HasStorageFileSystem, handle: Readonly<FileDialogHandle>, data: string): Promise<boolean>;
|
|
40
|
-
export declare function writeFileAtomic(host: HasStorageFileSystem, path: string, data: Readonly<Uint8Array> | string): Promise<boolean>;
|
|
41
|
-
export declare function writeTextFile(host: HasStorageFileSystem, path: string, data: string): Promise<boolean>;
|
|
36
|
+
export declare function writeBinaryFile(host: HasStorageFileSystem, path: string, data: Readonly<Uint8Array>, signal?: AbortSignal): Promise<boolean>;
|
|
37
|
+
export declare function writeBinaryFileChunks(host: HasStorageFileSystem, path: string, chunks: AsyncIterable<Readonly<Uint8Array>>, signal?: AbortSignal): Promise<boolean>;
|
|
38
|
+
export declare function writeDialogHandleBinaryFile(host: HasStorageFileSystem, handle: Readonly<FileDialogHandle>, data: Readonly<Uint8Array>, signal?: AbortSignal): Promise<boolean>;
|
|
39
|
+
export declare function writeDialogHandleTextFile(host: HasStorageFileSystem, handle: Readonly<FileDialogHandle>, data: string, signal?: AbortSignal): Promise<boolean>;
|
|
40
|
+
export declare function writeFileAtomic(host: HasStorageFileSystem, path: string, data: Readonly<Uint8Array> | string, signal?: AbortSignal): Promise<boolean>;
|
|
41
|
+
export declare function writeTextFile(host: HasStorageFileSystem, path: string, data: string, signal?: AbortSignal): Promise<boolean>;
|
|
42
42
|
//# sourceMappingURL=filesystem.d.ts.map
|
package/dist/filesystem.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../src/filesystem.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,QAAQ,EACR,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,cAAc,EACd,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAElC,wBAAgB,cAAc,
|
|
1
|
+
{"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../src/filesystem.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,QAAQ,EACR,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,cAAc,EACd,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAElC,wBAAgB,cAAc,CAC5B,IAAI,EAAE,oBAAoB,EAC1B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,OAAO,CAAC,CAKlB;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,oBAAoB,EAC1B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,YAAY,GAC3C,OAAO,CAAC,OAAO,CAAC,CAElB;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE/F;AAGD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAEnH;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE1F;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAErF;AAED,wBAAsB,SAAS,CAC7B,IAAI,EAAE,oBAAoB,EAC1B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAClC,OAAO,CAAC,SAAS,SAAS,EAAE,CAAC,CAK/B;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGpD;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIzD;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIzD;AAGD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAE9G;AAGD,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAElG;AAGD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAEhG;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAE9F;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAIxD;AAED,wBAAgB,YAAY,CAAC,GAAG,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAUnE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAExF;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGtD;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,oBAAoB,EAC1B,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAK5C;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,oBAAoB,EAC1B,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAK5C;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,oBAAoB,EAC1B,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAK5B;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,oBAAoB,EAC1B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAK5B;AAED,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,oBAAoB,EAC1B,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAM5B;AAED,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,oBAAoB,EAC1B,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAMxB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAKlH;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,oBAAoB,EAC1B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAClC,OAAO,CAAC,SAAS,SAAS,EAAE,CAAC,CAK/B;AAGD,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAElG;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAKnH;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAE/G;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAErF;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAEjG;AAGD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,oBAAoB,EAC3B,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,QAAQ,CAAC,eAAe,CAAC,GACtC,OAAO,CAAC,OAAO,CAAC,CAElB;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAE3F;AAGD,wBAAgB,SAAS,CACvB,KAAK,EAAE,oBAAoB,EAC3B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,cAAc,CAAC,KAAK,IAAI,GACnD,MAAM,IAAI,CAEZ;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,oBAAoB,EAC1B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,EAC1B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,OAAO,CAAC,CAKlB;AAED,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,oBAAoB,EAC1B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAC3C,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,OAAO,CAAC,CAgClB;AAED,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,oBAAoB,EAC1B,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,EAC1B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,OAAO,CAAC,CAMlB;AAED,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,oBAAoB,EAC1B,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAClC,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,OAAO,CAAC,CAMlB;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,oBAAoB,EAC1B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,MAAM,EACnC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,OAAO,CAAC,CAKlB;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,oBAAoB,EAC1B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,OAAO,CAAC,CAKlB"}
|
package/dist/filesystem.js
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { getFileDialogHandleOperations } from '@flighthq/dialog/contract';
|
|
2
|
-
export function appendTextFile(host, path, data) {
|
|
3
|
-
|
|
2
|
+
export function appendTextFile(host, path, data, signal) {
|
|
3
|
+
if (signal?.aborted)
|
|
4
|
+
return Promise.reject(signal.reason);
|
|
5
|
+
const append = host.storage.fileSystem.appendTextFile;
|
|
6
|
+
if (append === undefined)
|
|
7
|
+
return Promise.resolve(false);
|
|
8
|
+
return signal === undefined ? append(path, data) : append(path, data, signal);
|
|
4
9
|
}
|
|
5
10
|
export function canAccessFile(host, path, mode) {
|
|
6
11
|
return host.storage.fileSystem.canAccessFile?.(path, mode) ?? Promise.resolve(false);
|
|
@@ -18,8 +23,8 @@ export function directoryExists(host, path) {
|
|
|
18
23
|
export function fileExists(host, path) {
|
|
19
24
|
return host.storage.fileSystem.fileExists?.(path) ?? Promise.resolve(false);
|
|
20
25
|
}
|
|
21
|
-
export async function findFiles(host, rootPath, pattern) {
|
|
22
|
-
const all = await readDirectoryRecursive(host, rootPath);
|
|
26
|
+
export async function findFiles(host, rootPath, pattern, options) {
|
|
27
|
+
const all = await readDirectoryRecursive(host, rootPath, options);
|
|
23
28
|
if (all.length === 0)
|
|
24
29
|
return [];
|
|
25
30
|
const re = globToRegExp(pattern);
|
|
@@ -81,42 +86,84 @@ export function normalizeFilePath(path) {
|
|
|
81
86
|
const prefix = path.startsWith('/') ? '/' : '';
|
|
82
87
|
return prefix + splitPath(path).join('/');
|
|
83
88
|
}
|
|
84
|
-
export function openFileReadStream(host, path) {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
89
|
+
export function openFileReadStream(host, path, signal) {
|
|
90
|
+
if (signal?.aborted)
|
|
91
|
+
return Promise.reject(signal.reason);
|
|
92
|
+
const open = host.storage.fileSystem.openFileReadStream;
|
|
93
|
+
if (open === undefined)
|
|
94
|
+
return Promise.resolve(null);
|
|
95
|
+
return signal === undefined ? open(path) : open(path, signal);
|
|
96
|
+
}
|
|
97
|
+
export function openFileWriteStream(host, path, signal) {
|
|
98
|
+
if (signal?.aborted)
|
|
99
|
+
return Promise.reject(signal.reason);
|
|
100
|
+
const open = host.storage.fileSystem.openFileWriteStream;
|
|
101
|
+
if (open === undefined)
|
|
102
|
+
return Promise.resolve(null);
|
|
103
|
+
return signal === undefined ? open(path) : open(path, signal);
|
|
104
|
+
}
|
|
105
|
+
export function readBinaryFile(host, path, signal) {
|
|
106
|
+
if (signal?.aborted)
|
|
107
|
+
return Promise.reject(signal.reason);
|
|
108
|
+
const read = host.storage.fileSystem.readBinaryFile;
|
|
109
|
+
if (read === undefined)
|
|
110
|
+
return Promise.resolve(null);
|
|
111
|
+
return signal === undefined ? read(path) : read(path, signal);
|
|
112
|
+
}
|
|
113
|
+
export function readBinaryFileRange(host, path, offset, length, signal) {
|
|
114
|
+
if (signal?.aborted)
|
|
115
|
+
return Promise.reject(signal.reason);
|
|
116
|
+
const read = host.storage.fileSystem.readBinaryFileRange;
|
|
117
|
+
if (read === undefined)
|
|
118
|
+
return Promise.resolve(null);
|
|
119
|
+
return signal === undefined ? read(path, offset, length) : read(path, offset, length, signal);
|
|
120
|
+
}
|
|
121
|
+
export async function readDialogHandleBinaryFile(host, handle, signal) {
|
|
122
|
+
if (signal?.aborted)
|
|
123
|
+
return Promise.reject(signal.reason);
|
|
97
124
|
if (handle.path !== null)
|
|
98
|
-
return readBinaryFile(host, handle.path);
|
|
125
|
+
return readBinaryFile(host, handle.path, signal);
|
|
99
126
|
const read = getFileDialogHandleOperations(handle)?.readBinary;
|
|
100
|
-
|
|
127
|
+
if (read === undefined)
|
|
128
|
+
return null;
|
|
129
|
+
return signal === undefined ? read() : read(signal);
|
|
101
130
|
}
|
|
102
|
-
export async function readDialogHandleTextFile(host, handle) {
|
|
131
|
+
export async function readDialogHandleTextFile(host, handle, signal) {
|
|
132
|
+
signal?.throwIfAborted();
|
|
103
133
|
if (handle.path !== null)
|
|
104
|
-
return readTextFile(host, handle.path);
|
|
134
|
+
return readTextFile(host, handle.path, signal);
|
|
105
135
|
const read = getFileDialogHandleOperations(handle)?.readText;
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
136
|
+
if (read === undefined)
|
|
137
|
+
return null;
|
|
138
|
+
return signal === undefined ? read() : read(signal);
|
|
139
|
+
}
|
|
140
|
+
export function readDirectory(host, path, signal) {
|
|
141
|
+
if (signal?.aborted)
|
|
142
|
+
return Promise.reject(signal.reason);
|
|
143
|
+
const read = host.storage.fileSystem.readDirectory;
|
|
144
|
+
if (read === undefined)
|
|
145
|
+
return Promise.resolve([]);
|
|
146
|
+
return signal === undefined ? read(path) : read(path, signal);
|
|
110
147
|
}
|
|
111
148
|
export function readDirectoryRecursive(host, path, options) {
|
|
112
|
-
|
|
149
|
+
if (options?.signal?.aborted)
|
|
150
|
+
return Promise.reject(options.signal.reason);
|
|
151
|
+
const read = host.storage.fileSystem.readDirectoryRecursive;
|
|
152
|
+
if (read === undefined)
|
|
153
|
+
return Promise.resolve([]);
|
|
154
|
+
return options === undefined ? read(path) : read(path, options);
|
|
113
155
|
}
|
|
114
156
|
// Symlinks are outside the honest host-provider surface until a real provider exists.
|
|
115
157
|
export function readFileSymlink(_host, _path) {
|
|
116
158
|
return Promise.resolve(null);
|
|
117
159
|
}
|
|
118
|
-
export function readTextFile(host, path) {
|
|
119
|
-
|
|
160
|
+
export function readTextFile(host, path, signal) {
|
|
161
|
+
if (signal?.aborted)
|
|
162
|
+
return Promise.reject(signal.reason);
|
|
163
|
+
const read = host.storage.fileSystem.readTextFile;
|
|
164
|
+
if (read === undefined)
|
|
165
|
+
return Promise.resolve(null);
|
|
166
|
+
return signal === undefined ? read(path) : read(path, signal);
|
|
120
167
|
}
|
|
121
168
|
export function removeDirectory(host, path, recursive) {
|
|
122
169
|
return host.storage.fileSystem.removeDirectory?.(path, recursive) ?? Promise.resolve(false);
|
|
@@ -138,42 +185,86 @@ export function statFile(host, path) {
|
|
|
138
185
|
export function watchPath(_host, _path, _listener) {
|
|
139
186
|
return () => { };
|
|
140
187
|
}
|
|
141
|
-
export function writeBinaryFile(host, path, data) {
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
188
|
+
export function writeBinaryFile(host, path, data, signal) {
|
|
189
|
+
if (signal?.aborted)
|
|
190
|
+
return Promise.reject(signal.reason);
|
|
191
|
+
const write = host.storage.fileSystem.writeBinaryFile;
|
|
192
|
+
if (write === undefined)
|
|
193
|
+
return Promise.resolve(false);
|
|
194
|
+
return signal === undefined ? write(path, data) : write(path, data, signal);
|
|
195
|
+
}
|
|
196
|
+
export async function writeBinaryFileChunks(host, path, chunks, signal) {
|
|
197
|
+
signal?.throwIfAborted();
|
|
198
|
+
const stream = await openFileWriteStream(host, path, signal);
|
|
146
199
|
if (stream === null)
|
|
147
200
|
return false;
|
|
148
201
|
const writer = stream.getWriter();
|
|
202
|
+
if (signal?.aborted) {
|
|
203
|
+
await writer.abort(signal.reason).catch(() => { });
|
|
204
|
+
throw signal.reason;
|
|
205
|
+
}
|
|
206
|
+
let aborted = false;
|
|
207
|
+
let abortPromise = null;
|
|
208
|
+
const onAbort = () => {
|
|
209
|
+
aborted = true;
|
|
210
|
+
abortPromise = writer.abort(signal?.reason).catch(() => { });
|
|
211
|
+
};
|
|
212
|
+
signal?.addEventListener('abort', onAbort, { once: true });
|
|
149
213
|
try {
|
|
150
|
-
for await (const chunk of chunks)
|
|
214
|
+
for await (const chunk of chunks) {
|
|
215
|
+
signal?.throwIfAborted();
|
|
151
216
|
await writer.write(chunk.slice());
|
|
217
|
+
}
|
|
218
|
+
signal?.throwIfAborted();
|
|
152
219
|
await writer.close();
|
|
153
220
|
return true;
|
|
154
221
|
}
|
|
155
222
|
catch {
|
|
156
|
-
|
|
223
|
+
if (abortPromise === null)
|
|
224
|
+
await writer.abort().catch(() => { });
|
|
225
|
+
else
|
|
226
|
+
await abortPromise;
|
|
227
|
+
if (aborted)
|
|
228
|
+
throw signal?.reason;
|
|
157
229
|
return false;
|
|
158
230
|
}
|
|
231
|
+
finally {
|
|
232
|
+
signal?.removeEventListener('abort', onAbort);
|
|
233
|
+
}
|
|
159
234
|
}
|
|
160
|
-
export async function writeDialogHandleBinaryFile(host, handle, data) {
|
|
235
|
+
export async function writeDialogHandleBinaryFile(host, handle, data, signal) {
|
|
236
|
+
signal?.throwIfAborted();
|
|
161
237
|
if (handle.path !== null)
|
|
162
|
-
return writeBinaryFile(host, handle.path, data);
|
|
238
|
+
return writeBinaryFile(host, handle.path, data, signal);
|
|
163
239
|
const write = getFileDialogHandleOperations(handle)?.writeBinary;
|
|
164
|
-
|
|
240
|
+
if (write === undefined)
|
|
241
|
+
return false;
|
|
242
|
+
return signal === undefined ? write(data) : write(data, signal);
|
|
165
243
|
}
|
|
166
|
-
export async function writeDialogHandleTextFile(host, handle, data) {
|
|
244
|
+
export async function writeDialogHandleTextFile(host, handle, data, signal) {
|
|
245
|
+
signal?.throwIfAborted();
|
|
167
246
|
if (handle.path !== null)
|
|
168
|
-
return writeTextFile(host, handle.path, data);
|
|
247
|
+
return writeTextFile(host, handle.path, data, signal);
|
|
169
248
|
const write = getFileDialogHandleOperations(handle)?.writeText;
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
249
|
+
if (write === undefined)
|
|
250
|
+
return false;
|
|
251
|
+
return signal === undefined ? write(data) : write(data, signal);
|
|
252
|
+
}
|
|
253
|
+
export function writeFileAtomic(host, path, data, signal) {
|
|
254
|
+
if (signal?.aborted)
|
|
255
|
+
return Promise.reject(signal.reason);
|
|
256
|
+
const write = host.storage.fileSystem.writeFileAtomic;
|
|
257
|
+
if (write === undefined)
|
|
258
|
+
return Promise.resolve(false);
|
|
259
|
+
return signal === undefined ? write(path, data) : write(path, data, signal);
|
|
260
|
+
}
|
|
261
|
+
export function writeTextFile(host, path, data, signal) {
|
|
262
|
+
if (signal?.aborted)
|
|
263
|
+
return Promise.reject(signal.reason);
|
|
264
|
+
const write = host.storage.fileSystem.writeTextFile;
|
|
265
|
+
if (write === undefined)
|
|
266
|
+
return Promise.resolve(false);
|
|
267
|
+
return signal === undefined ? write(path, data) : write(path, data, signal);
|
|
177
268
|
}
|
|
178
269
|
function globToRegExp(pattern) {
|
|
179
270
|
let re = '^';
|
package/dist/filesystem.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../src/filesystem.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../src/filesystem.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flighthq/filesystem",
|
|
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,8 +38,8 @@
|
|
|
38
38
|
"clean:dist": "tsx ../../scripts/clean-package-dist.ts"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@flighthq/dialog": "0.5.1-next.
|
|
42
|
-
"@flighthq/types": "0.5.1-next.
|
|
41
|
+
"@flighthq/dialog": "0.5.1-next.685.f72fc7f",
|
|
42
|
+
"@flighthq/types": "0.5.1-next.685.f72fc7f"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"typescript": "^5.3.0"
|
package/src/filesystem.test.ts
CHANGED
|
@@ -132,26 +132,42 @@ describe('readBinaryFile', () => {
|
|
|
132
132
|
bytes,
|
|
133
133
|
);
|
|
134
134
|
});
|
|
135
|
+
|
|
136
|
+
it('rejects pre-aborted reads without starting provider work', async () => {
|
|
137
|
+
const reason = new Error('cancel read');
|
|
138
|
+
const controller = new AbortController();
|
|
139
|
+
const readBinaryFile = vi.fn(async () => new Uint8Array());
|
|
140
|
+
controller.abort(reason);
|
|
141
|
+
await expect(filesystem.readBinaryFile(hostWith({ readBinaryFile }), 'a', controller.signal)).rejects.toBe(reason);
|
|
142
|
+
expect(readBinaryFile).not.toHaveBeenCalled();
|
|
143
|
+
});
|
|
135
144
|
});
|
|
136
145
|
|
|
137
146
|
describe('readBinaryFileRange', () => {
|
|
138
147
|
it('forwards the range', async () => {
|
|
139
148
|
const readBinaryFileRange = vi.fn(async () => new Uint8Array([2]));
|
|
140
|
-
|
|
141
|
-
|
|
149
|
+
const signal = new AbortController().signal;
|
|
150
|
+
await filesystem.readBinaryFileRange(hostWith({ readBinaryFileRange }), 'a', 1, 1, signal);
|
|
151
|
+
expect(readBinaryFileRange).toHaveBeenCalledWith('a', 1, 1, signal);
|
|
142
152
|
});
|
|
143
153
|
});
|
|
144
154
|
|
|
145
155
|
describe('readDialogHandleBinaryFile', () => {
|
|
146
156
|
it('uses retained handle operations when there is no native path', async () => {
|
|
147
157
|
const bytes = new Uint8Array([3]);
|
|
158
|
+
let observedSignal: AbortSignal | undefined;
|
|
148
159
|
const handle = createFileDialogHandle('File', 'a', null, {
|
|
149
|
-
readBinary: async () =>
|
|
160
|
+
readBinary: async (signal?: AbortSignal) => {
|
|
161
|
+
observedSignal = signal;
|
|
162
|
+
return bytes;
|
|
163
|
+
},
|
|
150
164
|
readText: async () => 'x',
|
|
151
165
|
writeBinary: async () => true,
|
|
152
166
|
writeText: async () => true,
|
|
153
167
|
});
|
|
154
|
-
|
|
168
|
+
const signal = new AbortController().signal;
|
|
169
|
+
await expect(filesystem.readDialogHandleBinaryFile(hostWith(), handle, signal)).resolves.toBe(bytes);
|
|
170
|
+
expect(observedSignal).toBe(signal);
|
|
155
171
|
});
|
|
156
172
|
});
|
|
157
173
|
|
|
@@ -238,8 +254,9 @@ describe('writeBinaryFile', () => {
|
|
|
238
254
|
it('forwards bytes without mutation', async () => {
|
|
239
255
|
const writeBinaryFile = vi.fn(async () => true);
|
|
240
256
|
const bytes = new Uint8Array([1]);
|
|
241
|
-
|
|
242
|
-
|
|
257
|
+
const signal = new AbortController().signal;
|
|
258
|
+
await filesystem.writeBinaryFile(hostWith({ writeBinaryFile }), 'a', bytes, signal);
|
|
259
|
+
expect(writeBinaryFile).toHaveBeenCalledWith('a', bytes, signal);
|
|
243
260
|
});
|
|
244
261
|
});
|
|
245
262
|
|
|
@@ -255,6 +272,27 @@ describe('writeBinaryFileChunks', () => {
|
|
|
255
272
|
await expect(filesystem.writeBinaryFileChunks(host, 'a', chunks())).resolves.toBe(true);
|
|
256
273
|
expect(written).toEqual([[1], [2]]);
|
|
257
274
|
});
|
|
275
|
+
|
|
276
|
+
it('aborts its owned writer, rejects with the abort reason, and removes its listener', async () => {
|
|
277
|
+
const reason = new Error('cancel chunks');
|
|
278
|
+
const controller = new AbortController();
|
|
279
|
+
const remove = vi.spyOn(controller.signal, 'removeEventListener');
|
|
280
|
+
const abort = vi.fn(async () => {});
|
|
281
|
+
const stream = new WritableStream<Uint8Array>({
|
|
282
|
+
abort,
|
|
283
|
+
async write() {
|
|
284
|
+
controller.abort(reason);
|
|
285
|
+
throw reason;
|
|
286
|
+
},
|
|
287
|
+
});
|
|
288
|
+
const host = hostWith({ openFileWriteStream: vi.fn(async () => stream) });
|
|
289
|
+
async function* chunks() {
|
|
290
|
+
yield new Uint8Array([1]);
|
|
291
|
+
}
|
|
292
|
+
await expect(filesystem.writeBinaryFileChunks(host, 'a', chunks(), controller.signal)).rejects.toBe(reason);
|
|
293
|
+
expect(abort).toHaveBeenCalledWith(reason);
|
|
294
|
+
expect(remove).toHaveBeenCalledWith('abort', expect.any(Function));
|
|
295
|
+
});
|
|
258
296
|
});
|
|
259
297
|
|
|
260
298
|
describe('writeDialogHandleBinaryFile', () => {
|
|
@@ -268,7 +306,11 @@ describe('writeDialogHandleTextFile', () => {
|
|
|
268
306
|
it('uses the passed host for a native path', async () => {
|
|
269
307
|
const writeTextFile = vi.fn(async () => true);
|
|
270
308
|
const handle = createFileDialogHandle('File', 'a', '/a');
|
|
271
|
-
|
|
309
|
+
const signal = new AbortController().signal;
|
|
310
|
+
await expect(filesystem.writeDialogHandleTextFile(hostWith({ writeTextFile }), handle, 'x', signal)).resolves.toBe(
|
|
311
|
+
true,
|
|
312
|
+
);
|
|
313
|
+
expect(writeTextFile).toHaveBeenCalledWith('/a', 'x', signal);
|
|
272
314
|
});
|
|
273
315
|
});
|
|
274
316
|
|