zksync-cli
Version:
CLI tool that simplifies the process of developing applications and interacting with the ZKsync network
51 lines • 2.12 kB
JavaScript
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