UNPKG

mm_os

Version:

MM_OS服务端架构,用于快速构建应用程序,支持网站建设、小程序后台、AI应用、物联网(IOT/AIOT)、游戏服务端等多种场景。

136 lines (121 loc) 2.46 kB
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;