@dbs-portal/tool-mock
Version:
API mocking toolkit using MSW for DBS Portal development workflows
184 lines (183 loc) • 3.69 kB
JavaScript
function l(t, r = {}) {
return (e) => (r.seed !== void 0 && y(r.seed), t(e));
}
function d(t, r = 10) {
return (e, n) => {
const a = e ?? r, o = [];
for (let c = 0; c < a; c++)
o.push(t(n));
return o;
};
}
function w(t) {
return l(t);
}
function h(...t) {
return (r) => {
let e = {};
for (const n of t) {
const a = n();
e = { ...e, ...a };
}
return r && (e = { ...e, ...r }), e;
};
}
function p(t, r) {
return (e) => {
const n = t();
return r(n, e);
};
}
function g(t, r, e) {
return (n) => (t() ? r : e)(n);
}
function F(t) {
return (r) => {
const e = t.reduce((o, c) => o + c.weight, 0), n = Math.random() * e;
let a = 0;
for (const o of t)
if (a += o.weight, n <= a)
return o.factory(r);
return t[0]?.factory(r) || {};
};
}
function T(t, r = 0) {
let e = r;
return () => {
if (t.length === 0)
throw new Error("Cannot create sequence from empty array");
const n = t[e % t.length];
return e++, n;
};
}
function P(t, r = (n) => JSON.stringify(n), e = 100) {
const n = /* @__PURE__ */ new Set();
return (a) => {
for (let o = 0; o < e; o++) {
const c = t(a), i = r(c);
if (!n.has(i))
return n.add(i), c;
}
return console.warn("Could not generate unique value after", e, "attempts"), t(a);
};
}
function k(t, r = 100) {
const e = /* @__PURE__ */ new Map(), n = [];
return (a) => {
const o = JSON.stringify(a || {});
if (e.has(o))
return e.get(o);
const c = t(a);
if (e.size >= r) {
const i = n.shift();
i && e.delete(i);
}
return e.set(o, c), n.push(o), c;
};
}
function D(t, r, e = 10) {
return (n) => {
for (let a = 0; a < e; a++) {
const o = t(n);
if (r(o))
return o;
}
return console.warn("Factory validation failed after", e, "attempts"), t(n);
};
}
function M(t, r) {
let e = 0, n = 0;
return (a) => {
const o = performance.now(), c = t(a), i = performance.now();
return e++, n += i - o, r && r(c, { count: e, totalTime: n }), c;
};
}
let u = 1;
function y(t) {
u = t;
}
function m() {
const t = Math.sin(u++) * 1e4;
return t - Math.floor(t);
}
function f() {
return u > 1 ? m() : Math.random();
}
function S() {
u = 1;
}
async function s(t) {
if (t === 0)
return;
let r;
if (Array.isArray(t)) {
const [e, n] = t;
r = e + f() * (n - e);
} else
r = t;
r > 0 && await new Promise((e) => setTimeout(e, r));
}
function b(t) {
return async (r) => {
await s(r ?? t);
};
}
async function q(t, r = 1.5, e = 5e3) {
let n;
if (Array.isArray(t)) {
const [a, o] = t;
n = a + f() * (o - a);
} else
n = t;
n = Math.min(n * r, e), n > 0 && await new Promise((a) => setTimeout(a, n));
}
async function x(t, r = 0.1) {
const e = t * r, n = t + (f() - 0.5) * 2 * e;
n > 0 && await new Promise((a) => setTimeout(a, n));
}
async function C(t = "fast") {
switch (t) {
case "fast":
await s([10, 50]);
break;
case "slow":
await s([2e3, 5e3]);
break;
case "unstable":
await s([100, 3e3]);
break;
case "offline":
throw new Error("Network offline");
default:
await s([100, 300]);
}
}
async function R(t, r) {
const e = s(t), n = new Promise((a, o) => {
setTimeout(() => o(new Error("Delay timeout")), r);
});
await Promise.race([e, n]);
}
export {
d as a,
w as b,
l as c,
h as d,
p as e,
g as f,
k as g,
f as h,
M as i,
s as j,
b as k,
q as l,
x as m,
C as n,
R as o,
S as r,
T as s,
P as u,
D as v,
F as w
};
//# sourceMappingURL=delay-C3BTE-53.js.map