UNPKG

@nephele/adapter-file-system

Version:

File system adapter for the Nephele WebDAV server.

69 lines (68 loc) 2.35 kB
import { Readable } from 'node:stream'; import type { Stats } from 'node:fs'; import type { Resource as ResourceInterface, User } from 'nephele'; import type Adapter from './Adapter.js'; import Properties from './Properties.js'; import Lock from './Lock.js'; export type MetaStorage = { props?: { [name: string]: any; }; locks?: { [token: string]: { username: string; date: number; timeout: number; scope: 'exclusive' | 'shared'; depth: '0' | 'infinity'; provisional: boolean; owner: any; }; }; }; export default class Resource implements ResourceInterface { adapter: Adapter; baseUrl: URL; path: string; private collection; private etag; private stats; constructor({ adapter, baseUrl, path: myPath, collection, stats, }: { adapter: Adapter; baseUrl: URL; path: string; collection?: boolean; stats?: Stats; }); get absolutePath(): string; getLocks(): Promise<Lock[]>; getLocksByUser(user: User): Promise<Lock[]>; createLockForUser(user: User): Promise<Lock>; getProperties(): Promise<Properties>; getStream(range?: { start: number; end: number; }): Promise<Readable | import("fs").ReadStream>; setStream(input: Readable, user: User): Promise<void>; create(user: User): Promise<void>; delete(user: User): Promise<void>; copy(destination: URL, baseUrl: URL, user: User): Promise<void>; move(destination: URL, baseUrl: URL, user: User): Promise<void>; getLength(): Promise<number>; getEtag(): Promise<string>; getMediaType(): Promise<string | null>; getCanonicalName(): Promise<string>; getCanonicalPath(): Promise<string>; getCanonicalUrl(): Promise<URL>; isCollection(): Promise<boolean>; getInternalMembers(user: User): Promise<Resource[]>; exists(): Promise<boolean>; getStats(): Promise<Stats>; setMode(mode: number): Promise<void>; getFreeSpace(): Promise<number>; getTotalSpace(): Promise<number>; getMetadataFilePath(): Promise<string>; readMetadataFile(): Promise<MetaStorage>; saveMetadataFile(meta: MetaStorage, filePath?: string, metaFilePath?: string): Promise<void>; deleteOrphanedMetadataFiles(): Promise<void>; }