UNPKG

@nephele/adapter-nymph

Version:

Nymph.js based deduping file adapter for the Nephele WebDAV server.

47 lines (46 loc) 1.91 kB
import { Readable } from 'node:stream'; import type { Resource as ResourceInterface, User } from 'nephele'; import { Resource as NymphResource, ResourceData as NymphResourceData } from './entities/Resource.js'; import type Adapter 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; nymphResource: NymphResource & NymphResourceData; rootResource: NymphResource & NymphResourceData; constructor({ adapter, baseUrl, path, nymphResource, rootResource, }: { adapter: Adapter; baseUrl: URL; path: string; nymphResource: NymphResource & NymphResourceData; rootResource?: NymphResource & NymphResourceData; }); getLocks(): Promise<Lock[]>; getLocksByUser(user: User): Promise<Lock[]>; createLockForUser(user: User): Promise<Lock>; getProperties(): Promise<Properties>; private getBlobDirname; private deleteBlobIfOrphaned; getStream(range?: { start: number; end: number; }): Promise<Readable | import("fs").ReadStream>; setStream(input: Readable, _user: User, mediaType?: string): 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>; getFreeSpace(): Promise<number>; getTotalSpace(): Promise<number>; }