/** * Ensures that value is defined. * Throws if the value is undefined, returns the original value otherwise. * * @param value - The value, or undefined. * @returns The passed value, if it is not undefined */ export function ensureDefined(value: undefined): never; export function ensureDefined(value: T | undefined): T; export function ensureDefined(value: T | undefined): T { if (value === undefined) { throw new Error('Value is undefined'); } return value; } /** * Ensures that value is not null. * Throws if the value is null, returns the original value otherwise. * * @param value - The value, or null. * @returns The passed value, if it is not null */ export function ensureNotNull(value: null): never; export function ensureNotNull(value: T | null): T; export function ensureNotNull(value: T | null): T { if (value === null) { throw new Error('Value is null'); } return value; }