UNPKG

@rickosborne/rebound

Version:

Rick Osborne's utilities for working with bounded numbers

55 lines (54 loc) 2.6 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var integer_from_exports = {}; __export(integer_from_exports, { CEIL: () => CEIL, FLOOR: () => FLOOR, ROUND: () => ROUND, TRUNC: () => TRUNC, boundedIntFromNumber: () => boundedIntFromNumber, integerFrom: () => integerFrom }); module.exports = __toCommonJS(integer_from_exports); var import_foundation = require("@rickosborne/foundation"); var import_guard = require("@rickosborne/guard"); var import_typed_function = require("./typed-function.cjs"); const ROUND = "round"; const CEIL = "ceil"; const TRUNC = "trunc"; const FLOOR = "floor"; function boundedIntFromNumber(isLowerInc, lower, upper, isUpperInc, ifPresent, errorProvider, strategy, value, name) { if (value != null && (isLowerInc ? value >= lower : value > lower) && (isUpperInc ? value <= upper : value < upper)) { return strategy(value); } if (value == null && ifPresent) { return void 0; } const error = errorProvider(value, name); throw (0, import_guard.scrubStackTrace)(error, "boundedIntFromNumber"); } __name(boundedIntFromNumber, "boundedIntFromNumber"); function integerFrom(typeName, bounds, errorProvider, ifPresent, strategy = ROUND, fnName = `${(0, import_foundation.lowerFirst)(typeName)}From${typeof strategy === "function" ? strategy.name : strategy}${ifPresent ? "IfPresent" : ""}`) { const toInt = typeof strategy === "function" ? strategy : Math[strategy]; const boundedIntFrom = boundedIntFromNumber.bind(void 0, bounds.isLowerInc, bounds.lower, bounds.upper, bounds.isUpperInc, ifPresent, errorProvider, toInt); return (0, import_typed_function.addTypedProperties)(boundedIntFrom, bounds, typeName, fnName); } __name(integerFrom, "integerFrom"); //# sourceMappingURL=integer-from.cjs.map