UNPKG

tspace-nfs

Version:

tspace-nfs is a Network File System (NFS) and provides both server and client capabilities for accessing files over a network.

88 lines (87 loc) 3.75 kB
import { type TContext } from 'tspace-spear'; import { NfsServerCore } from './server.core'; import type { TCredentials, TLoginCrentials, TMonitors, TSetup } from '../types'; declare class NfsStudio extends NfsServerCore { protected _onStudioBucketCreated?: ({ bucket, secret, token }: TCredentials) => Promise<void> | null; protected _onStudioCredentials?: ({ username, password }: TLoginCrentials) => Promise<{ logged: boolean; buckets: string[]; }> | null; protected _onLoadBucketCredentials?: () => Promise<TCredentials[]>; protected _monitors?: ({ host, memory, cpu }: TMonitors) => Promise<void>; protected _onSetup?: () => TSetup; private BASE_FOLDER_STUDIO; /** * The 'useStudio' is method used to wrapper to check the credentials for studio. * @param {object} studio * @property {function} studio.onCredentials * @property {function} studio.onBucketCreated * @returns {this} */ useStudio({ onCredentials, onBucketCreated, onLoadBucketCredentials, onSetup }: { onCredentials: (({ username, password }: { username: string; password: string; }) => Promise<{ logged: boolean; buckets: string[]; }>); onBucketCreated?: (({ token, secret, bucket }: { token: string; secret: string; bucket: string; }) => Promise<void>); onLoadBucketCredentials?: (() => Promise<{ bucket: string; token: string; secret: string; }[]>); onSetup?: () => TSetup; }): this; /** * The 'onMonitors' is method used to monitors the server. * * @param {function} callback * @property {string} callback.host * @property {object} callback.memory * @property {object} callback.cpu * @returns {this} */ onMonitors(callback: ({ host, memory, cpu }: { host: string | null; memory: { total: number; heapTotal: number; heapUsed: number; rss: number; external: number; }; cpu: { total: number; max: number; min: number; avg: number; speed: number; }; }) => Promise<void>): this; protected studio: ({ res, cookies }: TContext) => Promise<any>; protected studioStorage: ({ req, res }: TContext) => Promise<void>; protected studioPreview: ({ req, res, params }: TContext) => Promise<any>; protected studioPreviewText: ({ req, res, params }: TContext) => Promise<any>; protected studioPreviewTextEdit: ({ req, res, params, body }: TContext) => Promise<void>; protected studioLogin: ({ res, body }: TContext) => Promise<void>; protected studioLogout: ({ res }: TContext) => Promise<void>; protected studioUpload: ({ req, res, files, body }: TContext) => Promise<void>; protected studioDownload: ({ req, res, body }: TContext) => Promise<void>; protected studioBucket: ({ req, res }: TContext) => Promise<void>; protected studioBucketCreate: ({ req, res, body }: TContext) => Promise<void>; protected studioFiles: ({ req, res, params }: TContext) => Promise<void>; protected studioEdit: ({ req, res, params, body }: TContext) => Promise<void>; protected studioRemove: ({ req, res, body, params }: TContext) => Promise<void>; protected studioGetPathShared: ({ req, res, params }: TContext) => Promise<void>; protected studioShared: ({ req, res, params, query }: TContext) => Promise<void | import("tspace-spear").TResponse<any>>; private _verifyShared; private _htmlFormatted; } export { NfsStudio }; export default NfsStudio;