@qso-soft/shared
Version:
Shared library for QSO-soft
45 lines • 2.2 kB
JavaScript
import { saveFailedWalletsToCSV } from '../file-handlers';
import { getSavedModules, savePreparedModules, updateSavedModulesFinishStatus } from '../modules/save-modules';
import { initLocalLogger } from '../show-logs';
import { prepareSavedWalletsWithModules, prepareWalletsData } from '../wallets';
import { startWithThreads } from './threads';
export const restartLast = async ({ logsFolderName, projectName, startModulesCallback, clientToPrepareWallets, savedModules: savedModulesProp, walletsWithModules: walletsWithModulesProp, }) => {
await prepareWalletsData({ projectName, logsFolderName, client: clientToPrepareWallets });
const { threads } = QsoGlobal.settings;
const savedModules = savedModulesProp || getSavedModules(projectName);
const lastRoute = savedModules.route || '';
const logger = initLocalLogger(logsFolderName, lastRoute);
logger.setLoggerMeta({ moduleName: 'RestartLast' });
try {
const walletsWithModulesToRestart = walletsWithModulesProp || prepareSavedWalletsWithModules(savedModules);
if (!walletsWithModulesToRestart || !walletsWithModulesToRestart.length) {
logger.success('Nothing to restart');
return;
}
savePreparedModules({
walletsWithModules: walletsWithModulesToRestart,
route: lastRoute,
projectName,
});
logger.success(`Starting script in [${threads}] threads`);
const threadsResults = await startWithThreads({
size: threads,
array: walletsWithModulesToRestart,
callback: async (walletWithModules, _, currentWalletIndex) => startModulesCallback({
walletWithModules,
logsFolderName,
walletsTotalCount: walletsWithModulesToRestart.length,
currentWalletIndex,
}),
logger,
});
const results = threadsResults.flat();
updateSavedModulesFinishStatus({ projectName });
saveFailedWalletsToCSV({ results, logger, projectName });
}
catch (error) {
logger.error(`${error}`, { status: 'failed' });
}
return;
};
//# sourceMappingURL=restart-last.js.map