testplane
Version:
Tests framework based on mocha and wdio
46 lines • 1.57 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.instrumentReplIfNeeded = void 0;
const runtime_config_1 = __importDefault(require("../../config/runtime-config"));
const typescript_1 = require("./typescript");
let typescript;
const instrumentReplIfNeeded = (code, sourceFile) => {
const replMode = runtime_config_1.default.getInstance()?.replMode;
if (!replMode?.enabled) {
return code;
}
const TEST_CALL_RE = /\bit(?:\.\w+)*\s*\(/;
const shouldTryInstrumentation = code.includes("switchToRepl") || (replMode.beforeTest && TEST_CALL_RE.test(code));
if (!shouldTryInstrumentation) {
return code;
}
const ts = getTypeScript();
if (!ts) {
return code;
}
try {
return (0, typescript_1.instrumentWithTypeScript)(ts, code, sourceFile, { beforeTest: Boolean(replMode.beforeTest) });
}
catch {
return code;
}
};
exports.instrumentReplIfNeeded = instrumentReplIfNeeded;
function getTypeScript() {
if (typescript !== undefined) {
return typescript;
}
try {
// TypeScript is optional for published consumers; REPL locals are best-effort without it.
// eslint-disable-next-line @typescript-eslint/no-var-requires
typescript = require("typescript");
}
catch {
typescript = null;
}
return typescript || null;
}
//# sourceMappingURL=index.js.map