tiny-rdm/frontend/src/utils/key_convert.js

36 lines
821 B
JavaScript

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
}