RESP & JavaScript

Converting RESP to and from JavaScript

When running Redis commands from within a function using the client.call API, the reply is parsed as a resp3 reply and converted to a JS object using the following rules:

resp 3 JS object type
status StringObject with a field called __reply_type and value status (or error if failed to convert to utf8)
bulk string JS String (or error if failed to convert to utf8)
Error Raise JS exception
long JS big integer
double JS number
array JS array
map JS object
set JS set
bool JS boolean
big number StringObject with a field called __reply_type and value big_number
verbatim string StringObject with 2 additional fields: 1. __reply_type and value verbatim 2. __format with the value of the ext in the verbatim string (or error if failed to convert to utf8)
null JS null

When running Redis commands from within a function using the client.callRaw API, the reply is parsed as a resp3 reply and converted to a JS object using the following rules:

resp 3 JS object type
status JS ArrayBuffer with a field called __reply_type and value status
bulk string JS ArrayBuffer
Error Raise JS exception
long JS big integer
double JS number
array JS array
map JS object
set JS set
bool JS boolean
big number StringObject with a field called __reply_type and value big_number
verbatim string JS ArrayBuffer with 2 additional fields: 1. __reply_type and value verbatim 2. __format with the value of the ext in the verbatim string
null JS null

JavaScript to RESP conversion

JS type RESP2 RESP3
string bulk string bulk string
string object with field __reply_type=status status status
Exception error error
big integer long long
number bulk string double
array array array
map array map
set array set
bool long bool
string object with field__reply_type=varbatim and __format=txt bulk string verbatim string with format as txt
null resp2 null resp3 null
Rate this page