@rickosborne/rebound
Version:
Rick Osborne's utilities for working with bounded numbers
28 lines (27 loc) • 1.05 kB
JavaScript
var __defProp = Object.defineProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
import { scrubStackTrace } from "@rickosborne/guard";
import { TYPED_CHECKED_BOUNDS_KEYS } from "./spec.mjs";
const sameBounds = /* @__PURE__ */ __name((left, right) => {
return TYPED_CHECKED_BOUNDS_KEYS.every((key) => left[key] === right[key]);
}, "sameBounds");
function assertSameBounds(left, right, errorSupplier) {
const mismatched = TYPED_CHECKED_BOUNDS_KEYS.filter((key) => left[key] !== right[key]);
if (mismatched.length > 0) {
let error;
if (errorSupplier != null) {
error = errorSupplier(mismatched, left, right);
} else {
let message = mismatched.map((key) => `${key}<${left[key]},${right[key]}>`).join(" ");
message = "Bounds mismatch: ".concat(message);
error = scrubStackTrace(new RangeError(message));
}
throw error;
}
}
__name(assertSameBounds, "assertSameBounds");
export {
assertSameBounds,
sameBounds
};
//# sourceMappingURL=same-bounds.mjs.map