简介
ee-core 的完整 TypeScript 类型定义。所有公共接口和配置类型集中在此处,供框架模块和业务代码引用以确保类型安全。这些类型也通过 export type 从主 ee-core 入口导出。
导入
javascript
// ESM(仅类型导入)
import type { ElectronEggOptions, Config } from 'ee-core/types';
import type { ElectronEggOptions, Config } from 'ee-core';
// CJS(仅类型,运行时通过 ts-ignore)
// TypeScript 类型在 CJS 运行时不可用
// 使用 JSDoc 或 .d.ts 文件进行类型标注App 类型
ElectronEggOptions
框架启动选项,在初始化期间构建。值在整个应用生命周期中不变。
| 字段 | 类型 | 说明 |
|---|---|---|
env | string | 运行环境('dev'、'prod'、'test') |
baseDir | string | 项目根目录 |
electronDir | string | Electron 源码目录 |
appName | string | 来自 package.json 的应用名称 |
userHome | string | 用户主目录(os.homedir()) |
appData | string | 系统应用数据目录 |
appUserData | string | Electron 用户数据目录(appData/appName) |
appVersion | string | 来自 package.json 的应用版本 |
isPackaged | boolean | 是否已打包为安装程序 |
execDir | string | 可执行文件目录 |
AppInfo
应用元数据,作为参数传递给配置函数。
| 字段 | 类型 | 说明 |
|---|---|---|
name | string | 应用名称 |
baseDir | string | 项目根目录 |
electronDir | string | Electron 源码目录 |
env | string | 运行环境 |
root | string | 日志/数据根目录(通常为 appUserData) |
示例:
javascript
// config.default.js
module.exports = (appInfo) => {
const config = {};
config.logger.dir = path.join(appInfo.root, 'logs');
return config;
};参见:config
Config 类型
Config
框架主配置接口。config.default.js 导出对象的类型定义。
| 字段 | 类型 | 说明 |
|---|---|---|
[key: string] | unknown | 用户自定义配置的动态属性 |
openDevTools | boolean | OpenDevToolsOptions | DevTools 配置 |
singleLock | boolean | 单实例锁 |
windowsOption | BrowserWindowConstructorOptions | BrowserWindow 构造选项 |
logger | LoggerConfig | 日志器配置 |
socketServer | SocketServerConfig | Socket.IO 配置 |
httpServer | HttpServerConfig | HTTP 服务配置 |
remote | RemoteConfig | 远程服务配置 |
mainServer | MainServerConfig | 主窗口服务配置 |
exception | ExceptionConfig | 异常处理配置 |
jobs | JobsConfig | 后台任务配置 |
cross | CrossConfig | 跨进程配置 |
参见:config
RemoteConfig
| 字段 | 类型 | 说明 |
|---|---|---|
enable | boolean | 是否启用远程服务 |
url | string | 远程服务地址 |
MainServerConfig
| 字段 | 类型 | 说明 |
|---|---|---|
protocol | string | 'file://' 加载本地文件,'http://'/'https://' 加载远程 |
indexPath | string | 入口文件/URL 路径 |
options | Record<string, unknown> | 协议处理的额外选项 |
takeover | string | 加载策略:'start' 或 'ready' |
loadingPage | string | 启动屏的预加载页面路径 |
channelSeparator | string | IPC 通道分隔符,默认 '/' |
SocketServerConfig
| 字段 | 类型 | 说明 |
|---|---|---|
enable | boolean | 是否启用 Socket 服务 |
port | number | 监听端口 |
path | string | Socket.IO 路径 |
connectTimeout | number | 连接超时(毫秒) |
pingTimeout | number | 心跳超时(毫秒) |
pingInterval | number | 心跳间隔(毫秒) |
maxHttpBufferSize | number | 最大 HTTP 消息体字节数 |
transports | ('polling' | 'websocket')[] | 传输列表 |
cors | object | CORS 配置 |
channel | string | 自定义通信通道名 |
HttpsConfig
| 字段 | 类型 | 说明 |
|---|---|---|
enable | boolean | 是否启用 HTTPS |
key | string | SSL 私钥文件路径 |
cert | string | SSL 证书文件路径 |
HttpServerConfig
| 字段 | 类型 | 说明 |
|---|---|---|
enable | boolean | 是否启用 HTTP 服务 |
https | HttpsConfig | HTTPS 证书配置 |
protocol | string | 'http' 或 'https' |
host | string | 监听主机,默认 '127.0.0.1' |
port | number | 监听端口 |
cors | { origin: string } | CORS 配置 |
body | object | 请求体解析配置 |
filterRequest | { uris: string[], returnData: string } | 请求过滤配置 |
koaConfig | KoaConfig | Koa 中间件扩展 |
KoaConfig
| 字段 | 类型 | 说明 |
|---|---|---|
preMiddleware | Function[] | 前置中间件列表 |
postMiddleware | Function[] | 后置中间件列表 |
errorHandler | Function | null | 自定义错误处理器 |
LoggerConfig
| 字段 | 类型 | 说明 |
|---|---|---|
dir | string | 日志文件目录(默认:appUserData/logs) |
level | string | 最低日志级别 |
prettyPrint | boolean | 启用 pino-pretty(仅开发环境) |
dateFormat | string | 时间戳日期格式 |
appLogName | string | 应用日志文件名 |
coreLogName | string | 核心日志文件名 |
errorLogName | string | 错误日志文件名 |
rotator | string | 轮转周期('daily' 或 'hourly') |
redact | string[] | 要脱敏的字段 |
redactCensor | string | Function | 脱敏替换内容 |
timestamp | boolean | 包含时间戳 |
timezone | string | IANA 时区(默认 'UTC') |
name | string | 日志器名称 |
maxSize | number | string | 单个日志文件最大大小 |
serializers | object | 自定义序列化器 |
customLevels | object | 自定义级别映射 |
depthLimit | number | 对象序列化深度限制 |
safe | boolean | 安全模式(写入失败时不抛异常) |
enabled | boolean | 启用/禁用日志 |
ExceptionConfig
| 字段 | 类型 | 说明 |
|---|---|---|
mainExit | boolean | 主进程异常是否退出应用 |
childExit | boolean | 子进程退出是否终止主进程 |
rendererExit | boolean | 渲染进程退出策略 |
JobsConfig
| 字段 | 类型 | 说明 |
|---|---|---|
messageLog | boolean | 记录子进程 IPC 消息 |
CrossTargetConfig
| 字段 | 类型 | 说明 |
|---|---|---|
name | string | 目标进程标识 |
enable | boolean | 是否启用 |
args | string[] | 命令行参数 |
cmd | string | 启动命令 |
directory | string | 工作目录 |
windowsExtname | boolean | Windows 上自动添加 .exe |
stdio | string[] | 子进程 stdio 配置 |
appExit | boolean | 子进程退出时是否退出主进程 |
port | number | 子进程 HTTP 端口 |
url | string | 子进程服务 URL |
CrossConfig
动态键映射,每个值为 CrossTargetConfig。
typescript
interface CrossConfig {
[key: string]: CrossTargetConfig;
}Jobs 类型
JobChildOptions
| 字段 | 类型 | 说明 |
|---|---|---|
name | string | 任务名标识 |
script | string | 子进程入口脚本路径 |
args | string[] | 命令行参数 |
env | ProcessEnv | 子进程环境变量 |
port | number | HTTP 服务端口 |
ChildPoolOptions
| 字段 | 类型 | 说明 |
|---|---|---|
weights | number[] | 池成员权重配置 |
LoadBalancerTarget
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | number | 目标标识 |
weight | number | 权重值 |
LoadBalancerOptions
| 字段 | 类型 | 说明 |
|---|---|---|
targets | LoadBalancerTarget[] | 目标列表 |
algorithm | string | 算法名 |
AlgorithmType
| 键 | 值 | 说明 |
|---|---|---|
polling | 'polling' | 轮询 |
weights | 'weights' | 加权轮询 |
random | 'random' | 随机选择 |
specify | 'specify' | 指定目标 |
weightsPolling | 'weightsPolling' | 平滑加权轮询 |
weightsRandom | 'weightsRandom' | 加权随机 |
minimumConnection | 'minimumConnection' | 最小连接数 |
weightsMinimumConnection | 'weightsMinimumConnection' | 加权最小连接数 |
JobProcessOptions
| 字段 | 类型 | 说明 |
|---|---|---|
processArgs | Record<string, unknown> | child_process.fork 的参数 |
processOptions | ForkOptions | Fork 选项 |
[key: string] | unknown | 自定义属性 |
Dev 类型
DevConfig
| 字段 | 类型 | 说明 |
|---|---|---|
frontend | DevFrontendConfig | 前端开发配置 |
electron | DevElectronConfig | Electron 开发配置 |
DevFrontendConfig
| 字段 | 类型 | 说明 |
|---|---|---|
directory | string | 前端目录 |
cmd | string | 命令 |
args | string[] | 参数 |
protocol | string | 前端协议 |
hostname | string | 主机名 |
port | number | 端口 |
indexPath | string | 首页 |
force | boolean | 强制刷新 |
sync | boolean | 同步模式 |
DevElectronConfig
| 字段 | 类型 | 说明 |
|---|---|---|
directory | string | 目录 |
cmd | string | 命令 |
args | string[] | 参数 |
loadingPage | string | 加载页面路径 |
watch | boolean | 监听模式 |
sync | boolean | 同步模式 |
delay | number | 去抖延迟(毫秒) |
Loader 类型
FileLoaderOptions
| 字段 | 类型 | 说明 |
|---|---|---|
caseStyle | 'lower' | 'upper' | 'camel' | Function | 属性命名风格。'lower' = 首字母小写(控制器) |
directory | string | 要扫描的目录路径 |
initializer | Function | null | 文件导出的自定义初始化器 |
call | boolean | 自动调用函数类型导出 |
override | boolean | 覆盖同名属性 |
inject | unknown | 自动调用函数的注入参数 |
match | string | string[] | Function | 文件匹配模式 |
ignore | string | string[] | Function | 文件忽略模式 |
registry | RegistryEntry[] | 预注册条目(bundle 模式) |
RegistryEntry
| 字段 | 类型 | 说明 |
|---|---|---|
fullpath | string | 完整文件路径 |
properties | string[] | 从文件路径生成的属性路径数组 |
module | unknown | 懒加载模块 |
TimingItem
| 字段 | 类型 | 说明 |
|---|---|---|
name | string | 阶段名称 |
start | number | 开始时间(毫秒) |
end | number | undefined | 结束时间(毫秒) |
duration | number | undefined | 持续时间(毫秒) |
pid | number | 进程 PID |
index | number | 执行顺序索引 |
Message 类型
MessageData
| 字段 | 类型 | 说明 |
|---|---|---|
channel | string | 通信通道标识 |
event | string | 事件名 |
data | unknown | 消息载荷 |
ProcessExitEventData
| 字段 | 类型 | 说明 |
|---|---|---|
pid | number | undefined | 已退出进程的 PID |
Utils 类型
ExtendOptions
| 字段 | 类型 | 说明 |
|---|---|---|
deep | boolean | 是否深度合并 |
JsonWriteOptions
| 字段 | 类型 | 说明 |
|---|---|---|
space | number | 缩进空格数(默认:2) |
replacer | Function | JSON.stringify replacer |
GetPortOptions
| 字段 | 类型 | 说明 |
|---|---|---|
port | number | number[] | 首选端口或范围 |
host | string | 绑定主机地址 |
Cross 类型
CrossRunOptions
Partial<CrossTargetConfig> — 运行跨进程服务时的选项。
CrossProcessOptions
| 字段 | 类型 | 说明 |
|---|---|---|
targetConf | CrossTargetConfig | 目标配置 |
port | number | 分配的端口 |
CrossHost
| 字段 | 类型 | 说明 |
|---|---|---|
emitter | EventEmitter | undefined | 事件发射器 |
Log 类型
EeLogger
统一日志接口(基于 Pino)。
typescript
interface EeLogger {
trace(msg: string, ...args: unknown[]): void;
debug(msg: string, ...args: unknown[]): void;
info(msg: string, ...args: unknown[]): void;
warn(msg: string, ...args: unknown[]): void;
error(msg: string, ...args: unknown[]): void;
fatal(msg: string, ...args: unknown[]): void;
child(bindings: Record<string, unknown>): EeLogger;
}PinoLoggers
| 字段 | 类型 | 说明 |
|---|---|---|
logger | pino.Logger | 应用日志器实例 |
coreLogger | pino.Logger | 框架核心日志器 |
errorLogger | pino.Logger | 仅错误日志器 |
