UNPKG

@kubiklabs/wasmkit

Version:

Wasmkit is a development environment to compile, deploy, test, run cosmwasm contracts on different networks.

42 lines (41 loc) 2.31 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.loadConfigAndTasks = void 0; const path_1 = __importDefault(require("path")); const context_1 = require("../../context"); const plugins_1 = require("../plugins"); const project_structure_1 = require("../project-structure"); const config_resolution_1 = require("./config-resolution"); const config_validation_1 = require("./config-validation"); function importCsjOrEsModule(filePath) { const imported = require(filePath); // eslint-disable-line @typescript-eslint/no-var-requires return imported.default !== undefined ? imported.default : imported; } async function loadConfigAndTasks(runtimeArgs) { let configPath = runtimeArgs !== undefined ? runtimeArgs.config : undefined; if (configPath === undefined) { configPath = (0, project_structure_1.getUserConfigPath)(); } else { if (!path_1.default.isAbsolute(configPath)) { configPath = path_1.default.join(process.cwd(), configPath); configPath = path_1.default.normalize(configPath); } } // Before loading the builtin tasks, the default and user's config we expose // the config env in the global object. const configEnv = require("./config-env"); // eslint-disable-line @typescript-eslint/no-var-requires const globalAsAny = global; // eslint-disable-line @typescript-eslint/no-explicit-any Object.entries(configEnv).forEach(([key, value]) => (globalAsAny[key] = value)); (0, plugins_1.loadPluginFile)(path_1.default.join(__dirname, "..", "tasks", "builtin-tasks")); const defaultConfig = importCsjOrEsModule("./default-config"); const userConfig = configPath !== undefined ? importCsjOrEsModule(configPath) : defaultConfig; (0, config_validation_1.validateConfig)(userConfig); // To avoid bad practices we remove the previously exported stuff Object.keys(configEnv).forEach((key) => (globalAsAny[key] = undefined)); return (0, config_resolution_1.resolveConfig)(configPath, defaultConfig, userConfig, context_1.WasmkitContext.getWasmkitContext().configExtenders); } exports.loadConfigAndTasks = loadConfigAndTasks;