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
TypeScript
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;