UNPKG

mira-app-server

Version:

Mira Server - standalone server application using mira-app-core

125 lines 4.32 kB
"use strict"; /** * 插件模块命令 */ 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