playwright-bdd
Version:
BDD Testing with Playwright runner
33 lines • 1.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.requireOrImport = requireOrImport;
exports.requireOrImportDefaultFunction = requireOrImportDefaultFunction;
/**
* Universal requireOrImport function that can import any file (js/ts, cjs/esm)
*/
const utils_1 = require("./utils");
const esmLoader_1 = require("./esmLoader");
const paths_1 = require("../utils/paths");
async function requireOrImport(file) {
(0, esmLoader_1.registerESMLoader)();
const { requireOrImport: pwRequireOrImport } = getTransformMethods();
return pwRequireOrImport(file);
}
// eslint-disable-next-line visual/complexity
async function requireOrImportDefaultFunction(file, expectConstructor) {
let func = await requireOrImport(file);
if (func && typeof func === 'object' && 'default' in func)
func = func['default'];
if (typeof func !== 'function') {
throw new Error(`${(0, paths_1.relativeToCwd)(file)}: file must export a single ${expectConstructor ? 'class' : 'function'}.`);
}
return func;
}
function getTransformMethods() {
// Since PW 1.60 there is an index.js file with all exports.
const { requireOrImport } = utils_1.playwrightVersion >= '1.60.0'
? (0, utils_1.requirePlaywrightModule)('lib/common/index.js').transform
: (0, utils_1.requirePlaywrightModule)('lib/transform/transform.js');
return { requireOrImport };
}
//# sourceMappingURL=requireOrImport.js.map