@grafana/faro-core
Version:
Core package of Faro.
62 lines • 3.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isSyntheticEvent = exports.isMap = exports.isMapDefined = exports.isElement = exports.isElementDefined = exports.isDomException = exports.isDomError = exports.isErrorEvent = exports.isError = exports.isErrorDefined = exports.isEvent = exports.isEventDefined = exports.isPrimitive = exports.isThenable = exports.isRegExp = exports.isArray = exports.isFunction = exports.isObject = exports.isSymbol = exports.isBoolean = exports.isInt = exports.isNumber = exports.isString = exports.isNull = exports.isUndefined = void 0;
exports.isTypeof = isTypeof;
exports.isToString = isToString;
exports.isInstanceOf = isInstanceOf;
exports.isEmpty = isEmpty;
function isTypeof(value, type) {
return typeof value === type;
}
function isToString(value, type) {
return Object.prototype.toString.call(value) === `[object ${type}]`;
}
function isInstanceOf(value, reference) {
try {
return value instanceof reference;
}
catch (_err) {
return false;
}
}
exports.isUndefined = ((value) => isTypeof(value, 'undefined'));
exports.isNull = ((value) => isTypeof(value, 'null'));
exports.isString = ((value) => isTypeof(value, 'string'));
exports.isNumber = ((value) => (isTypeof(value, 'number') && !isNaN(value)) || isTypeof(value, 'bigint'));
exports.isInt = ((value) => (0, exports.isNumber)(value) && Number.isInteger(value));
exports.isBoolean = ((value) => isTypeof(value, 'boolean'));
exports.isSymbol = ((value) => isTypeof(value, 'symbol'));
exports.isObject = ((value) => !(0, exports.isNull)(value) && isTypeof(value, 'object'));
exports.isFunction = ((value) => isTypeof(value, 'function'));
exports.isArray = ((value) => isToString(value, 'Array'));
exports.isRegExp = ((value) => isToString(value, 'RegExp'));
exports.isThenable = ((value) => (0, exports.isFunction)(value === null || value === void 0 ? void 0 : value.then));
exports.isPrimitive = ((value) => !(0, exports.isObject)(value) && !(0, exports.isFunction)(value));
exports.isEventDefined = typeof Event !== 'undefined';
exports.isEvent = ((value) => exports.isEventDefined && isInstanceOf(value, Event));
exports.isErrorDefined = typeof Error !== 'undefined';
exports.isError = ((value) => exports.isErrorDefined && isInstanceOf(value, Error));
exports.isErrorEvent = ((value) => isToString(value, 'ErrorEvent'));
exports.isDomError = ((value) => isToString(value, 'DOMError'));
exports.isDomException = ((value) => isToString(value, 'DOMException'));
exports.isElementDefined = typeof Element !== 'undefined';
exports.isElement = ((value) => exports.isElementDefined && isInstanceOf(value, Element));
exports.isMapDefined = typeof Map !== 'undefined';
exports.isMap = ((value) => exports.isMapDefined && isInstanceOf(value, Map));
exports.isSyntheticEvent = ((value) => (0, exports.isObject)(value) &&
'nativeEvent' in value &&
'preventDefault' in value &&
'stopPropagation' in value);
function isEmpty(value) {
if (value == null) {
return true;
}
if ((0, exports.isArray)(value) || (0, exports.isString)(value)) {
return value.length === 0;
}
if ((0, exports.isObject)(value)) {
return Object.keys(value).length === 0;
}
return false;
}
//# sourceMappingURL=is.js.map