UNPKG

mira-app-server

Version:

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

162 lines 5.69 kB
"use strict"; /** * 素材库模块命令 */ Object.defineProperty(exports, "__esModule", { value: true }); exports.registerLibraries = registerLibraries; const client_1 = require("../client"); const format_1 = require("../format"); function registerLibraries(program) { const libraries = program.command('libraries').alias('lib').description('素材库管理'); libraries .command('list') .description('获取所有素材库列表') .option('--status <status>', '按状态筛选 (active|inactive|error)') .action(async (options) => { try { const { client } = (0, client_1.getClient)(); let list = await client.libraries().getAll(); if (options.status) { list = list.filter(lib => lib.status === options.status); } const rows = list.map(lib => ({ id: lib.id, name: lib.name, status: lib.status, fileCount: lib.fileCount, size: lib.size, path: lib.path, })); (0, format_1.output)(rows, () => (0, format_1.formatTable)(rows)); } catch (error) { (0, format_1.fatal)(error); } }); libraries .command('get <id>') .description('根据 ID 获取单个素材库') .action(async (id) => { try { const { client } = (0, client_1.getClient)(); const lib = await client.libraries().getById(id); (0, format_1.output)(lib, () => (0, format_1.formatKeyValue)(lib)); } catch (error) { (0, format_1.fatal)(error); } }); libraries .command('create') .description('创建新的素材库') .requiredOption('-n, --name <name>', '素材库名称') .requiredOption('-p, --path <path>', '素材库路径') .option('--desc <desc>', '描述') .option('--icon <icon>', '图标') .option('--plugins-dir <dir>', '插件目录') .option('--no-hash', '禁用 hash 校验') .action(async (options) => { try { const { client } = (0, client_1.getClient)(); const data = { name: options.name, path: options.path, description: options.desc || '', }; if (options.icon) data.icon = options.icon; if (options.pluginsDir) data.pluginsDir = options.pluginsDir; data.customFields = { enableHash: options.hash !== false }; const res = await client.libraries().create(data); (0, format_1.success)(`素材库已创建: ${options.name}`); (0, format_1.output)(res); } catch (error) { (0, format_1.fatal)(error); } }); libraries .command('update <id>') .description('更新素材库信息') .option('--name <name>', '名称') .option('--desc <desc>', '描述') .option('--no-hash', '禁用 hash 校验') .action(async (id, options) => { try { const { client } = (0, client_1.getClient)(); const data = {}; if (options.name !== undefined) data.name = options.name; if (options.desc !== undefined) data.description = options.desc; if (options.hash !== undefined) { data.customFields = { enableHash: options.hash !== false }; } const res = await client.libraries().update(id, data); (0, format_1.success)(`素材库 ${id} 已更新`); (0, format_1.output)(res); } catch (error) { (0, format_1.fatal)(error); } }); libraries .command('delete <id>') .alias('rm') .description('删除素材库') .action(async (id) => { try { const { client } = (0, client_1.getClient)(); const res = await client.libraries().delete(id); (0, format_1.success)(`素材库 ${id} 已删除`); (0, format_1.output)(res); } catch (error) { (0, format_1.fatal)(error); } }); libraries .command('start <id>') .description('启动素材库服务') .action(async (id) => { try { const { client } = (0, client_1.getClient)(); const res = await client.libraries().start(id); (0, format_1.success)(`素材库 ${id} 已启动`); (0, format_1.output)(res); } catch (error) { (0, format_1.fatal)(error); } }); libraries .command('stop <id>') .description('停止素材库服务') .action(async (id) => { try { const { client } = (0, client_1.getClient)(); const res = await client.libraries().stop(id); (0, format_1.success)(`素材库 ${id} 已停止`); (0, format_1.output)(res); } catch (error) { (0, format_1.fatal)(error); } }); libraries .command('restart <id>') .description('重启素材库服务') .action(async (id) => { try { const { client } = (0, client_1.getClient)(); const res = await client.libraries().restart(id); (0, format_1.success)(`素材库 ${id} 已重启`); (0, format_1.output)(res); } catch (error) { (0, format_1.fatal)(error); } }); } //# sourceMappingURL=libraries.js.map