@gatling.io/core
Version:
Gatling JS is a JavaScript/TypeScript interface for the [Gatling load testing tool](https://gatling.io/).
91 lines (90 loc) • 5.09 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.asLongAsDuringImpl = void 0;
const duration_1 = require("../utils/duration");
const session_1 = require("../session");
const on_1 = require("./on");
const asLongAsDuringImpl = (jvmAsLongAsDuring, wrap) => (condition, duration, arg2, arg3) => {
if (arg3 !== undefined && typeof arg2 === "string") {
// asLongAsDuring(condition, duration, counterName, exitASAP)
if (typeof condition === "function") {
const wrappedCondition = (0, session_1.underlyingSessionTo)(condition);
if ((0, duration_1.isDuration)(duration)) {
return (0, on_1.wrapOn)(jvmAsLongAsDuring.asLongAsDuring(wrappedCondition, (0, duration_1.toJvmDuration)(duration), arg2, arg3), wrap);
}
else if (typeof duration === "function") {
return (0, on_1.wrapOn)(jvmAsLongAsDuring.asLongAsDuring(wrappedCondition, (0, session_1.underlyingSessionToDuration)(duration), arg2, arg3), wrap);
}
}
else {
if ((0, duration_1.isDuration)(duration)) {
return (0, on_1.wrapOn)(jvmAsLongAsDuring.asLongAsDuring(condition, (0, duration_1.toJvmDuration)(duration), arg2, arg3), wrap);
}
else if (typeof duration === "function") {
return (0, on_1.wrapOn)(jvmAsLongAsDuring.asLongAsDuring(condition, (0, session_1.underlyingSessionToDuration)(duration), arg2, arg3), wrap);
}
}
}
else if (typeof arg2 === "string") {
// asLongAsDuring(condition, duration, counterName)
if (typeof condition === "function") {
const wrappedCondition = (0, session_1.underlyingSessionTo)(condition);
if ((0, duration_1.isDuration)(duration)) {
return (0, on_1.wrapOn)(jvmAsLongAsDuring.asLongAsDuring(wrappedCondition, (0, duration_1.toJvmDuration)(duration), arg2), wrap);
}
else if (typeof duration === "function") {
return (0, on_1.wrapOn)(jvmAsLongAsDuring.asLongAsDuring(wrappedCondition, (0, session_1.underlyingSessionToDuration)(duration), arg2), wrap);
}
}
else {
if ((0, duration_1.isDuration)(duration)) {
return (0, on_1.wrapOn)(jvmAsLongAsDuring.asLongAsDuring(condition, (0, duration_1.toJvmDuration)(duration), arg2), wrap);
}
else if (typeof duration === "function") {
return (0, on_1.wrapOn)(jvmAsLongAsDuring.asLongAsDuring(condition, (0, session_1.underlyingSessionToDuration)(duration), arg2), wrap);
}
}
}
else if (typeof arg2 === "boolean") {
// asLongAsDuring(condition, duration, exitASAP)
if (typeof condition === "function") {
const wrappedCondition = (0, session_1.underlyingSessionTo)(condition);
if ((0, duration_1.isDuration)(duration)) {
return (0, on_1.wrapOn)(jvmAsLongAsDuring.asLongAsDuring(wrappedCondition, (0, duration_1.toJvmDuration)(duration), arg2), wrap);
}
else if (typeof duration === "function") {
return (0, on_1.wrapOn)(jvmAsLongAsDuring.asLongAsDuring(wrappedCondition, (0, session_1.underlyingSessionToDuration)(duration), arg2), wrap);
}
}
else {
if ((0, duration_1.isDuration)(duration)) {
return (0, on_1.wrapOn)(jvmAsLongAsDuring.asLongAsDuring(condition, (0, duration_1.toJvmDuration)(duration), arg2), wrap);
}
else if (typeof duration === "function") {
return (0, on_1.wrapOn)(jvmAsLongAsDuring.asLongAsDuring(condition, (0, session_1.underlyingSessionToDuration)(duration), arg2), wrap);
}
}
}
else if (arg2 === undefined) {
// asLongAsDuring(condition, duration)
if (typeof condition === "function") {
const wrappedCondition = (0, session_1.underlyingSessionTo)(condition);
if ((0, duration_1.isDuration)(duration)) {
return (0, on_1.wrapOn)(jvmAsLongAsDuring.asLongAsDuring(wrappedCondition, (0, duration_1.toJvmDuration)(duration)), wrap);
}
else if (typeof duration === "function") {
return (0, on_1.wrapOn)(jvmAsLongAsDuring.asLongAsDuring(wrappedCondition, (0, session_1.underlyingSessionToDuration)(duration)), wrap);
}
}
else {
if ((0, duration_1.isDuration)(duration)) {
return (0, on_1.wrapOn)(jvmAsLongAsDuring.asLongAsDuring(condition, (0, duration_1.toJvmDuration)(duration)), wrap);
}
else if (typeof duration === "function") {
return (0, on_1.wrapOn)(jvmAsLongAsDuring.asLongAsDuring(condition, (0, session_1.underlyingSessionToDuration)(duration)), wrap);
}
}
}
throw Error(`asLongAsDuring() called with invalid arguments ${condition}, ${duration}, ${arg2}, ${arg3}`);
};
exports.asLongAsDuringImpl = asLongAsDuringImpl;