@snap/camera-kit
Version:
Camera Kit Web
80 lines • 2.41 kB
JavaScript
export function isString(value) {
return typeof value === "string";
}
export function isSafeString(value) {
return isString(value) && encodeURIComponent(value) === value;
}
export function isNumber(value) {
return typeof value === "number";
}
export function isValidNumber(value) {
return isNumber(value) && !Number.isNaN(value) && Number.isFinite(value);
}
export function isValidNumberOrUndefined(value) {
return isUndefined(value) || isValidNumber(value);
}
export function isArrayOfType(elementTypeGuard, value) {
return Array.isArray(value) && value.every((id) => elementTypeGuard(id));
}
export function isSafeStringArray(value) {
return isArrayOfType(isSafeString, value);
}
export function isStringOrUndefined(value) {
return isUndefined(value) || isString(value);
}
export function isArrayBuffer(value) {
return value instanceof ArrayBuffer;
}
export function isTypedArray(value) {
return value instanceof Object.getPrototypeOf(Uint8Array);
}
export function isUndefined(value) {
return typeof value === "undefined";
}
export function isEmptyString(value) {
return value === "";
}
export function isUndefinedOrEmptyString(value) {
return isUndefined(value) || isEmptyString(value);
}
export function isRecord(value) {
return typeof value === "object" && value !== null && !Array.isArray(value);
}
export function isFunction(value) {
return typeof value === "function";
}
export function isDate(value) {
return value instanceof Date;
}
export function isDateOrUndefined(value) {
return isUndefined(value) || isDate(value);
}
export function isValidDate(value) {
return isDate(value) && !isNaN(value.getTime());
}
export function predicateRecordValues(predicate) {
return (value) => {
for (const v of Object.values(value))
if (!predicate(v))
return false;
return true;
};
}
export function isEmptyOrSafeUrl(urlString) {
if (!urlString)
return true;
try {
const url = new URL(urlString);
return url.protocol === "https:" || url.protocol === "http:";
}
catch (_a) {
return false;
}
}
export function isPromise(value) {
if (!value)
return false;
const maybePromise = value;
return typeof maybePromise.then === "function" && typeof maybePromise.catch === "function";
}
//# sourceMappingURL=typeguards.js.map