UNPKG

@transferwise/neptune-validation

Version:
71 lines (65 loc) 1.73 kB
'use strict'; 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; }; exports.isArray = isArray; exports.isBoolean = isBoolean; exports.isEmpty = isEmpty; exports.isInteger = isInteger; exports.isKey = isKey; exports.isNull = isNull; exports.isNumber = isNumber; exports.isObject = isObject; exports.isString = isString; exports.isUndefined = isUndefined; //# sourceMappingURL=index.js.map