UNPKG

@fractorysolutions/safe-units

Version:
29 lines (23 loc) 848 B
import { Exponent } from "./generated/exponent"; export function getExponentValue(value: Exponent): number { return parseInt(value, 10); } export const negateExponent = (value: Exponent) => toExponent(-getExponentValue(value)); export const addExponents = wrapBinaryExponentFn((left, right) => left + right); export const multiplyExponents = wrapBinaryExponentFn( (left, right) => left * right, ); export const divideExponents = wrapBinaryExponentFn( (left, right) => left / right, ); type BinaryExponentFn = (left: Exponent, right: Exponent) => Exponent; function wrapBinaryExponentFn( fn: (left: number, right: number) => number, ): BinaryExponentFn { return (left, right) => toExponent(fn(getExponentValue(left), getExponentValue(right))); } function toExponent(value: number): Exponent { return `${value}` as Exponent; }