npm install --save @kobayami/guards
Some standard guards and exceptions:
- Type erasure for
null
andundefined
- Array, index and range guards
- Standard exception declarations, such as illegal state, illegal argument or unsupported operation
import { assertPresent, assertEqualLength, illegalArgument } from "@kobayami/guards";
function first<T>(array: T[]): T {
return assertPresent(array[0]);
}
function mergeMap<T, U>(a: T[], b: T[], operation: (elemA: T, elemB: T): U): U[] {
const length = assertEqualLength(a, b);
const result: U[] = [];
for (let index = 0; index < length; index++) {
result.push(operation(a[index], b[index]));
}
return result;
}
function assertInt16(value: number): number {
if (value !== Math.round(value) || (value < -32768) || (value > 32767))
throw illegalArgument();
}