ente/web/packages/utils/ensure.ts
Manav Rathi ac8804a1c1
[web] Handle NaN in the Exif locations
A customer sent us a sample file from the wild where this was the case.
2025-01-27 16:03:02 +05:30

29 lines
869 B
TypeScript

/**
* Throw an exception if the given value is not a string.
*/
export const ensureString = (v: unknown): string => {
if (typeof v != "string")
throw new Error(`Expected a string, instead found ${String(v)}`);
return v;
};
/**
* Throw an exception if the given value is not a number or if it is NaN.
*/
export const ensureNumber = (v: unknown): number => {
if (typeof v != "number" || Number.isNaN(v))
throw new Error(`Expected a number, instead found ${String(v)}`);
return v;
};
/**
* Throw an exception if the given value is not an integral number.
*/
export const ensureInteger = (v: unknown): number => {
if (typeof v != "number")
throw new Error(`Expected a number, instead found ${String(v)}`);
if (!Number.isInteger(v))
throw new Error(`Expected an integer, instead found ${v}`);
return v;
};