@vivo-minigame/cli
Version:
Command line interface for rapid Vivo minigame development
15 lines • 1.31 kB
JavaScript
;var _Object$defineProperty=require("@babel/runtime-corejs2/core-js/object/define-property"),_interopRequireDefault=require("@babel/runtime-corejs2/helpers/interopRequireDefault");_Object$defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _events=_interopRequireDefault(require("events")),_cliSharedUtils=require("@vivo-minigame/cli-shared-utils");/**
* mg-service 的入口
*/class Service extends _events.default{/**
* 构造函数
* @param {String} context 服务启动的当前目录
*/constructor(context){super(),this.context=context,this.commands={};// 要加载的文件
["./commands/packager","./commands/server"].map(id=>{try{require(id)(this,{context:this.context})}catch(e){(0,_cliSharedUtils.error)(e)}})}/**
* 注册到Service上的命令
* @param {String} cmd 注册的命令
* @param {Function} fn 命定对应的逻辑
*/registerCommand(cmd,fn){this.commands[cmd]={fn}}/**
* 服务启动入口
* @param {String} cmd 启动命令
* @param {Object} args 命令参数,暂时没有
*/run(cmd,args={}){args._=args._||[];const command=this.commands[cmd];command||((0,_cliSharedUtils.error)(`command "${cmd}" does not exist.`),process.exit(1));const{fn}=command;return fn(args)}}var _default=exports.default=Service;