mm_os
Version:
MM_OS服务端架构,用于快速构建应用程序,支持网站建设、小程序后台、AI应用、物联网(IOT/AIOT)、游戏服务端等多种场景。
136 lines (121 loc) • 2.46 kB
JavaScript
const {
Drive
} = require('mm_machine');
/**
* 模组基类
* 扩展插件功能,用于管理和协调多个应用和插件
*/
class Mod extends Drive {
static config = {
// 模组名称
name: 'default',
// 模组版本
version: '1.0.0',
// 依赖的npm模块
dependencies: [],
// 作者
author: 'qww',
// 模组目录
dir: './mod'
};
/**
* 构造函数
* @param {object} config 配置参数
* @param {object} parent 父对象
*/
constructor(config, parent) {
super({ ...Mod.config, ...config || {} }, parent);
}
}
/**
* 预设
*/
Mod.prototype._preset = function () {
// 服务器实例
this.getServer = function () {
return $.server;
};
};
/**
* 获取模板目录
* @returns {string} 模板目录
*/
Mod.prototype.getTplDir = function () {
return __dirname;
};
/**
* 初始化核心
* @param {object} server 服务
* @param {object} eventer 事件总线
* @param {object} logger 日志管理器
* @private
*/
Mod.prototype._initCore = async function (server, eventer, logger) {
// 初始化依赖项
if (logger) {
this.setLogger(logger);
}
if (eventer) {
this.getEventer = function () {
return eventer;
};
}
if (server) {
this.getServer = function () {
return server;
};
}
// 初始化管理
await this._initManager();
// 加载资源
await this._loadSources();
};
/**
* 启动核心
*/
Mod.prototype._startCore = async function () {
// 初始化资源
await this._initSources();
};
/**
* 初始化管理器
* @private
*/
Mod.prototype._initManager = async function () {
this.log('debug', 'mod _initManager 被调用');
};
/**
* 加载资源
* @private
*/
Mod.prototype._loadSources = async function () {
this.log('debug', 'mod _loadSources 被调用');
};
/**
* 初始化资源
* @private
*/
Mod.prototype._initSources = async function () {
this.log('debug', 'mod _initSources 被调用');
};
/**
* 启动模组
*/
Mod.prototype._start = async function () {
try {
this.log('info', 'started');
} catch (error) {
this.log('error', 'start error:', error);
}
};
/**
* 停止模组
*/
Mod.prototype._stop = async function () {
};
/**
* 清理模组资源
*/
Mod.prototype._cleanup = async function () {
};
exports.Mod = Mod;