tachybase_todo/packages/core/server/src/app-command.ts
ChengLei Shao 630c6f2d79
chore(command): set command handle by ipc server or not (#2660)
* chore: tmp commit

* feat: app command

* chore: return error when not handle by ipc server

* chore: command handle by ipc server

* chore: api name

* Update pm.ts

---------

Co-authored-by: chenos <chenlinxh@gmail.com>
2023-09-19 14:39:54 +08:00

42 lines
854 B
TypeScript

import { Command } from 'commander';
export class AppCommand extends Command {
private _handleByIPCServer = false;
ipc() {
this._handleByIPCServer = true;
return this;
}
isHandleByIPCServer() {
return this._handleByIPCServer;
}
createCommand(name?: string): AppCommand {
return new AppCommand(name);
}
parseHandleByIPCServer(argv, parseOptions?): Boolean {
//@ts-ignore
const userArgs = this._prepareUserArgs(argv, parseOptions);
if (userArgs[0] === 'nocobase') {
userArgs.shift();
}
let lastCommand = this;
for (const arg of userArgs) {
// @ts-ignore
const subCommand = lastCommand._findCommand(arg);
if (subCommand) {
lastCommand = subCommand;
} else {
break;
}
}
return lastCommand && lastCommand.isHandleByIPCServer();
}
}