@fedify/fedify
Version:
An ActivityPub server framework
39 lines (35 loc) • 1.31 kB
JavaScript
import { Temporal } from "@js-temporal/polyfill";
import { URLPattern } from "urlpattern-polyfill";
globalThis.addEventListener = () => {};
import { AssertionError } from "./assert_equals-CTYbeopb.js";
import { assertIsError } from "./assert_is_error-nrwA1GeT.js";
//#region node_modules/.pnpm/@jsr+std__assert@0.226.0/node_modules/@jsr/std__assert/assert_throws.js
function assertThrows(fn, errorClassOrMsg, msgIncludesOrMsg, msg) {
let ErrorClass = void 0;
let msgIncludes = void 0;
let err;
if (typeof errorClassOrMsg !== "string") if (errorClassOrMsg === void 0 || errorClassOrMsg?.prototype instanceof Error || errorClassOrMsg?.prototype === Error.prototype) {
ErrorClass = errorClassOrMsg;
msgIncludes = msgIncludesOrMsg;
} else msg = msgIncludesOrMsg;
else msg = errorClassOrMsg;
let doesThrow = false;
const msgSuffix = msg ? `: ${msg}` : ".";
try {
fn();
} catch (error) {
if (ErrorClass) {
if (error instanceof Error === false) throw new AssertionError(`A non-Error object was thrown${msgSuffix}`);
assertIsError(error, ErrorClass, msgIncludes, msg);
}
err = error;
doesThrow = true;
}
if (!doesThrow) {
msg = `Expected function to throw${msgSuffix}`;
throw new AssertionError(msg);
}
return err;
}
//#endregion
export { assertThrows };