UNPKG

gauge-ts

Version:
42 lines (41 loc) 1.65 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ImplLoader = void 0; const HookRegistry_1 = require("../models/HookRegistry"); const StepRegistry_1 = require("../models/StepRegistry"); const Util_1 = require("../utils/Util"); class ImplLoader { parameterParsingChain; constructor(parameterParsingChain) { this.parameterParsingChain = parameterParsingChain; } async loadImplementations() { StepRegistry_1.default.clear(); HookRegistry_1.default.clear(); for (const file of Util_1.Util.getListOfFiles()) { try { process.env.STEP_FILE_PATH = file; const c = (await Util_1.Util.importFile(file)); if (c.default && c.default.length === 0) { const instance = new c.default(); if (Util_1.Util.isCustomParameterParser(instance)) { this.parameterParsingChain.addCustomParser(instance); } else { ImplLoader.updateRegistry(file, instance); } } } catch (error) { const err = error; err.message = `${err.message}. Step implementations classes needs to be exported as default without any constructor`; console.error(err); } } } static updateRegistry(file, instance) { StepRegistry_1.default.setInstanceForMethodsIn(file, instance); HookRegistry_1.default.setInstanceForMethodsIn(file, instance); } } exports.ImplLoader = ImplLoader;