@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
JavaScript
;
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;