@nephele/adapter-file-system
Version:
File system adapter for the Nephele WebDAV server.
26 lines (25 loc) • 1.3 kB
TypeScript
import type { Request } from 'express';
import type { Adapter as AdapterInterface, AuthResponse, Method, User } from 'nephele';
import Resource from './Resource.js';
export type AdapterConfig = {
root: string;
contentEtagMaxBytes?: number;
};
export default class Adapter implements AdapterInterface {
root: string;
contentEtagMaxBytes: number;
constructor({ root, contentEtagMaxBytes }: AdapterConfig);
urlToRelativePath(url: URL, baseUrl: URL): string | null;
urlToAbsolutePath(url: URL, baseUrl: URL): string | null;
getUid(user: User): Promise<number>;
getGid(user: User): Promise<number>;
getGids(user: User): Promise<number[]>;
getComplianceClasses(_url: URL, _request: Request, _response: AuthResponse): Promise<string[]>;
getAllowedMethods(_url: URL, _request: Request, _response: AuthResponse): Promise<never[]>;
getOptionsResponseCacheControl(_url: URL, _request: Request, _response: AuthResponse): Promise<string>;
isAuthorized(url: URL, method: string, baseUrl: URL, user: User): Promise<boolean>;
getResource(url: URL, baseUrl: URL): Promise<Resource>;
newResource(url: URL, baseUrl: URL): Promise<Resource>;
newCollection(url: URL, baseUrl: URL): Promise<Resource>;
getMethod(method: string): typeof Method;
}