UNPKG

@patchworkdev/common

Version:

Patchwork Development Kit

49 lines (48 loc) 1.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.JSONProjectConfigLoader = void 0; const contractSchemaJsonParser_1 = require("../codegen/contractSchemaJsonParser"); class JSONProjectConfigLoader { constructor() { } load(jsonString) { const projectConfig = JSON.parse(jsonString); const contracts = {}; Object.entries(projectConfig.contracts).forEach(([key, value]) => { const v = value; if (v.config && typeof v.config === 'string') { contracts[key] = v.config; } else { contracts[key] = (0, contractSchemaJsonParser_1.parseJson)(v.config); } }); // Add default plugins if none are provided const plugins = projectConfig.plugins || [ { name: 'ponder' }, { name: 'react' } ]; // If networks exists, include it as-is const networks = projectConfig.networks; return { name: projectConfig.name, scopes: Object.entries(projectConfig.scopes).map(([key, value]) => { return this.loadScopeConfig(key, value); }), contracts: contracts, ...(networks ? { networks } : {}), plugins: plugins, }; } loadScopeConfig(name, scopeConfig) { return { name: scopeConfig.name, owner: scopeConfig.owner, whitelist: scopeConfig.whitelist !== undefined ? scopeConfig.whitelist : true, userAssign: scopeConfig.userAssign !== undefined ? scopeConfig.userAssign : false, userPatch: scopeConfig.userPatch !== undefined ? scopeConfig.userPatch : false, bankers: scopeConfig.bankers, operators: scopeConfig.operators, }; } } exports.JSONProjectConfigLoader = JSONProjectConfigLoader;