@rickosborne/rebound
Version:
Rick Osborne's utilities for working with bounded numbers
19 lines • 1.75 kB
TypeScript
import type { If } from "./guard-bounded.js";
import type { CheckedBoundsConfig, OutOfBoundsErrorProvider, TypedCheckedBounds } from "./spec.js";
export interface ConvertTo<N extends number> extends TypedCheckedBounds {
(this: void, value: number, name?: string | undefined): N;
}
export interface ConvertIfPresentTo<N extends number> extends ConvertTo<N> {
(this: void, value: number | undefined | null, name?: string | undefined): N | undefined;
}
export type ToInt<N> = (this: void, value: number, name?: string | undefined) => N;
export declare const ROUND = "round";
export declare const CEIL = "ceil";
export declare const TRUNC = "trunc";
export declare const FLOOR = "floor";
export type IntStrategy = typeof ROUND | typeof CEIL | typeof TRUNC | typeof FLOOR | ((value: number) => number);
export declare function boundedIntFromNumber<N extends number, IsLowerInc extends boolean, Lower extends number, Upper extends number, IsUpperInc extends boolean, IfPresent extends boolean>(isLowerInc: IsLowerInc, lower: Lower, upper: Upper, isUpperInc: IsUpperInc, ifPresent: IfPresent, errorProvider: OutOfBoundsErrorProvider, strategy: ToInt<N>, value: number | undefined | null, name?: string | undefined): If<IfPresent, N | undefined, N>;
export declare function integerFrom<N extends number, IsLowerInc extends boolean, Lower extends number, Upper extends number, IsUpperInc extends boolean, IfPresent extends boolean>(typeName: string, bounds: CheckedBoundsConfig<IsLowerInc, Lower, boolean, Upper, IsUpperInc> & {
label: string;
}, errorProvider: OutOfBoundsErrorProvider, ifPresent: IfPresent, strategy?: IntStrategy, fnName?: string): If<IfPresent, ConvertIfPresentTo<N>, ConvertTo<N>>;
//# sourceMappingURL=integer-from.d.ts.map