brand-music
Version:
Strongly typed music theory library
81 lines (75 loc) • 2.09 kB
JavaScript
var __defProp = Object.defineProperty;
var __export = (target, all2) => {
for (var name in all2)
__defProp(target, name, { get: all2[name], enumerable: true });
};
// src/internal/utils.ts
var mod = (a, n) => (a % n + n) % n;
// src/internal/refined/Literal.ts
var is = (start, end) => (v) => Number.isSafeInteger(v) && start <= v && v <= end;
var clamp = (start, end) => (v) => v < start ? start : v > end ? end : v;
var modded = (start, end) => (v) => {
const size = end - start + 1;
const zero = v - start;
const m = mod(zero, size);
return m + start;
};
var all = (start, end) => (
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
[...Array(end - start + 1)].map((_, i) => start + i)
);
var asInt = (v) => v;
// src/internal/refined/Int.ts
var isInt = (v) => Number.isInteger(v);
var fromUnknown = (v) => isInt(v) ? v : void 0;
var makeChecked = (v) => fromUnknown(v);
var makeRound = (v) => Math.round(v);
var makeTrunc = (v) => Math.trunc(v);
var add = (a, b) => a + b;
var addChecked = (a, b) => makeChecked(a + b);
var sub = (a, b) => a - b;
var subChecked = (a, b) => makeChecked(a - b);
var mul = (a, b) => a * b;
var mulChecked = (a, b) => makeChecked(a * b);
var mulRound = (a, b) => makeRound(a * b);
var mulTrunc = (a, b) => makeTrunc(a * b);
var divChecked = (a, b) => makeChecked(a * b);
var divRound = (a, b) => makeRound(a * b);
var divTrunc = (a, b) => makeTrunc(a * b);
// src/internal/refined/NonNegative.ts
var isNonNegative = (v) => typeof v === "number" && v >= 0;
function makeAbs(v, edgeCases) {
const caseNaN = edgeCases?.NaN ?? 0;
if (Number.isNaN(v)) {
return caseNaN;
} else {
return Math.abs(v);
}
}
// src/internal/refined/NonNegativeInt.ts
var isNonNegativeInt = (v) => isInt(v) && isNonNegative(v);
export {
__export,
is,
clamp,
modded,
all,
asInt,
isInt,
makeRound,
makeTrunc,
add,
addChecked,
sub,
subChecked,
mul,
mulChecked,
mulRound,
mulTrunc,
divChecked,
divRound,
divTrunc,
makeAbs,
isNonNegativeInt
};
//# sourceMappingURL=chunk-YLMQSMVX.js.map