UNPKG

gchcg-cli

Version:
1 lines 963 B
"use strict";const semver=require("semver"),colors=require("colors/safe"),log=require("./log"),LOWEST_NODE_VERSION="18.20.4";class Command{constructor(r){if(!r)throw new Error("参数不能为空!");if(!Array.isArray(r))throw new Error("参数必须为数组!");if(r.length<1)throw new Error("参数列表为空!");this._argv=r;let e=new Promise(((r,e)=>{let s=Promise.resolve();s=s.then((()=>this.checkNodeVersion())),s=s.then((()=>this.initArgs())),s=s.then((()=>this.init())),s=s.then((()=>this.exec())),s=s.then(r),s.catch((r=>{log.error(r.message),e(r)}))}));this.runner=e}initArgs(){this._cmd=this._argv[this._argv.length-1],this._argv=this._argv.slice(0,this._argv.length-1)}checkNodeVersion(){const r=process.version,e="18.20.4";if(!semver.gte(r,e))throw new Error(colors.red(`gchcg-cli 需要安装 v${e} 以上版本的 Node.js`))}init(){throw new Error("init必须实现!")}exec(){throw new Error("exec必须实现!")}}module.exports=Command;