@@ -31,6 +31,7 @@ export type ReadableFile = {
3131
3232export type WritableFile = {
3333 write : ( name : string , blob : Blob | PromiseLike < Blob > , types ?: FilePickerAcceptType [ ] ) => Promise < string >
34+ asReadable : ( ) => ReadableFile | null
3435} & ListenableFile
3536
3637export type OpenableFolder = {
@@ -50,13 +51,14 @@ export const downloadBlob: WritableFile['write'] = async (name, blob) => {
5051
5152export const defaultWritable : WritableFile = {
5253 write : async ( name , blob ) => downloadBlob ( name , await blob ) ,
53- startListening : ( ) => null
54+ startListening : ( ) => null ,
55+ asReadable : ( ) => null ,
5456}
5557
5658//Gets the writeable file for where nothing has been defined.
5759export const getUndefinedWritable = ( description : string , ...accept : string [ ] ) : WritableFile & {
5860 unlink ?: ( ) => void ,
59- getName ?: ( ) => string | undefined
61+ getName ?: ( ) => string | undefined ,
6062} => {
6163 if ( ! FileSystemsAccessApi ) {
6264 return defaultWritable
@@ -92,8 +94,8 @@ export const getUndefinedWritable = (description: string, ...accept: string[]):
9294 file = null
9395 readable = null
9496 } ,
95- getName : ( ) => saveName ?? undefined
96-
97+ getName : ( ) => saveName ?? undefined ,
98+ asReadable : ( ) => readable ,
9799 }
98100}
99101
@@ -135,7 +137,7 @@ export const createReadableFile = (file: File): ReadableFile => {
135137export const createReadableFileExtended = ( handle : FileSystemFileHandle ) : ReadableFile => {
136138 const startListening : ListenableFile [ 'startListening' ] = listener => listener . addFile ( ( ) => handle . getFile ( ) )
137139
138- return {
140+ const readableFile : ReadableFile = {
139141 asFile : ( ) => handle . getFile ( ) ,
140142 asWritable : ( ) => {
141143 return {
@@ -145,12 +147,15 @@ export const createReadableFileExtended = (handle: FileSystemFileHandle): Readab
145147 await writable . close ( )
146148 return handle . name
147149 } ,
148- startListening
150+ startListening,
151+ asReadable : ( ) => readableFile ,
149152 }
150153 } ,
151154 name : handle . name ,
152155 startListening
153156 }
157+
158+ return readableFile
154159}
155160
156161
0 commit comments