testcafe
Version:
Automated browser testing for the modern web development stack.
38 lines • 5.13 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.load = void 0;
const api_based_1 = __importDefault(require("./test-file/api-based"));
const url_1 = __importDefault(require("url"));
const index_1 = __importDefault(require("./index"));
const setup_sourcemap_support_1 = require("../utils/setup-sourcemap-support");
function getFilenameFromURL(url) {
try {
return url_1.default.fileURLToPath(url);
}
catch (_) {
return null;
}
}
async function load(url, context, defaultLoad) {
const isNodeModulesDep = api_based_1.default._isNodeModulesDep(url);
const isTestcafeLibDep = api_based_1.default._isTestCafeLibDep(url);
const filename = getFilenameFromURL(url);
if (isNodeModulesDep || isTestcafeLibDep || !filename)
return defaultLoad(url, context, defaultLoad);
const testFilesInfo = await index_1.default.createTestFileInfo(filename, true);
if (testFilesInfo === null || testFilesInfo === void 0 ? void 0 : testFilesInfo.compiler) {
const [compiledCode] = await testFilesInfo.compiler.precompile([testFilesInfo]);
setup_sourcemap_support_1.fileContentsCache[url] = compiledCode;
return {
format: context.format || 'module',
source: compiledCode,
shortCircuit: true,
};
}
return defaultLoad(url, context, defaultLoad);
}
exports.load = load;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNtLWxvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21waWxlci9lc20tbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHNFQUFpRTtBQUNqRSw4Q0FBMkI7QUFDM0Isb0RBQStCO0FBQy9CLDhFQUFxRTtBQWNyRSxTQUFTLGtCQUFrQixDQUFFLEdBQVc7SUFDcEMsSUFBSTtRQUNBLE9BQU8sYUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUN0QztJQUNELE9BQU8sQ0FBQyxFQUFFO1FBQ04sT0FBTyxJQUFJLENBQUM7S0FDZjtBQUNMLENBQUM7QUFFTSxLQUFLLFVBQVUsSUFBSSxDQUFFLEdBQVcsRUFBRSxPQUFnQixFQUFFLFdBQXFCO0lBQzVFLE1BQU0sZ0JBQWdCLEdBQUcsbUJBQTRCLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0UsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBNEIsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3RSxNQUFNLFFBQVEsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUV6QyxJQUFJLGdCQUFnQixJQUFJLGdCQUFnQixJQUFJLENBQUMsUUFBUTtRQUNqRCxPQUFPLFdBQVcsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBRWxELE1BQU0sYUFBYSxHQUFHLE1BQU0sZUFBUSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUV4RSxJQUFJLGFBQWEsYUFBYixhQUFhLHVCQUFiLGFBQWEsQ0FBRSxRQUFRLEVBQUU7UUFDekIsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLE1BQU0sYUFBYSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBRWhGLDJDQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLFlBQVksQ0FBQztRQUV0QyxPQUFPO1lBQ0gsTUFBTSxFQUFRLE9BQU8sQ0FBQyxNQUFNLElBQUksUUFBUTtZQUN4QyxNQUFNLEVBQVEsWUFBWTtZQUMxQixZQUFZLEVBQUUsSUFBSTtTQUNyQixDQUFDO0tBQ0w7SUFFRCxPQUFPLFdBQVcsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUF2QkQsb0JBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEFQSUJhc2VkVGVzdEZpbGVDb21waWxlckJhc2UgZnJvbSAnLi90ZXN0LWZpbGUvYXBpLWJhc2VkJztcbmltcG9ydCB1cmxVdGlscyBmcm9tICd1cmwnO1xuaW1wb3J0IENvbXBpbGVyIGZyb20gJy4vaW5kZXgnO1xuaW1wb3J0IHsgZmlsZUNvbnRlbnRzQ2FjaGUgfSBmcm9tICcuLi91dGlscy9zZXR1cC1zb3VyY2VtYXAtc3VwcG9ydCc7XG5cbmludGVyZmFjZSBMb2FkIHtcbiAgICBmb3JtYXQ6IHN0cmluZztcbiAgICBzaG9ydENpcmN1aXQ/OiBib29sZWFuO1xuICAgIHNvdXJjZTogc3RyaW5nIHwgQXJyYXlCdWZmZXI7XG59XG5cbmludGVyZmFjZSBDb250ZXh0IHtcbiAgICBjb25kaXRpb25zOiBzdHJpbmdbXTtcbiAgICBmb3JtYXQ/OiBzdHJpbmcgfCBudWxsO1xuICAgIGltcG9ydEFzc2VydGlvbnM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG5mdW5jdGlvbiBnZXRGaWxlbmFtZUZyb21VUkwgKHVybDogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHVybFV0aWxzLmZpbGVVUkxUb1BhdGgodXJsKTtcbiAgICB9XG4gICAgY2F0Y2ggKF8pIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZCAodXJsOiBzdHJpbmcsIGNvbnRleHQ6IENvbnRleHQsIGRlZmF1bHRMb2FkOiBGdW5jdGlvbik6IFByb21pc2U8TG9hZD4ge1xuICAgIGNvbnN0IGlzTm9kZU1vZHVsZXNEZXAgPSBBUElCYXNlZFRlc3RGaWxlQ29tcGlsZXJCYXNlLl9pc05vZGVNb2R1bGVzRGVwKHVybCk7XG4gICAgY29uc3QgaXNUZXN0Y2FmZUxpYkRlcCA9IEFQSUJhc2VkVGVzdEZpbGVDb21waWxlckJhc2UuX2lzVGVzdENhZmVMaWJEZXAodXJsKTtcbiAgICBjb25zdCBmaWxlbmFtZSA9IGdldEZpbGVuYW1lRnJvbVVSTCh1cmwpO1xuXG4gICAgaWYgKGlzTm9kZU1vZHVsZXNEZXAgfHwgaXNUZXN0Y2FmZUxpYkRlcCB8fCAhZmlsZW5hbWUpXG4gICAgICAgIHJldHVybiBkZWZhdWx0TG9hZCh1cmwsIGNvbnRleHQsIGRlZmF1bHRMb2FkKTtcblxuICAgIGNvbnN0IHRlc3RGaWxlc0luZm8gPSBhd2FpdCBDb21waWxlci5jcmVhdGVUZXN0RmlsZUluZm8oZmlsZW5hbWUsIHRydWUpO1xuXG4gICAgaWYgKHRlc3RGaWxlc0luZm8/LmNvbXBpbGVyKSB7XG4gICAgICAgIGNvbnN0IFtjb21waWxlZENvZGVdID0gYXdhaXQgdGVzdEZpbGVzSW5mby5jb21waWxlci5wcmVjb21waWxlKFt0ZXN0RmlsZXNJbmZvXSk7XG5cbiAgICAgICAgZmlsZUNvbnRlbnRzQ2FjaGVbdXJsXSA9IGNvbXBpbGVkQ29kZTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZm9ybWF0OiAgICAgICBjb250ZXh0LmZvcm1hdCB8fCAnbW9kdWxlJyxcbiAgICAgICAgICAgIHNvdXJjZTogICAgICAgY29tcGlsZWRDb2RlLFxuICAgICAgICAgICAgc2hvcnRDaXJjdWl0OiB0cnVlLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBkZWZhdWx0TG9hZCh1cmwsIGNvbnRleHQsIGRlZmF1bHRMb2FkKTtcbn1cbiJdfQ==