@cucumber/cucumber
Version:
The official JavaScript implementation of Cucumber.
42 lines • 1.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.loadSupport = loadSupport;
const messages_1 = require("@cucumber/messages");
const paths_1 = require("../paths");
const environment_1 = require("../environment");
const support_1 = require("./support");
const plugins_1 = require("./plugins");
/**
* Load support code for use in test runs
*
* @public
* @param options - Options required to find the support code
* @param environment - Project environment
*/
async function loadSupport(options, environment = {}) {
const mergedEnvironment = (0, environment_1.makeEnvironment)(environment);
const { cwd, logger } = mergedEnvironment;
const newId = messages_1.IdGenerator.uuid();
const supportCoordinates = Object.assign({
requireModules: [],
requirePaths: [],
loaders: [],
importPaths: [],
}, options.support);
const pluginManager = await (0, plugins_1.initializeForLoadSupport)(mergedEnvironment);
const resolvedPaths = await (0, paths_1.resolvePaths)(logger, cwd, options.sources, supportCoordinates);
pluginManager.emit('paths:resolve', resolvedPaths);
const { requirePaths, importPaths } = resolvedPaths;
const supportCodeLibrary = await (0, support_1.getSupportCodeLibrary)({
logger,
cwd,
newId,
requireModules: supportCoordinates.requireModules,
requirePaths,
loaders: supportCoordinates.loaders,
importPaths,
});
await pluginManager.cleanup();
return supportCodeLibrary;
}
//# sourceMappingURL=load_support.js.map