UNPKG

@nephele/adapter-virtual

Version:

Virtual resource adapter for the Nephele WebDAV server.

45 lines (44 loc) 1.65 kB
import { Readable } from 'node:stream'; import type { Resource as ResourceInterface, User } from 'nephele'; import type Adapter from './Adapter.js'; import type { RootFolder, Folder, File } from './Adapter.js'; import Properties from './Properties.js'; import Lock from './Lock.js'; export default class Resource implements ResourceInterface { adapter: Adapter; baseUrl: URL; path: string; file: RootFolder | Folder | File; exists: boolean; collection: boolean; constructor({ adapter, baseUrl, path: filePath, collection, }: { adapter: Adapter; baseUrl: URL; path: string; collection?: true; }); getFile(): File | RootFolder | undefined; setFile(file: RootFolder | Folder | File): void; unsetFile(): void; getLocks(): Promise<Lock[]>; getLocksByUser(user: User): Promise<Lock[]>; createLockForUser(user: User): Promise<Lock>; getProperties(): Promise<Properties>; getStream(range?: { start: number; end: number; }): Promise<Readable>; 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<any>; getMediaType(): Promise<string | null>; getCanonicalName(): Promise<string>; getCanonicalPath(): Promise<string>; getCanonicalUrl(): Promise<URL>; isCollection(): Promise<boolean>; getInternalMembers(_user: User): Promise<Resource[]>; }