@nephele/adapter-nymph
Version:
Nymph.js based deduping file adapter for the Nephele WebDAV server.
47 lines (46 loc) • 1.91 kB
TypeScript
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>;
}