UNPKG

datum-merge

Version:

Simplified diff and merging for deeply nested objects

70 lines (69 loc) 1.9 kB
export function isString(value) { return typeof value === 'string'; } export function isNumber(value) { return typeof value === 'number'; } export function isBoolean(value) { return typeof value === 'boolean'; } export function isPrimitive(value) { return ['string', 'number', 'boolean'].includes(typeof value); } export function isNullish(value) { return value === undefined || value === null; } export function emptyString(str) { return (str == null) || (str === '') || (/^\s*$/.test(str)); } export function integerString(str) { return ((str != null) && (str !== '') && Number.isSafeInteger(Number(str.toString()))); } export function isObject(value) { return typeof value === 'object' && !Array.isArray(value) && value !== null; } export function emptyObject(obj) { return (obj === undefined) || (obj === null) || (!Object.keys(obj).length); } export function isArrayOfAny(value) { return Array.isArray(value); } export function emptyArray(arr) { return Array.isArray(arr) && !(arr === null || arr === void 0 ? void 0 : arr.length); } export function isArrayOf(arr, typeCheck) { return Array.isArray(arr) && arr.length > 0 && arr.every(typeCheck); } export function isArrayOfSame(arr) { return Array.isArray(arr) && new Set(arr.map((e) => typeof e)).size === 1 ? typeof arr[0] : false; } export function emptyValue(value) { return (value === undefined) || (value === null) || (Array.isArray(value) && !value.length) || (typeof value === "object" && !Object.keys(value).length); } export function typeOfValue(value) { const type = typeof value; if (type !== 'object') { return type; } else if (Array.isArray(value)) { return 'array'; } else { return 'object'; } }