simplex-lang
Version:
SimplEx - simple expression language
30 lines • 948 B
JavaScript
import { UnexpectedTypeError } from '../errors.js';
import { unbox } from './index.js';
export function ensureNumber(val) {
if (typeof val === 'number' && Number.isFinite(val)) {
return val;
}
if (typeof val === 'bigint') {
return val;
}
if (typeof val === 'object' && val instanceof Number) {
return ensureNumber(val.valueOf());
}
throw new UnexpectedTypeError(['number', 'bigint'], val);
}
export function ensureFunction(val) {
if (typeof val === 'function')
return val;
throw new UnexpectedTypeError(['function'], val);
}
export function ensureRelationalComparable(val) {
val = unbox(val);
const type = typeof val;
if ((type === 'number' && Number.isNaN(val) === false) ||
type === 'string' ||
type === 'bigint') {
return val;
}
throw new UnexpectedTypeError(['number', 'bigint', 'string'], val);
}
//# sourceMappingURL=ensure.js.map