UNPKG

@nephele/adapter-file-system

Version:

File system adapter for the Nephele WebDAV server.

30 lines (29 loc) 1.43 kB
import fsp from 'node:fs/promises'; 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; followLinks?: boolean; contentEtagMaxBytes?: number; }; export default class Adapter implements AdapterInterface { root: string; followLinks: boolean; stat: typeof fsp.stat; contentEtagMaxBytes: number; constructor({ root, followLinks, 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; }