ovm
Version:
OVM is a CLI application for managing Obsidian vaults.
70 lines • 3 kB
JavaScript
;
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