UNPKG

nxkit

Version:

This is a collection of tools, independent of any other libraries

213 lines (212 loc) 4.97 kB
/// <reference types="node" /> import { Router, Rule } from './router'; import { Notification, EventNoticer, Event } from './event'; import * as http from 'http'; import * as _conv from './ws/_conv'; export interface Options { host?: string; printLog?: boolean; autoIndex?: boolean; mimeTypes?: Dict<string>; errorStatus?: Dict<string>; agzip?: boolean; origins?: string[]; allowOrigin?: string; port?: number; fileCacheTime?: number; expires?: number; timeout?: number; session?: number; maxFileSize?: number; maxFormDataSize?: number; maxUploadFileSize?: number; textEncoding?: string; defaults?: string[]; formHash?: string; disable?: RegExp | string | string[]; root?: string | string[]; temp?: string; virtual?: string; gzip?: RegExp | string | false; staticService?: string; router?: Rule[]; } /** * @class Server */ export declare abstract class Server extends Notification { protected m_ws_conversations: Dict<_conv.ConversationBasic>; private m_server; protected m_isRun: boolean; private m_host; private m_port; get host(): string; get port(): number; /** * 打印log */ readonly printLog: boolean; /** * session timeout default 15 minutes * @type {Number} */ readonly session: number; /** * @type {String} */ readonly formHash: string; /** * 站点根目录 * @type {String} */ readonly root: string[]; /** * 临时目录 * @type {String} */ readonly temp: string; /** * 站点虚拟目录 * @type {String} */ readonly virtual: string; /** * web socket conversation verify origins * @type {String[]} */ readonly origins: string[]; /** * @type {String} */ readonly allowOrigin: string; /** * 是否浏览静态文件目录 * @type {Boolean} */ readonly autoIndex: boolean; /** * 静态缓存文件过期时间,以分钟为单位,为默认为30天 * @type {Number} */ readonly expires: number; /** * 静态文件缓存,该值可减低硬盘静态文件读取次数,但需要消耗内存,单位(秒) * @type {Number} */ readonly fileCacheTime: number; /** * Download file size limit * @type {Number} */ readonly maxFileSize: number; /** * Max form data size limit */ readonly maxFormDataSize: number; /** * Upload file size limit * @type {Number} */ readonly maxUploadFileSize: number; /** * 文本文件编码,默认为utf-8 */ readonly textEncoding: string; /** * 请求超时时间(毫秒) * @type {Number} */ get timeout(): number; /** * 静态gzip文件格式 * defaults javascript|text|json|xml * @type {Regexp} */ readonly gzip: RegExp | boolean; /** * 是否动态数据内容压缩 * @type {Boolean} */ readonly agzip: boolean; /** * 默认页 * @type {String[]} */ readonly defaults: string[]; /** * 设置禁止访问的目录 * @type {RegExp} */ readonly disable: RegExp; /** * 错误状态页 * @type {Object} */ readonly errorStatus: Dict<string>; /** * 配置的文件mime * mime types * @type {Object} */ readonly mimeTypes: Dict<string>; /** * http请求路由器 * @type {Router} */ readonly router: Router; /** * @get impl */ get impl(): http.Server; readonly onWSConversationOpen: EventNoticer<Event<_conv.ConversationBasic, object>>; readonly onWSConversationClose: EventNoticer<Event<_conv.ConversationBasic, object>>; /** * 构造函数 * @constructor * @param {Object} opt (Optional) 配置项 */ constructor(config?: Options); protected abstract initializ(server: http.Server): void; /** * Get wsConversations conversation */ get wsConversations(): Dict<_conv.ConversationBasic>; set timeout(timeout: number); /** * @func interceptRequest(req, res) */ interceptRequest(req: http.IncomingMessage, res: http.ServerResponse): boolean; /** * MIME 获取类型 * @param {String} ename 扩展名或文件名称 * @return {String} */ getMime(name: string): any; /** * 是否正在运行 */ get isRun(): boolean; /** * 启动服务 */ start(): void; /** * @func stop() sopt service */ stop(): void; /** * @func restart() restart service */ restart(): void; } declare const _default: { /** * @func setShared */ setShared: (server: Server) => void; /** * @get shared # default web server */ readonly shared: Server | null; }; export default _default;