UNPKG

zksync-cli

Version:

CLI tool that simplifies the process of developing applications and interacting with the ZKsync network

51 lines 2.12 kB
import { ModuleCategory } from "./modules/Module.js"; import { getModulePackages } from "./modules/utils/packages.js"; import { configHandler } from "../../common/ConfigHandler.js"; import { getChains } from "../config/chains.js"; class ConfigHandlerClass { /* Returns all installed modules */ async getAllModules() { const installedModules = await getModulePackages(); return installedModules.map((modulePackage) => { // eslint-disable-next-line @typescript-eslint/no-explicit-any const module = modulePackage.module; const newModule = new module(this); newModule.package = { name: modulePackage.name, version: modulePackage.version, symlinked: modulePackage.symlinked ?? false, }; return newModule; }); } /* Returns modules selected in the config */ async getConfigModules() { const selectedModules = configHandler.getConfigValue("modules") || []; return (await this.getAllModules()).filter((module) => selectedModules.includes(module.package.name)); } async setConfigModules(modules) { configHandler.setConfigValue("modules", modules); } async setCustomChain(chainKey) { configHandler.setConfigValue("chainAsNode", chainKey); } async getNodeInfo() { const chainKey = configHandler.getConfigValue("chainAsNode"); if (chainKey) { const chains = getChains(); const chain = chains.find((chain) => chain.network === chainKey); if (!chain) { throw new Error(`Chain "${chainKey}" was not found in the config`); } return chain; } const modules = await this.getConfigModules(); const node = modules.find((module) => module.category === ModuleCategory.Node); if (!node) { throw new Error("No node module found"); } return node.nodeInfo; } } export const modulesConfigHandler = new ConfigHandlerClass(); //# sourceMappingURL=ModulesConfigHandler.js.map