UNPKG

@eightshone/sshman

Version:
56 lines 2.74 kB
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; import { CONFIG_DIR, DEFAULT_CONFIG, VERSION } from "../../utils/consts.js"; import saveFile from "../../utils/saveFile.js"; import { nanoid } from "nanoid"; import compareVersions from "../../utils/compareVersions.js"; function migrate(config, logs, spinner) { return __awaiter(this, void 0, void 0, function* () { let configObj = Object.assign({}, config); let logsObj = [...logs]; spinner.text = "Migrating configs…"; if (!configObj.version || compareVersions("0.1.1", configObj.version) === 1) { let missingId = false; // assign server ids configObj.servers.forEach((srv, index) => { if (!srv.id) { missingId = true; configObj.servers[index].id = nanoid(); } }); if (missingId) { // this will only work for certain pre logs integrations version logsObj = []; configObj.recentServers = []; } // starting from this version a fallback server name is kept in the logs const servers = {}; configObj.servers.forEach((srv) => { servers[srv.id] = srv.name; }); logsObj = logsObj.map((lg) => (Object.assign(Object.assign({}, lg), { serverName: servers[lg.server] }))); } if (!configObj.version || compareVersions("0.1.2", configObj.version) === 1) { // remove depricated field from initial config if (configObj["defaultPrivateKey"]) { delete configObj["defaultPrivateKey"]; } // set config defaults configObj.defaults = DEFAULT_CONFIG.defaults; } configObj.version = VERSION; yield saveFile(`${CONFIG_DIR}/config.json`, configObj); yield saveFile(`${CONFIG_DIR}/logs.json`, logsObj); spinner.text = "Migration complete!"; return [configObj, logsObj]; }); } export default migrate; //# sourceMappingURL=migrate.js.map