Comparing version 3.0.0 to 3.0.1
// src/utils.ts | ||
function d(e, t) { | ||
function S(e, t) { | ||
if (!e) | ||
throw new Error(t); | ||
} | ||
function y(e, t) { | ||
function u(e, t) { | ||
return typeof t === e; | ||
@@ -15,3 +15,3 @@ } | ||
} | ||
function p(e, t, n) { | ||
function l(e, t, n) { | ||
Object.defineProperty(e, t, { value: n }); | ||
@@ -21,3 +21,3 @@ } | ||
// src/constants.ts | ||
var u = Symbol.for("tinyspy:spy"); | ||
var y = Symbol.for("tinyspy:spy"); | ||
@@ -27,39 +27,39 @@ // src/internal.ts | ||
e.called = !1, e.callCount = 0, e.calls = [], e.results = [], e.resolves = [], e.next = []; | ||
}, K = (e) => (f(e, u, { value: { reset: () => P(e[u]) } }), e[u]), I = (e) => e[u] || K(e); | ||
function g(e) { | ||
d( | ||
y("function", e) || y("undefined", e), | ||
}, K = (e) => (f(e, y, { value: { reset: () => P(e[y]) } }), e[y]), T = (e) => e[y] || K(e); | ||
function I(e) { | ||
S( | ||
u("function", e) || u("undefined", e), | ||
"cannot spy on a non-function value" | ||
); | ||
let t = function(...s) { | ||
let r = I(t); | ||
r.called = !0, r.callCount++, r.calls.push(s); | ||
let t = function(...o) { | ||
let r = T(t); | ||
r.called = !0, r.callCount++, r.calls.push(o); | ||
let R = r.next.shift(); | ||
if (R) { | ||
r.results.push(R); | ||
let [o, l] = R; | ||
if (o === "ok") | ||
return l; | ||
throw l; | ||
let [s, m] = R; | ||
if (s === "ok") | ||
return m; | ||
throw m; | ||
} | ||
let i, c = "ok", a = r.results.length; | ||
let p, c = "ok", a = r.results.length; | ||
if (r.impl) | ||
try { | ||
new.target ? i = Reflect.construct(r.impl, s, new.target) : i = r.impl.apply(this, s), c = "ok"; | ||
} catch (o) { | ||
throw i = o, c = "error", r.results.push([c, o]), o; | ||
new.target ? p = Reflect.construct(r.impl, o, new.target) : p = r.impl.apply(this, o), c = "ok"; | ||
} catch (s) { | ||
throw p = s, c = "error", r.results.push([c, s]), s; | ||
} | ||
let S = [c, i]; | ||
return w(i) && i.then( | ||
(o) => r.resolves[a] = ["ok", o], | ||
(o) => r.resolves[a] = ["error", o] | ||
), r.results.push(S), i; | ||
let g = [c, p]; | ||
return w(p) && p.then( | ||
(s) => r.resolves[a] = ["ok", s], | ||
(s) => r.resolves[a] = ["error", s] | ||
), r.results.push(g), p; | ||
}; | ||
p(t, "_isMockFunction", !0), p(t, "length", e ? e.length : 0), p(t, "name", e && e.name || "spy"); | ||
let n = I(t); | ||
l(t, "_isMockFunction", !0), l(t, "length", e ? e.length : 0), l(t, "name", e && e.name || "spy"); | ||
let n = T(t); | ||
return n.reset(), n.impl = e, t; | ||
} | ||
function T(e) { | ||
let t = I(e); | ||
f(e, "returns", { | ||
function A(e) { | ||
let t = T(e); | ||
"returns" in e || (f(e, "returns", { | ||
get: () => t.results.map(([, n]) => n) | ||
@@ -75,10 +75,10 @@ }), [ | ||
].forEach( | ||
(n) => f(e, n, { get: () => t[n], set: (s) => t[n] = s }) | ||
), p(e, "nextError", (n) => (t.next.push(["error", n]), t)), p(e, "nextResult", (n) => (t.next.push(["ok", n]), t)); | ||
(n) => f(e, n, { get: () => t[n], set: (o) => t[n] = o }) | ||
), l(e, "nextError", (n) => (t.next.push(["error", n]), t)), l(e, "nextResult", (n) => (t.next.push(["ok", n]), t))); | ||
} | ||
// src/spy.ts | ||
function L(e) { | ||
let t = g(e); | ||
return T(t), t; | ||
function V(e) { | ||
let t = I(e); | ||
return A(t), t; | ||
} | ||
@@ -91,11 +91,11 @@ | ||
function C(e, t, n) { | ||
d( | ||
!y("undefined", e), | ||
S( | ||
!u("undefined", e), | ||
"spyOn could not find an object to spy upon" | ||
), d( | ||
y("object", e) || y("function", e), | ||
), S( | ||
u("object", e) || u("function", e), | ||
"cannot spyOn on a primitive value" | ||
); | ||
let [s, r] = (() => { | ||
if (!y("object", t)) | ||
let [o, r] = (() => { | ||
if (!u("object", t)) | ||
return [t, "value"]; | ||
@@ -109,29 +109,36 @@ if ("getter" in t && "setter" in t) | ||
throw new Error("specify getter or setter to spy on"); | ||
})(), R = k(e, s), i = Object.getPrototypeOf(e), c = i && k(i, s), a = R || c; | ||
d( | ||
a || s in e, | ||
`${String(s)} does not exist` | ||
})(), R = k(e, o), p = Object.getPrototypeOf(e), c = p && k(p, o), a = R || c; | ||
S( | ||
a || o in e, | ||
`${String(o)} does not exist` | ||
); | ||
let S = !1; | ||
r === "value" && a && !a.value && a.get && (r = "get", S = !0, n = a.get()); | ||
let o; | ||
a ? o = a[r] : r !== "value" ? o = () => e[s] : o = e[s], n || (n = o); | ||
let l = g(n); | ||
r === "value" && O(l, o); | ||
let h = (A) => { | ||
let { value: M, ...v } = a || { | ||
let g = !1; | ||
r === "value" && a && !a.value && a.get && (r = "get", g = !0, n = a.get()); | ||
let s; | ||
a ? s = a[r] : r !== "value" ? s = () => e[o] : s = e[o]; | ||
let m = (d) => { | ||
let { value: h, ...v } = a || { | ||
configurable: !0, | ||
writable: !0 | ||
}; | ||
r !== "value" && delete v.writable, v[r] = A, f(e, s, v); | ||
}, b = () => a ? f(e, s, a) : h(o), m = l[u]; | ||
return p(m, "restore", b), p(m, "getOriginal", () => S ? o() : o), p(m, "willCall", (A) => (m.impl = A, l)), h( | ||
S ? () => (O(l, n), l) : l | ||
), x.add(l), l; | ||
r !== "value" && delete v.writable, v[r] = d, f(e, o, v); | ||
}, b = () => a ? f(e, o, a) : m(s); | ||
n || (n = s); | ||
let i; | ||
if (s && y in s) | ||
i = s; | ||
else { | ||
i = I(n), r === "value" && O(i, s); | ||
let d = i[y]; | ||
l(d, "restore", b), l(d, "getOriginal", () => g ? s() : s), l(d, "willCall", (h) => (d.impl = h, i)); | ||
} | ||
return m( | ||
g ? () => (O(i, n), i) : i | ||
), x.add(i), i; | ||
} | ||
function Q(e, t, n) { | ||
let s = C(e, t, n); | ||
return T(s), ["restore", "getOriginal", "willCall"].forEach((r) => { | ||
p(s, r, s[u][r]); | ||
}), s; | ||
let o = C(e, t, n); | ||
return A(o), ["restore", "getOriginal", "willCall"].forEach((r) => { | ||
l(o, r, o[y][r]); | ||
}), o; | ||
} | ||
@@ -146,9 +153,9 @@ | ||
export { | ||
g as createInternalSpy, | ||
I as getInternalState, | ||
I as createInternalSpy, | ||
T as getInternalState, | ||
C as internalSpyOn, | ||
X as restoreAll, | ||
x as spies, | ||
L as spy, | ||
V as spy, | ||
Q as spyOn | ||
}; |
{ | ||
"name": "tinyspy", | ||
"version": "3.0.0", | ||
"type": "module", | ||
"version": "3.0.1", | ||
"packageManager": "pnpm@9.1.1", | ||
"main": "./dist/index.cjs", | ||
"module": "./dist/index.js", | ||
"types": "./dist/index.d.ts", | ||
"exports": { | ||
"types": "./dist/index.d.ts", | ||
"import": "./dist/index.js", | ||
"require": "./dist/index.cjs", | ||
"default": "./dist/index.cjs" | ||
}, | ||
"files": [ | ||
"dist/**" | ||
], | ||
"description": "A minimal fork of nanospy, with more features", | ||
"license": "MIT", | ||
"homepage": "https://github.com/tinylibs/tinyspy#readme", | ||
"repository": { | ||
@@ -22,7 +13,5 @@ "type": "git", | ||
}, | ||
"license": "MIT", | ||
"bugs": { | ||
"url": "https://github.com/tinylibs/tinyspy/issues" | ||
}, | ||
"homepage": "https://github.com/tinylibs/tinyspy#readme", | ||
"keywords": [ | ||
@@ -34,2 +23,20 @@ "spy", | ||
], | ||
"exports": { | ||
".": { | ||
"import": { | ||
"types": "./dist/index.d.ts", | ||
"default": "./dist/index.js" | ||
}, | ||
"require": { | ||
"types": "./dist/index.d.cts", | ||
"default": "./dist/index.cjs" | ||
} | ||
} | ||
}, | ||
"main": "./dist/index.cjs", | ||
"module": "./dist/index.js", | ||
"types": "./dist/index.d.ts", | ||
"files": [ | ||
"dist" | ||
], | ||
"engines": { | ||
@@ -36,0 +43,0 @@ "node": ">=14.0.0" |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
17703
404