nephele
Version:
Highly customizable and extensible WebDAV server for Node.js and Express.
31 lines (30 loc) • 1.18 kB
TypeScript
import type { Readable } from 'node:stream';
import type { Adapter } from './Adapter.js';
import type { Lock } from './Lock.js';
import type { Properties } from './Properties.js';
import type { User } from './User.js';
export interface Resource {
adapter: Adapter;
baseUrl: URL;
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, 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[]>;
}