UNPKG

@transferwise/neptune-validation

Version:
60 lines (55 loc) 1.54 kB
const isString = value => typeof value === 'string'; const isNumber = value => typeof value === 'number' && !Number.isNaN(value); const isInteger = value => { return isNumber(value) && Math.floor(value) === value; }; const isBoolean = value => typeof value === 'boolean'; const isObject = value => typeof value === 'object' && !isNull(value) && value.constructor === Object; const isArray = value => Array.isArray(value); const isNull = value => value === null; const isUndefined = value => typeof value === 'undefined'; /** * Checks empty values for arrays, objects and strings. */ const isEmpty = value => isString(value) && value.length === 0 || (isObject(value) || isArray(value)) && Object.keys(value).length === 0; const keyMap = { SPACE: { key: [' ', 'Spacebar'], keyCode: 32 }, ENTER: { key: 'Enter', keyCode: 13 }, TAB: { key: 'Tab', keyCode: 9 }, ESCAPE: { key: 'Escape', keyCode: 27 } }; const isKey = ({ keyType, event }) => { if (!keyType || !event) { return false; } const upperCaseKeyType = keyType.toUpperCase(); if (!Object.hasOwn(keyMap, upperCaseKeyType)) { return false; } const keyDef = keyMap[upperCaseKeyType]; const { key, keyCode } = event; if (key) { return isArray(keyDef.key) ? keyDef.key.includes(key) : key === keyDef.key; } return keyCode === keyDef.keyCode; }; export { isArray, isBoolean, isEmpty, isInteger, isKey, isNull, isNumber, isObject, isString, isUndefined }; //# sourceMappingURL=index.mjs.map