pao-aop-server
Version:
基于pao-aop的服务端框架
187 lines • 4.68 kB
TypeScript
/// <reference types="node" />
import { BaseAddon, UserToken, NullablePromise } from "pao-aop";
import { Session } from '../session/index';
/**
* 服务器状态
*/
export declare type ServerStatus = 'stopped' | 'running' | 'error' | string;
/**
* 移除文件中的BOM
* @author pao
* @param bin
*/
export declare function removeBOM(bin: Buffer): Buffer;
/**
* 保存
* @author pao
* @param filePath 文件路径
*/
export declare function saveObject(filePath: string, obj: Object): void;
/**
* 读取
* @author pao
* @param filePath 文件路径
*/
export declare function loadObject(filePath: string): Object;
/**
* 准备配置
* @author pao
* @param defaultConfig 默认配置对象
* @param configFile 配置文件
* @param loadConfig 是否从配置文件加载
* @param saveConfig 是否保存配置文件
*/
export declare function prepareConfig(defaultConfig: Object, configFile: string, loadConfig?: boolean, saveConfig?: boolean): Object;
/**
* 服务信息: 包含服务名称和服务对象的信息
* @author pao
*/
export declare class ServerInfo {
serverName?: string;
serverObject?: BaseServer;
constructor(serverName?: string, serverObject?: BaseServer);
}
/**
* 注册服务列表
* @author pao
* @param serverInfos 服务信息列表
*/
export declare function registerServers(serverInfos: ServerInfo[]): void;
/**
* 注册服务
* @author pao
* @param serverInfo 服务信息
*/
export declare function registerServer(serverInfo: ServerInfo): void;
/**
* 编历服务器
* @param serviceFunction 服务处理方法
*/
export declare function forEachServer(serverFunction: (serverInfo: BaseServer) => void): void;
/** 根据名称获取服务
* @author pao
* @param name 名称
*/
export declare function getServerByName(name: string): BaseServer;
/**
* 服务信息: 包含服务名称和服务对象的信息
* @author pao
*/
export declare class ServiceInfo {
serviceName?: string;
serviceObject?: BaseService;
constructor(serviceName?: string, serviceObject?: BaseService);
}
/**
* 服务授权接口
*/
export interface IServiceAuthority {
/**
* 检查授权
* @param userToken 用户令牌
* @param functionName 函数名称
* @param args 参数
*/
checkAuthority?(token: UserToken, session: Session, functionName: string, args: any[]): Promise<void>;
}
/**
* 名称:基础服务
* @description 所有服务的基类
* @author huyl
*/
export declare class BaseService extends BaseAddon {
/**
* 授权对象
*/
authoryObject?: IServiceAuthority;
/**
* 当前用户令牌
*/
userToken?: UserToken;
/**
* 当前会话
*/
session?: Session;
/** 基础服务 */
constructor();
/** 调用 */
call?(userToken: UserToken, session: Session, functionName: string, args: any[]): Promise<any>;
/**
* 函数调用前
* @param userToken 用户令牌
* @param session 会话
* @param functionName 函数名称
* @param args 参数
*/
protected beforeCallFunction?(userToken: UserToken, session: Session, functionName: string, args: any[]): Promise<void>;
}
/**
* 名称:基础服务器
* @description 所有服务器的基类,服务器是可以启动和停止的应用程序,服务器程序不应当阻塞主线程
* @author pao
*/
export declare class BaseServer extends BaseAddon {
/**
* 服务器状态
*/
status?: ServerStatus;
/**
* 服务启动
*/
start?(): void;
/**
* 服务停止
*/
stop?(): void;
protected onStart?(): void;
protected onStop?(): void;
/**
* 服务重置
*/
reset?(): void;
}
/**
* 服务数据
*/
export declare class ServerData {
/**
* 服务ID
*/
id?: string;
/**
* 服务名称
*/
name?: string;
/**
* 服务类型
*/
type?: 'DeviceServer' | 'WebServer' | 'ProxyClient' | 'ProxyServer' | 'ProxyListenServer' | 'DataProcessServer' | string;
/**
* 状态
*/
status?: ServerStatus;
}
/**
* 名称: 服务管理接口
* @description 提供服务管理功能的接口
* @author pao
*/
export declare class IServerManagement extends BaseAddon {
/**
* 获取服务器列表
*/
getServers(): NullablePromise<ServerData[]>;
/**
* 获取服务明细信息
*/
getServerDetailInfo(): NullablePromise<object[]>;
/**
* 启动服务
*/
startServer(serverName: string): NullablePromise<void>;
/**
* 停止服务
*/
stopServer(serverName: string): NullablePromise<void>;
}
//# sourceMappingURL=index.d.ts.map