UNPKG

@flystorage/local-fs

Version:

<img src="https://raw.githubusercontent.com/duna-oss/flystorage/main/flystorage.svg" width="50px" height="50px" />

71 lines (70 loc) 3.52 kB
import { ChecksumOptions, CreateDirectoryOptions, PublicUrlOptions, StatEntry, StorageAdapter, TemporaryUrlOptions, WriteOptions, CopyFileOptions, MoveFileOptions, MimeTypeOptions, UploadRequestOptions, UploadRequest } from '@flystorage/file-storage'; import { Readable } from 'stream'; import { UnixVisibilityConversion } from './unix-visibility.js'; import { PreparedUploadStrategy } from '@flystorage/file-storage'; export type LocalStorageAdapterOptions = { rootDirectoryVisibility?: string; publicUrlOptions?: LocalPublicUrlOptions; temporaryUrlOptions?: Omit<LocalTemporaryUrlOptions, 'expiresAt'>; }; export type LocalPublicUrlOptions = PublicUrlOptions & { baseUrl?: string; }; export type LocalPublicUrlGenerator = { publicUrl(path: string, options: LocalPublicUrlOptions): Promise<string>; }; export declare class BaseUrlLocalPublicUrlGenerator implements LocalPublicUrlGenerator { publicUrl(path: string, options: LocalPublicUrlOptions): Promise<string>; } export type LocalTemporaryUrlOptions = TemporaryUrlOptions & { baseUrl?: string; }; export type LocalTemporaryUrlGenerator = { temporaryUrl(path: string, options: LocalTemporaryUrlOptions): Promise<string>; }; export declare class FailingLocalTemporaryUrlGenerator implements LocalTemporaryUrlGenerator { temporaryUrl(): Promise<string>; } export declare class LocalStorageAdapter implements StorageAdapter { readonly rootDir: string; private readonly options; private readonly visibilityConversion; private readonly publicUrlGenerator; private readonly temporaryUrlGenerator; private readonly uploadPreparer; private prefixer; constructor(rootDir: string, options?: LocalStorageAdapterOptions, visibilityConversion?: UnixVisibilityConversion, publicUrlGenerator?: LocalPublicUrlGenerator, temporaryUrlGenerator?: LocalTemporaryUrlGenerator, uploadPreparer?: PreparedUploadStrategy); copyFile(from: string, to: string, options: CopyFileOptions): Promise<void>; moveFile(from: string, to: string, options: MoveFileOptions): Promise<void>; prepareUpload(path: string, options: UploadRequestOptions): Promise<UploadRequest>; temporaryUrl(path: string, options: TemporaryUrlOptions): Promise<string>; publicUrl(path: string, options: PublicUrlOptions): Promise<string>; mimeType(path: string, options: MimeTypeOptions): Promise<string>; fileSize(path: string): Promise<number>; lastModified(path: string): Promise<number>; list(path: string, { deep }: { deep: boolean; }): AsyncGenerator<StatEntry, any, unknown>; read(path: string): Promise<Readable>; write(path: string, contents: Readable, options: WriteOptions): Promise<void>; deleteFile(path: string): Promise<void>; createDirectory(path: string, options: CreateDirectoryOptions): Promise<void>; stat(path: string, type?: 'file' | 'directory'): Promise<StatEntry>; fileExists(path: string): Promise<boolean>; deleteDirectory(path: string): Promise<void>; private mapStatToEntry; changeVisibility(path: string, visibility: string): Promise<void>; visibility(path: string): Promise<string>; directoryExists(path: string): Promise<boolean>; private rootDirectoryCreation; private ensureRootDirectoryExists; private ensureParentDirectoryExists; checksum(path: string, options: ChecksumOptions): Promise<string>; } /** * BC export * * @deprecated */ export declare class LocalFileStorage extends LocalStorageAdapter { }