📄 useFileSystemAccess¶
📊 Analysis Summary¶
| Metric | Count |
|---|---|
| 🔧 Functions | 7 |
| 📦 Imports | 12 |
| ⚡ Async/Await Patterns | 6 |
| 🟢 Vue Composition API | 5 |
| 📐 Interfaces | 6 |
| 📑 Type Aliases | 4 |
📚 Table of Contents¶
🛠️ File Location:¶
📂 packages/core/useFileSystemAccess/index.ts
📦 Imports¶
| Name | Source |
|---|---|
Awaitable |
@vueuse/shared |
ComputedRef |
vue |
MaybeRefOrGetter |
vue |
ShallowRef |
vue |
ConfigurableWindow |
../_configurable |
Supportable |
../types |
computed |
vue |
shallowRef |
vue |
toValue |
vue |
watch |
vue |
defaultWindow |
../_configurable |
useSupported |
../useSupported |
Async/Await Patterns¶
| Type | Function | Await Expressions | Promise Chains |
|---|---|---|---|
| async-function | open |
window.showOpenFilePicker({ ...toValue(options), ..._options }), updateData() | none |
| async-function | create |
(window as FileSystemAccessWindow).showSaveFilePicker({ ...options, ..._optio... | none |
| async-function | save |
fileHandle.value.createWritable(), writableStream.write(data.value), writable... | none |
| async-function | saveAs |
(window as FileSystemAccessWindow).showSaveFilePicker({ ...options, ..._optio... | none |
| async-function | updateFile |
fileHandle.value?.getFile() | none |
| async-function | updateData |
updateFile(), file.value?.text(), file.value?.arrayBuffer() | none |
Vue Composition API¶
| Name | Type | Reactive Variables | Composables |
|---|---|---|---|
computed |
computed | none | none |
computed |
computed | none | none |
computed |
computed | none | none |
computed |
computed | none | none |
watch |
watch | none | none |
Functions¶
useFileSystemAccess(): UseFileSystemAccessReturn<string | ArrayBuffer | Blob>¶
Create and read and write local files.
See: https://vueuse.org/useFileSystemAccess
Raw JSDoc
Internal helpers¶
Declared inside another function in this file.
open(_options: UseFileSystemAccessCommonOptions): Promise<void>¶
Parameters:
_optionsUseFileSystemAccessCommonOptions
Returns: Promise<void>
Calls:
window.showOpenFilePickertoValue (from vue)updateData
Code
create(_options: UseFileSystemAccessShowSaveFileOptions): Promise<void>¶
Parameters:
_optionsUseFileSystemAccessShowSaveFileOptions
Returns: Promise<void>
Calls:
(window as FileSystemAccessWindow).showSaveFilePickerupdateData
Code
save(_options: UseFileSystemAccessShowSaveFileOptions): Promise<void>¶
Parameters:
_optionsUseFileSystemAccessShowSaveFileOptions
Returns: Promise<void>
Calls:
saveAsfileHandle.value.createWritablewritableStream.writewritableStream.closeupdateFile
Internal Comments:
Code
async function save(_options: UseFileSystemAccessShowSaveFileOptions = {}) {
if (!isSupported.value)
return
if (!fileHandle.value)
// save as
return saveAs(_options)
if (data.value) {
const writableStream = await fileHandle.value.createWritable()
await writableStream.write(data.value)
await writableStream.close()
}
await updateFile()
}
saveAs(_options: UseFileSystemAccessShowSaveFileOptions): Promise<void>¶
Parameters:
_optionsUseFileSystemAccessShowSaveFileOptions
Returns: Promise<void>
Calls:
(window as FileSystemAccessWindow).showSaveFilePickerfileHandle.value.createWritablewritableStream.writewritableStream.closeupdateFile
Code
async function saveAs(_options: UseFileSystemAccessShowSaveFileOptions = {}) {
if (!isSupported.value)
return
fileHandle.value = await (window as FileSystemAccessWindow).showSaveFilePicker({ ...options, ..._options })
if (data.value) {
const writableStream = await fileHandle.value.createWritable()
await writableStream.write(data.value)
await writableStream.close()
}
await updateFile()
}
updateFile(): Promise<void>¶
Returns: Promise<void>
Calls:
fileHandle.value?.getFile
updateData(): Promise<void>¶
Returns: Promise<void>
Calls:
updateFiletoValue (from vue)file.value?.textfile.value?.arrayBuffer
Code
Interfaces¶
FileSystemAccessShowOpenFileOptions¶
Interface Code
Properties¶
| Name | Type | Optional | Description |
|---|---|---|---|
multiple |
boolean |
✓ | not shown |
types |
Array<{ description?: string accept: Record<string, string[]> }> |
✓ | not shown |
excludeAcceptAllOption |
boolean |
✓ | not shown |
FileSystemAccessShowSaveFileOptions¶
Interface Code
Properties¶
| Name | Type | Optional | Description |
|---|---|---|---|
suggestedName |
string |
✓ | not shown |
types |
Array<{ description?: string accept: Record<string, string[]> }> |
✓ | not shown |
excludeAcceptAllOption |
boolean |
✓ | not shown |
FileSystemFileHandle¶
Interface Code
Properties¶
| Name | Type | Optional | Description |
|---|---|---|---|
getFile |
() => Promise<File> |
✗ | not shown |
createWritable |
() => FileSystemWritableFileStream |
✗ | not shown |
FileSystemWritableFileStream¶
Interface Code
interface FileSystemWritableFileStream extends WritableStream {
/**
* @see https://developer.mozilla.org/en-US/docs/Web/API/FileSystemWritableFileStream/write
*/
write: FileSystemWritableFileStreamWrite
/**
* @see https://developer.mozilla.org/en-US/docs/Web/API/FileSystemWritableFileStream/seek
*/
seek: (position: number) => Promise<void>
/**
* @see https://developer.mozilla.org/en-US/docs/Web/API/FileSystemWritableFileStream/truncate
*/
truncate: (size: number) => Promise<void>
}
Properties¶
| Name | Type | Optional | Description |
|---|---|---|---|
write |
FileSystemWritableFileStreamWrite |
✗ | not shown |
seek |
(position: number) => Promise<void> |
✗ | not shown |
truncate |
(size: number) => Promise<void> |
✗ | not shown |
FileSystemWritableFileStreamWrite¶
Interface Code
interface FileSystemWritableFileStreamWrite {
(data: string | BufferSource | Blob): Promise<void>
(options: { type: 'write', position: number, data: string | BufferSource | Blob }): Promise<void>
(options: { type: 'seek', position: number }): Promise<void>
(options: { type: 'truncate', size: number }): Promise<void>
}
UseFileSystemAccessReturn<T = string>¶
Interface Code
export interface UseFileSystemAccessReturn<T = string> extends Supportable {
data: ShallowRef<T | undefined>
file: ShallowRef<File | undefined>
fileName: ComputedRef<string>
fileMIME: ComputedRef<string>
fileSize: ComputedRef<number>
fileLastModified: ComputedRef<number>
open: (_options?: UseFileSystemAccessCommonOptions) => Awaitable<void>
create: (_options?: UseFileSystemAccessShowSaveFileOptions) => Awaitable<void>
save: (_options?: UseFileSystemAccessShowSaveFileOptions) => Awaitable<void>
saveAs: (_options?: UseFileSystemAccessShowSaveFileOptions) => Awaitable<void>
updateData: () => Awaitable<void>
}
Properties¶
| Name | Type | Optional | Description |
|---|---|---|---|
data |
ShallowRef<T \| undefined> |
✗ | not shown |
file |
ShallowRef<File \| undefined> |
✗ | not shown |
fileName |
ComputedRef<string> |
✗ | not shown |
fileMIME |
ComputedRef<string> |
✗ | not shown |
fileSize |
ComputedRef<number> |
✗ | not shown |
fileLastModified |
ComputedRef<number> |
✗ | not shown |
open |
(_options?: UseFileSystemAccessCommonOptions) => Awaitable<void> |
✗ | not shown |
create |
(_options?: UseFileSystemAccessShowSaveFileOptions) => Awaitable<void> |
✗ | not shown |
save |
(_options?: UseFileSystemAccessShowSaveFileOptions) => Awaitable<void> |
✗ | not shown |
saveAs |
(_options?: UseFileSystemAccessShowSaveFileOptions) => Awaitable<void> |
✗ | not shown |
updateData |
() => Awaitable<void> |
✗ | not shown |
Type Aliases¶
FileSystemAccessWindow¶
/* * FileStream.write * @see https://developer.mozilla.org/en-US/docs/Web/API/FileSystemWritableFileStream/write /
type FileSystemAccessWindow = Window & {
showSaveFilePicker: (options: FileSystemAccessShowSaveFileOptions) => Promise<FileSystemFileHandle>
showOpenFilePicker: (options: FileSystemAccessShowOpenFileOptions) => Promise<FileSystemFileHandle[]>
};
UseFileSystemAccessCommonOptions¶
type UseFileSystemAccessCommonOptions = Pick<FileSystemAccessShowOpenFileOptions, 'types' | 'excludeAcceptAllOption'>;
UseFileSystemAccessShowSaveFileOptions¶
type UseFileSystemAccessShowSaveFileOptions = Pick<FileSystemAccessShowSaveFileOptions, 'suggestedName'>;
UseFileSystemAccessOptions¶
type UseFileSystemAccessOptions = ConfigurableWindow & UseFileSystemAccessCommonOptions & {
/**
* file data type
*/
dataType?: MaybeRefOrGetter<'Text' | 'ArrayBuffer' | 'Blob'>
};
Generated by Syntax Scribe