# RESP3 Support TODO ```javascript const client = createClient({ RESP: 3 }); ``` ```javascript // by default await client.hGetAll('key'); // Record await client.withTypeMapping({ [TYPES.MAP]: Map }).hGetAll('key'); // Map await client.withTypeMapping({ [TYPES.MAP]: Map, [TYPES.BLOB_STRING]: Buffer }).hGetAll('key'); // Map ``` # `multi.exec<'typed'>` / `multi.execTyped` We have introduced the ability to perform a "typed" `MULTI`/`EXEC` transaction. Rather than returning `Array`, a transaction invoked with `.exec<'typed'>` will return types appropriate to the commands in the transaction where possible: ```javascript const multi = client.multi().ping(); await multi.exec(); // Array await multi.exec<'typed'>(); // [string] await multi.execTyped(); // [string] ``` # Request & Reply Policies see [here](../docs/clustering.md#command-routing).