UNPKG

@transferwise/neptune-validation

Version:
25 lines (18 loc) 627 B
import { keyMap } from '../common/keyMap'; import { isArray } from '../type-validators'; const isKey = ({ keyType, event }: { keyType?: string; event?: Partial<KeyboardEvent> | null }) => { if (!keyType || !event) { return false; } const upperCaseKeyType = keyType.toUpperCase(); if (!Object.hasOwn(keyMap, upperCaseKeyType)) { return false; } const keyDef = keyMap[upperCaseKeyType as keyof typeof keyMap]; const { key, keyCode } = event; if (key) { return isArray(keyDef.key) ? keyDef.key.includes(key) : key === keyDef.key; } return keyCode === keyDef.keyCode; }; export default isKey;