import { join, map } from 'lodash' /** * converted binary data in strings to hex format * @param {string|number[]} key * @return {string} */ export function decodeRedisKey(key) { if (key instanceof Array) { // char array, convert to hex string return join( map(key, (k) => { if (k >= 32 && k <= 126) { return String.fromCharCode(k) } return '\\x' + k.toString(16).toUpperCase().padStart(2, '0') }), '', ) } return key } /** * convert char code array to string * @param {string|number[]} key * @return {string} */ export function nativeRedisKey(key) { if (key instanceof Array) { return map(key, (c) => String.fromCharCode(c)).join('') } return key }