UNPKG

datum-merge

Version:

Simplified diff and merging for deeply nested objects

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