UNPKG

ovm

Version:

OVM is a CLI application for managing Obsidian vaults.

70 lines 3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.uninstallVaultIterator = exports.action = void 0; const async_1 = require("async"); const obsidian_utils_1 = require("obsidian-utils"); const plugins_1 = require("../../providers/plugins"); const vaults_1 = require("../../providers/vaults"); const command_1 = require("../../utils/command"); const logger_1 = require("../../utils/logger"); const config_1 = require("../config"); const uninstallVaultIterator = async (item) => { const { vault, config, flags, args } = item; const stagedPlugins = args?.pluginId ? [{ id: args.pluginId }] : config.plugins; const uninstalledPlugins = []; const failedPlugins = []; const result = { uninstalledPlugins, failedPlugins }; for (const stagePlugin of stagedPlugins) { const childLogger = logger_1.logger.child({ plugin: stagePlugin, vault }); if (!(await (0, obsidian_utils_1.isPluginInstalled)(stagePlugin.id, vault.path))) { childLogger.warn(`Plugin not installed`); result.failedPlugins.push(stagePlugin); continue; } try { await (0, plugins_1.removePluginDir)(stagePlugin.id, vault.path); const updatedPlugins = new Set([ ...(0, plugins_1.deduplicatePlugins)(config.plugins, stagePlugin), ]); const updatedConfig = { ...config, plugins: [...updatedPlugins] }; await (0, config_1.writeConfig)(updatedConfig, flags.config); childLogger.info(`Uninstalled plugin`); result.uninstalledPlugins.push(stagePlugin); } catch (error) { childLogger.error(`Failed to uninstall plugin`, { error }); result.failedPlugins.push(stagePlugin); } } if (uninstalledPlugins.length) { logger_1.logger.info(`Uninstalled ${uninstalledPlugins.length} plugins`, { vault }); } return result; }; exports.uninstallVaultIterator = uninstallVaultIterator; const action = async (args, flags, iterator = uninstallVaultIterator, callback) => { const config = await (0, config_1.loadConfig)(flags.config); const selectedVaults = await (0, vaults_1.getSelectedVaults)(flags.path); const items = (0, vaults_1.mapVaultsIteratorItem)(selectedVaults, config, flags, args); const uninstallCommandCallback = (error) => { const result = { success: false, error, }; if (!error) { logger_1.logger.info('Uninstalling plugins completed'); result.success = true; callback?.(null); return result; } logger_1.logger.debug('Error uninstalling plugins', { error }); callback?.(error); (0, command_1.handlerCommandError)(error); return result; }; return (0, async_1.each)(items, iterator, uninstallCommandCallback); }; exports.action = action; //# sourceMappingURL=uninstall.js.map