mira-app-server
Version:
Mira Server - standalone server application using mira-app-core
125 lines • 4.32 kB
JavaScript
;
/**
* 插件模块命令
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.registerPlugins = registerPlugins;
const client_1 = require("../client");
const format_1 = require("../format");
function registerPlugins(program) {
const plugins = program.command('plugins').description('插件管理');
plugins
.command('list')
.description('获取所有插件列表')
.option('--library <id>', '按素材库 ID 筛选')
.option('--category <cat>', '按分类筛选')
.option('--status <status>', '按状态筛选 (active|inactive)')
.action(async (options) => {
try {
const { client } = (0, client_1.getClient)();
let list = await client.plugins().getAll();
if (options.library) {
list = list.filter(p => p.libraryId === options.library);
}
if (options.category) {
list = list.filter(p => p.category === options.category);
}
if (options.status) {
list = list.filter(p => p.status === options.status);
}
const rows = list.map(p => ({
id: p.id,
name: p.name,
version: p.version,
status: p.status,
libraryId: p.libraryId,
category: p.category,
}));
(0, format_1.output)(rows, () => (0, format_1.formatTable)(rows));
}
catch (error) {
(0, format_1.fatal)(error);
}
});
plugins
.command('install <name> <libraryId>')
.description('安装插件')
.option('--version <version>', '指定版本(默认 latest)')
.action(async (name, libraryId, options) => {
try {
const { client } = (0, client_1.getClient)();
const res = options.version
? await client.plugins().installVersion(name, options.version, libraryId)
: await client.plugins().installLatest(name, libraryId);
(0, format_1.success)(`插件 ${name} 已安装到 ${libraryId}`);
(0, format_1.output)(res);
}
catch (error) {
(0, format_1.fatal)(error);
}
});
plugins
.command('enable <id>')
.description('启用插件')
.action(async (id) => {
try {
const { client } = (0, client_1.getClient)();
const res = await client.plugins().enable(id);
(0, format_1.success)(`插件 ${id} 已启用`);
(0, format_1.output)(res);
}
catch (error) {
(0, format_1.fatal)(error);
}
});
plugins
.command('disable <id>')
.description('禁用插件')
.action(async (id) => {
try {
const { client } = (0, client_1.getClient)();
const res = await client.plugins().disable(id);
(0, format_1.success)(`插件 ${id} 已禁用`);
(0, format_1.output)(res);
}
catch (error) {
(0, format_1.fatal)(error);
}
});
plugins
.command('uninstall <id>')
.alias('rm')
.description('卸载插件')
.action(async (id) => {
try {
const { client } = (0, client_1.getClient)();
const res = await client.plugins().uninstall(id);
(0, format_1.success)(`插件 ${id} 已卸载`);
(0, format_1.output)(res);
}
catch (error) {
(0, format_1.fatal)(error);
}
});
plugins
.command('search <query>')
.description('搜索插件')
.action(async (query) => {
try {
const { client } = (0, client_1.getClient)();
const list = await client.plugins().search(query);
const rows = list.map(p => ({
id: p.id,
name: p.name,
version: p.version,
author: p.author,
description: p.description,
}));
(0, format_1.output)(rows, () => (0, format_1.formatTable)(rows));
}
catch (error) {
(0, format_1.fatal)(error);
}
});
}
//# sourceMappingURL=plugins.js.map