@upstash/redis 1.3.2-alpha.2 → 1.3.3-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (360) hide show
  1. package/README.md +1 -1
  2. package/esm/pkg/commands/append.js +2 -2
  3. package/esm/pkg/commands/bitcount.js +2 -2
  4. package/esm/pkg/commands/bitop.js +2 -2
  5. package/esm/pkg/commands/bitpos.js +2 -2
  6. package/esm/pkg/commands/command.js +13 -2
  7. package/esm/pkg/commands/dbsize.js +2 -2
  8. package/esm/pkg/commands/decr.js +2 -2
  9. package/esm/pkg/commands/decrby.js +2 -2
  10. package/esm/pkg/commands/del.js +2 -2
  11. package/esm/pkg/commands/echo.js +2 -2
  12. package/esm/pkg/commands/eval.js +2 -2
  13. package/esm/pkg/commands/evalsha.js +2 -2
  14. package/esm/pkg/commands/exists.js +2 -2
  15. package/esm/pkg/commands/expire.js +2 -2
  16. package/esm/pkg/commands/expireat.js +2 -2
  17. package/esm/pkg/commands/flushall.js +3 -3
  18. package/esm/pkg/commands/flushdb.js +2 -2
  19. package/esm/pkg/commands/get.js +2 -2
  20. package/esm/pkg/commands/getbit.js +2 -2
  21. package/esm/pkg/commands/getrange.js +2 -2
  22. package/esm/pkg/commands/getset.js +2 -2
  23. package/esm/pkg/commands/hdel.js +2 -2
  24. package/esm/pkg/commands/hexists.js +2 -2
  25. package/esm/pkg/commands/hget.js +2 -2
  26. package/esm/pkg/commands/hgetall.js +5 -2
  27. package/esm/pkg/commands/hincrby.js +2 -2
  28. package/esm/pkg/commands/hincrbyfloat.js +2 -2
  29. package/esm/pkg/commands/hkeys.js +2 -2
  30. package/esm/pkg/commands/hlen.js +2 -2
  31. package/esm/pkg/commands/hmget.js +5 -2
  32. package/esm/pkg/commands/hmset.js +2 -2
  33. package/esm/pkg/commands/hscan.js +6 -6
  34. package/esm/pkg/commands/hset.js +2 -2
  35. package/esm/pkg/commands/hsetnx.js +2 -2
  36. package/esm/pkg/commands/hstrlen.js +2 -2
  37. package/esm/pkg/commands/hvals.js +2 -2
  38. package/esm/pkg/commands/incr.js +2 -2
  39. package/esm/pkg/commands/incrby.js +2 -2
  40. package/esm/pkg/commands/incrbyfloat.js +2 -2
  41. package/esm/pkg/commands/keys.js +2 -2
  42. package/esm/pkg/commands/lindex.js +2 -2
  43. package/esm/pkg/commands/linsert.js +2 -2
  44. package/esm/pkg/commands/llen.js +2 -2
  45. package/esm/pkg/commands/lpop.js +2 -2
  46. package/esm/pkg/commands/lpush.js +2 -2
  47. package/esm/pkg/commands/lpushx.js +2 -2
  48. package/esm/pkg/commands/lrange.js +2 -2
  49. package/esm/pkg/commands/lrem.js +2 -2
  50. package/esm/pkg/commands/lset.js +2 -2
  51. package/esm/pkg/commands/ltrim.js +2 -2
  52. package/esm/pkg/commands/mget.js +2 -2
  53. package/esm/pkg/commands/mset.js +2 -2
  54. package/esm/pkg/commands/msetnx.js +2 -2
  55. package/esm/pkg/commands/persist.js +2 -2
  56. package/esm/pkg/commands/pexpire.js +2 -2
  57. package/esm/pkg/commands/pexpireat.js +2 -2
  58. package/esm/pkg/commands/ping.js +4 -4
  59. package/esm/pkg/commands/psetex.js +2 -2
  60. package/esm/pkg/commands/pttl.js +2 -2
  61. package/esm/pkg/commands/publish.js +2 -2
  62. package/esm/pkg/commands/randomkey.js +2 -2
  63. package/esm/pkg/commands/rename.js +2 -2
  64. package/esm/pkg/commands/renamenx.js +2 -2
  65. package/esm/pkg/commands/rpop.js +2 -2
  66. package/esm/pkg/commands/rpush.js +2 -2
  67. package/esm/pkg/commands/rpushx.js +2 -2
  68. package/esm/pkg/commands/sadd.js +2 -2
  69. package/esm/pkg/commands/scan.js +2 -2
  70. package/esm/pkg/commands/scard.js +2 -2
  71. package/esm/pkg/commands/script_exists.js +3 -2
  72. package/esm/pkg/commands/script_flush.js +2 -2
  73. package/esm/pkg/commands/script_load.js +2 -2
  74. package/esm/pkg/commands/sdiff.js +2 -2
  75. package/esm/pkg/commands/sdiffstore.js +2 -2
  76. package/esm/pkg/commands/set.js +6 -6
  77. package/esm/pkg/commands/setbit.js +2 -2
  78. package/esm/pkg/commands/setex.js +2 -2
  79. package/esm/pkg/commands/setnx.js +2 -2
  80. package/esm/pkg/commands/setrange.js +2 -2
  81. package/esm/pkg/commands/sinter.js +2 -2
  82. package/esm/pkg/commands/sinterstore.js +2 -2
  83. package/esm/pkg/commands/sismember.js +2 -2
  84. package/esm/pkg/commands/smembers.js +2 -2
  85. package/esm/pkg/commands/smove.js +2 -2
  86. package/esm/pkg/commands/spop.js +2 -2
  87. package/esm/pkg/commands/srandmember.js +2 -2
  88. package/esm/pkg/commands/srem.js +2 -2
  89. package/esm/pkg/commands/sscan.js +2 -2
  90. package/esm/pkg/commands/strlen.js +2 -2
  91. package/esm/pkg/commands/sunion.js +2 -2
  92. package/esm/pkg/commands/sunionstore.js +2 -2
  93. package/esm/pkg/commands/time.js +2 -2
  94. package/esm/pkg/commands/touch.js +2 -2
  95. package/esm/pkg/commands/ttl.js +2 -2
  96. package/esm/pkg/commands/type.js +2 -2
  97. package/esm/pkg/commands/unlink.js +2 -2
  98. package/esm/pkg/commands/zadd.js +7 -7
  99. package/esm/pkg/commands/zcard.js +2 -2
  100. package/esm/pkg/commands/zcount.js +2 -2
  101. package/esm/pkg/commands/zincrby.js +3 -3
  102. package/esm/pkg/commands/zinterstore.js +4 -4
  103. package/esm/pkg/commands/zlexcount.js +2 -2
  104. package/esm/pkg/commands/zpopmax.js +2 -2
  105. package/esm/pkg/commands/zpopmin.js +2 -2
  106. package/esm/pkg/commands/zrange.js +2 -2
  107. package/esm/pkg/commands/zrank.js +2 -2
  108. package/esm/pkg/commands/zrem.js +2 -2
  109. package/esm/pkg/commands/zremrangebylex.js +2 -2
  110. package/esm/pkg/commands/zremrangebyrank.js +2 -2
  111. package/esm/pkg/commands/zremrangebyscore.js +2 -2
  112. package/esm/pkg/commands/zrevrank.js +2 -2
  113. package/esm/pkg/commands/zscan.js +2 -2
  114. package/esm/pkg/commands/zscore.js +2 -2
  115. package/esm/pkg/commands/zunionstore.js +4 -4
  116. package/esm/pkg/pipeline.js +124 -117
  117. package/esm/pkg/redis.js +122 -116
  118. package/esm/platforms/cloudflare.js +3 -1
  119. package/esm/platforms/fastly.js +3 -1
  120. package/esm/platforms/nodejs.js +3 -1
  121. package/package.json +1 -2
  122. package/script/pkg/commands/append.js +2 -2
  123. package/script/pkg/commands/bitcount.js +2 -2
  124. package/script/pkg/commands/bitop.js +2 -2
  125. package/script/pkg/commands/bitpos.js +2 -2
  126. package/script/pkg/commands/command.js +13 -2
  127. package/script/pkg/commands/dbsize.js +2 -2
  128. package/script/pkg/commands/decr.js +2 -2
  129. package/script/pkg/commands/decrby.js +2 -2
  130. package/script/pkg/commands/del.js +2 -2
  131. package/script/pkg/commands/echo.js +2 -2
  132. package/script/pkg/commands/eval.js +2 -2
  133. package/script/pkg/commands/evalsha.js +2 -2
  134. package/script/pkg/commands/exists.js +2 -2
  135. package/script/pkg/commands/expire.js +2 -2
  136. package/script/pkg/commands/expireat.js +2 -2
  137. package/script/pkg/commands/flushall.js +3 -3
  138. package/script/pkg/commands/flushdb.js +2 -2
  139. package/script/pkg/commands/get.js +2 -2
  140. package/script/pkg/commands/getbit.js +2 -2
  141. package/script/pkg/commands/getrange.js +2 -2
  142. package/script/pkg/commands/getset.js +2 -2
  143. package/script/pkg/commands/hdel.js +2 -2
  144. package/script/pkg/commands/hexists.js +2 -2
  145. package/script/pkg/commands/hget.js +2 -2
  146. package/script/pkg/commands/hgetall.js +5 -2
  147. package/script/pkg/commands/hincrby.js +2 -2
  148. package/script/pkg/commands/hincrbyfloat.js +2 -2
  149. package/script/pkg/commands/hkeys.js +2 -2
  150. package/script/pkg/commands/hlen.js +2 -2
  151. package/script/pkg/commands/hmget.js +5 -2
  152. package/script/pkg/commands/hmset.js +2 -2
  153. package/script/pkg/commands/hscan.js +6 -6
  154. package/script/pkg/commands/hset.js +2 -2
  155. package/script/pkg/commands/hsetnx.js +2 -2
  156. package/script/pkg/commands/hstrlen.js +2 -2
  157. package/script/pkg/commands/hvals.js +2 -2
  158. package/script/pkg/commands/incr.js +2 -2
  159. package/script/pkg/commands/incrby.js +2 -2
  160. package/script/pkg/commands/incrbyfloat.js +2 -2
  161. package/script/pkg/commands/keys.js +2 -2
  162. package/script/pkg/commands/lindex.js +2 -2
  163. package/script/pkg/commands/linsert.js +2 -2
  164. package/script/pkg/commands/llen.js +2 -2
  165. package/script/pkg/commands/lpop.js +2 -2
  166. package/script/pkg/commands/lpush.js +2 -2
  167. package/script/pkg/commands/lpushx.js +2 -2
  168. package/script/pkg/commands/lrange.js +2 -2
  169. package/script/pkg/commands/lrem.js +2 -2
  170. package/script/pkg/commands/lset.js +2 -2
  171. package/script/pkg/commands/ltrim.js +2 -2
  172. package/script/pkg/commands/mget.js +2 -2
  173. package/script/pkg/commands/mset.js +2 -2
  174. package/script/pkg/commands/msetnx.js +2 -2
  175. package/script/pkg/commands/persist.js +2 -2
  176. package/script/pkg/commands/pexpire.js +2 -2
  177. package/script/pkg/commands/pexpireat.js +2 -2
  178. package/script/pkg/commands/ping.js +4 -4
  179. package/script/pkg/commands/psetex.js +2 -2
  180. package/script/pkg/commands/pttl.js +2 -2
  181. package/script/pkg/commands/publish.js +2 -2
  182. package/script/pkg/commands/randomkey.js +2 -2
  183. package/script/pkg/commands/rename.js +2 -2
  184. package/script/pkg/commands/renamenx.js +2 -2
  185. package/script/pkg/commands/rpop.js +2 -2
  186. package/script/pkg/commands/rpush.js +2 -2
  187. package/script/pkg/commands/rpushx.js +2 -2
  188. package/script/pkg/commands/sadd.js +2 -2
  189. package/script/pkg/commands/scan.js +2 -2
  190. package/script/pkg/commands/scard.js +2 -2
  191. package/script/pkg/commands/script_exists.js +3 -2
  192. package/script/pkg/commands/script_flush.js +2 -2
  193. package/script/pkg/commands/script_load.js +2 -2
  194. package/script/pkg/commands/sdiff.js +2 -2
  195. package/script/pkg/commands/sdiffstore.js +2 -2
  196. package/script/pkg/commands/set.js +6 -6
  197. package/script/pkg/commands/setbit.js +2 -2
  198. package/script/pkg/commands/setex.js +2 -2
  199. package/script/pkg/commands/setnx.js +2 -2
  200. package/script/pkg/commands/setrange.js +2 -2
  201. package/script/pkg/commands/sinter.js +2 -2
  202. package/script/pkg/commands/sinterstore.js +2 -2
  203. package/script/pkg/commands/sismember.js +2 -2
  204. package/script/pkg/commands/smembers.js +2 -2
  205. package/script/pkg/commands/smove.js +2 -2
  206. package/script/pkg/commands/spop.js +2 -2
  207. package/script/pkg/commands/srandmember.js +2 -2
  208. package/script/pkg/commands/srem.js +2 -2
  209. package/script/pkg/commands/sscan.js +2 -2
  210. package/script/pkg/commands/strlen.js +2 -2
  211. package/script/pkg/commands/sunion.js +2 -2
  212. package/script/pkg/commands/sunionstore.js +2 -2
  213. package/script/pkg/commands/time.js +2 -2
  214. package/script/pkg/commands/touch.js +2 -2
  215. package/script/pkg/commands/ttl.js +2 -2
  216. package/script/pkg/commands/type.js +2 -2
  217. package/script/pkg/commands/unlink.js +2 -2
  218. package/script/pkg/commands/zadd.js +7 -7
  219. package/script/pkg/commands/zcard.js +2 -2
  220. package/script/pkg/commands/zcount.js +2 -2
  221. package/script/pkg/commands/zincrby.js +5 -5
  222. package/script/pkg/commands/zinterstore.js +4 -4
  223. package/script/pkg/commands/zlexcount.js +2 -2
  224. package/script/pkg/commands/zpopmax.js +2 -2
  225. package/script/pkg/commands/zpopmin.js +2 -2
  226. package/script/pkg/commands/zrange.js +2 -2
  227. package/script/pkg/commands/zrank.js +2 -2
  228. package/script/pkg/commands/zrem.js +2 -2
  229. package/script/pkg/commands/zremrangebylex.js +2 -2
  230. package/script/pkg/commands/zremrangebyrank.js +2 -2
  231. package/script/pkg/commands/zremrangebyscore.js +2 -2
  232. package/script/pkg/commands/zrevrank.js +2 -2
  233. package/script/pkg/commands/zscan.js +2 -2
  234. package/script/pkg/commands/zscore.js +2 -2
  235. package/script/pkg/commands/zunionstore.js +4 -4
  236. package/script/pkg/pipeline.js +123 -116
  237. package/script/pkg/redis.js +121 -115
  238. package/script/platforms/cloudflare.js +3 -1
  239. package/script/platforms/fastly.js +3 -1
  240. package/script/platforms/nodejs.js +3 -1
  241. package/types/pkg/commands/append.d.ts +2 -2
  242. package/types/pkg/commands/bitcount.d.ts +3 -3
  243. package/types/pkg/commands/bitop.d.ts +8 -3
  244. package/types/pkg/commands/bitpos.d.ts +2 -2
  245. package/types/pkg/commands/command.d.ts +19 -5
  246. package/types/pkg/commands/dbsize.d.ts +2 -2
  247. package/types/pkg/commands/decr.d.ts +2 -2
  248. package/types/pkg/commands/decrby.d.ts +2 -2
  249. package/types/pkg/commands/del.d.ts +2 -3
  250. package/types/pkg/commands/echo.d.ts +2 -2
  251. package/types/pkg/commands/eval.d.ts +2 -2
  252. package/types/pkg/commands/evalsha.d.ts +2 -2
  253. package/types/pkg/commands/exists.d.ts +2 -3
  254. package/types/pkg/commands/expire.d.ts +3 -3
  255. package/types/pkg/commands/expireat.d.ts +3 -3
  256. package/types/pkg/commands/flushall.d.ts +3 -3
  257. package/types/pkg/commands/flushdb.d.ts +3 -3
  258. package/types/pkg/commands/get.d.ts +3 -3
  259. package/types/pkg/commands/getbit.d.ts +3 -3
  260. package/types/pkg/commands/getrange.d.ts +2 -2
  261. package/types/pkg/commands/getset.d.ts +3 -3
  262. package/types/pkg/commands/hdel.d.ts +3 -3
  263. package/types/pkg/commands/hexists.d.ts +2 -2
  264. package/types/pkg/commands/hget.d.ts +3 -3
  265. package/types/pkg/commands/hgetall.d.ts +3 -3
  266. package/types/pkg/commands/hincrby.d.ts +2 -2
  267. package/types/pkg/commands/hincrbyfloat.d.ts +2 -2
  268. package/types/pkg/commands/hkeys.d.ts +2 -2
  269. package/types/pkg/commands/hlen.d.ts +2 -2
  270. package/types/pkg/commands/hmget.d.ts +3 -3
  271. package/types/pkg/commands/hmset.d.ts +3 -3
  272. package/types/pkg/commands/hscan.d.ts +12 -2
  273. package/types/pkg/commands/hset.d.ts +3 -3
  274. package/types/pkg/commands/hsetnx.d.ts +3 -3
  275. package/types/pkg/commands/hstrlen.d.ts +2 -2
  276. package/types/pkg/commands/hvals.d.ts +3 -3
  277. package/types/pkg/commands/incr.d.ts +2 -2
  278. package/types/pkg/commands/incrby.d.ts +2 -2
  279. package/types/pkg/commands/incrbyfloat.d.ts +2 -2
  280. package/types/pkg/commands/keys.d.ts +2 -2
  281. package/types/pkg/commands/lindex.d.ts +3 -3
  282. package/types/pkg/commands/linsert.d.ts +7 -2
  283. package/types/pkg/commands/llen.d.ts +2 -2
  284. package/types/pkg/commands/lpop.d.ts +3 -3
  285. package/types/pkg/commands/lpush.d.ts +2 -3
  286. package/types/pkg/commands/lpushx.d.ts +2 -3
  287. package/types/pkg/commands/lrange.d.ts +3 -3
  288. package/types/pkg/commands/lrem.d.ts +2 -2
  289. package/types/pkg/commands/lset.d.ts +2 -2
  290. package/types/pkg/commands/ltrim.d.ts +2 -2
  291. package/types/pkg/commands/mget.d.ts +3 -3
  292. package/types/pkg/commands/mset.d.ts +3 -3
  293. package/types/pkg/commands/msetnx.d.ts +3 -3
  294. package/types/pkg/commands/persist.d.ts +3 -3
  295. package/types/pkg/commands/pexpire.d.ts +3 -3
  296. package/types/pkg/commands/pexpireat.d.ts +3 -3
  297. package/types/pkg/commands/ping.d.ts +2 -2
  298. package/types/pkg/commands/psetex.d.ts +2 -2
  299. package/types/pkg/commands/pttl.d.ts +2 -2
  300. package/types/pkg/commands/publish.d.ts +2 -2
  301. package/types/pkg/commands/randomkey.d.ts +2 -2
  302. package/types/pkg/commands/rename.d.ts +2 -2
  303. package/types/pkg/commands/renamenx.d.ts +3 -3
  304. package/types/pkg/commands/rpop.d.ts +3 -3
  305. package/types/pkg/commands/rpush.d.ts +2 -3
  306. package/types/pkg/commands/rpushx.d.ts +2 -3
  307. package/types/pkg/commands/sadd.d.ts +2 -3
  308. package/types/pkg/commands/scan.d.ts +9 -3
  309. package/types/pkg/commands/scard.d.ts +2 -2
  310. package/types/pkg/commands/script_exists.d.ts +3 -6
  311. package/types/pkg/commands/script_flush.d.ts +2 -2
  312. package/types/pkg/commands/script_load.d.ts +2 -2
  313. package/types/pkg/commands/sdiff.d.ts +3 -3
  314. package/types/pkg/commands/sdiffstore.d.ts +2 -3
  315. package/types/pkg/commands/set.d.ts +3 -3
  316. package/types/pkg/commands/setbit.d.ts +3 -3
  317. package/types/pkg/commands/setex.d.ts +2 -2
  318. package/types/pkg/commands/setnx.d.ts +2 -2
  319. package/types/pkg/commands/setrange.d.ts +2 -2
  320. package/types/pkg/commands/sinter.d.ts +3 -3
  321. package/types/pkg/commands/sinterstore.d.ts +3 -3
  322. package/types/pkg/commands/sismember.d.ts +3 -3
  323. package/types/pkg/commands/smembers.d.ts +3 -3
  324. package/types/pkg/commands/smove.d.ts +3 -3
  325. package/types/pkg/commands/spop.d.ts +3 -3
  326. package/types/pkg/commands/srandmember.d.ts +3 -3
  327. package/types/pkg/commands/srem.d.ts +2 -3
  328. package/types/pkg/commands/sscan.d.ts +12 -2
  329. package/types/pkg/commands/strlen.d.ts +2 -2
  330. package/types/pkg/commands/sunion.d.ts +3 -3
  331. package/types/pkg/commands/sunionstore.d.ts +2 -2
  332. package/types/pkg/commands/time.d.ts +2 -2
  333. package/types/pkg/commands/touch.d.ts +2 -3
  334. package/types/pkg/commands/ttl.d.ts +2 -2
  335. package/types/pkg/commands/type.d.ts +2 -2
  336. package/types/pkg/commands/unlink.d.ts +2 -2
  337. package/types/pkg/commands/zadd.d.ts +11 -3
  338. package/types/pkg/commands/zcard.d.ts +2 -2
  339. package/types/pkg/commands/zcount.d.ts +2 -2
  340. package/types/pkg/commands/zincrby.d.ts +3 -3
  341. package/types/pkg/commands/zinterstore.d.ts +13 -3
  342. package/types/pkg/commands/zlexcount.d.ts +2 -2
  343. package/types/pkg/commands/zpopmax.d.ts +3 -3
  344. package/types/pkg/commands/zpopmin.d.ts +3 -3
  345. package/types/pkg/commands/zrange.d.ts +19 -9
  346. package/types/pkg/commands/zrank.d.ts +2 -2
  347. package/types/pkg/commands/zrem.d.ts +2 -3
  348. package/types/pkg/commands/zremrangebylex.d.ts +2 -2
  349. package/types/pkg/commands/zremrangebyrank.d.ts +2 -2
  350. package/types/pkg/commands/zremrangebyscore.d.ts +2 -2
  351. package/types/pkg/commands/zrevrank.d.ts +2 -2
  352. package/types/pkg/commands/zscan.d.ts +12 -2
  353. package/types/pkg/commands/zscore.d.ts +3 -3
  354. package/types/pkg/commands/zunionstore.d.ts +13 -3
  355. package/types/pkg/pipeline.d.ts +20 -23
  356. package/types/pkg/redis.d.ts +30 -23
  357. package/types/pkg/types.d.ts +1 -2
  358. package/types/platforms/cloudflare.d.ts +1 -1
  359. package/types/platforms/fastly.d.ts +1 -1
  360. package/types/platforms/nodejs.d.ts +1 -1
package/README.md CHANGED
@@ -76,7 +76,7 @@ const redis = new Redis({
76
76
  const redis = Redis.fromEnv()
77
77
  ```
78
78
 
79
- - [Code example](https://github.com/upstash/upstash-redis/tree/main/examples/node)
79
+ - [Code example](https://github.com/upstash/upstash-redis/blob/main/examples/nodejs)
80
80
 
81
81
  #### Cloudflare Workers
82
82
 
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/append
4
4
  */
5
5
  export class AppendCommand extends Command {
6
- constructor(key, value) {
7
- super(["append", key, value]);
6
+ constructor(cmd, opts) {
7
+ super(["append", ...cmd], opts);
8
8
  }
9
9
  }
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/bitcount
4
4
  */
5
5
  export class BitCountCommand extends Command {
6
- constructor(key, start, end) {
6
+ constructor([key, start, end], opts) {
7
7
  const command = ["bitcount", key];
8
8
  if (typeof start === "number") {
9
9
  command.push(start);
@@ -11,6 +11,6 @@ export class BitCountCommand extends Command {
11
11
  if (typeof end === "number") {
12
12
  command.push(end);
13
13
  }
14
- super(command);
14
+ super(command, opts);
15
15
  }
16
16
  }
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/bitop
4
4
  */
5
5
  export class BitOpCommand extends Command {
6
- constructor(op, destinationKey, sourceKey, ...sourceKeys) {
7
- super(["bitop", op, destinationKey, sourceKey, ...sourceKeys]);
6
+ constructor(cmd, opts) {
7
+ super(["bitop", ...cmd], opts);
8
8
  }
9
9
  }
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/bitpos
4
4
  */
5
5
  export class BitPosCommand extends Command {
6
- constructor(key, start, end) {
7
- super(["bitpos", key, start, end]);
6
+ constructor(cmd, opts) {
7
+ super(["bitpos", ...cmd], opts);
8
8
  }
9
9
  }
@@ -1,5 +1,6 @@
1
1
  import { UpstashError } from "../error.js";
2
2
  import { parseResponse } from "../util.js";
3
+ const defaultSerializer = (c) => typeof c === "string" ? c : JSON.stringify(c);
3
4
  /**
4
5
  * Command offers default (de)serialization and the exec method to all commands.
5
6
  *
@@ -19,14 +20,24 @@ export class Command {
19
20
  writable: true,
20
21
  value: void 0
21
22
  });
23
+ Object.defineProperty(this, "serialize", {
24
+ enumerable: true,
25
+ configurable: true,
26
+ writable: true,
27
+ value: void 0
28
+ });
22
29
  Object.defineProperty(this, "deserialize", {
23
30
  enumerable: true,
24
31
  configurable: true,
25
32
  writable: true,
26
33
  value: void 0
27
34
  });
28
- this.command = command.map((c) => typeof c === "string" ? c : JSON.stringify(c));
29
- this.deserialize = opts?.deserialize ?? parseResponse;
35
+ this.serialize = defaultSerializer;
36
+ this.deserialize = typeof opts?.automaticDeserialization === "undefined" ||
37
+ opts.automaticDeserialization
38
+ ? opts?.deserialize ?? parseResponse
39
+ : (x) => x;
40
+ this.command = command.map(this.serialize);
30
41
  }
31
42
  /**
32
43
  * Execute the command using a client.
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/dbsize
4
4
  */
5
5
  export class DBSizeCommand extends Command {
6
- constructor() {
7
- super(["dbsize"]);
6
+ constructor(opts) {
7
+ super(["dbsize"], opts);
8
8
  }
9
9
  }
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/decr
4
4
  */
5
5
  export class DecrCommand extends Command {
6
- constructor(key) {
7
- super(["decr", key]);
6
+ constructor(cmd, opts) {
7
+ super(["decr", ...cmd], opts);
8
8
  }
9
9
  }
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/decrby
4
4
  */
5
5
  export class DecrByCommand extends Command {
6
- constructor(key, decrement) {
7
- super(["decrby", key, decrement]);
6
+ constructor(cmd, opts) {
7
+ super(["decrby", ...cmd], opts);
8
8
  }
9
9
  }
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/del
4
4
  */
5
5
  export class DelCommand extends Command {
6
- constructor(...keys) {
7
- super(["del", ...keys]);
6
+ constructor(cmd, opts) {
7
+ super(["del", ...cmd], opts);
8
8
  }
9
9
  }
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/echo
4
4
  */
5
5
  export class EchoCommand extends Command {
6
- constructor(message) {
7
- super(["echo", message]);
6
+ constructor(cmd, opts) {
7
+ super(["echo", ...cmd], opts);
8
8
  }
9
9
  }
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/eval
4
4
  */
5
5
  export class EvalCommand extends Command {
6
- constructor(script, keys, args) {
7
- super(["eval", script, keys.length, ...keys, ...(args ?? [])]);
6
+ constructor([script, keys, args], opts) {
7
+ super(["eval", script, keys.length, ...keys, ...(args ?? [])], opts);
8
8
  }
9
9
  }
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/evalsha
4
4
  */
5
5
  export class EvalshaCommand extends Command {
6
- constructor(sha, keys, args) {
7
- super(["evalsha", sha, keys.length, ...keys, ...(args ?? [])]);
6
+ constructor([sha, keys, args], opts) {
7
+ super(["evalsha", sha, keys.length, ...keys, ...(args ?? [])], opts);
8
8
  }
9
9
  }
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/exists
4
4
  */
5
5
  export class ExistsCommand extends Command {
6
- constructor(...keys) {
7
- super(["exists", ...keys]);
6
+ constructor(cmd, opts) {
7
+ super(["exists", ...cmd], opts);
8
8
  }
9
9
  }
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/expire
4
4
  */
5
5
  export class ExpireCommand extends Command {
6
- constructor(key, seconds) {
7
- super(["expire", key, seconds]);
6
+ constructor(cmd, opts) {
7
+ super(["expire", ...cmd], opts);
8
8
  }
9
9
  }
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/expireat
4
4
  */
5
5
  export class ExpireAtCommand extends Command {
6
- constructor(key, unix) {
7
- super(["expireat", key, unix]);
6
+ constructor(cmd, opts) {
7
+ super(["expireat", ...cmd], opts);
8
8
  }
9
9
  }
@@ -3,11 +3,11 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/flushall
4
4
  */
5
5
  export class FlushAllCommand extends Command {
6
- constructor(opts) {
6
+ constructor(args, opts) {
7
7
  const command = ["flushall"];
8
- if (opts?.async) {
8
+ if (args && args.length > 0 && args[0].async) {
9
9
  command.push("async");
10
10
  }
11
- super(command);
11
+ super(command, opts);
12
12
  }
13
13
  }
@@ -3,11 +3,11 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/flushdb
4
4
  */
5
5
  export class FlushDBCommand extends Command {
6
- constructor(opts) {
6
+ constructor([opts], cmdOpts) {
7
7
  const command = ["flushdb"];
8
8
  if (opts?.async) {
9
9
  command.push("async");
10
10
  }
11
- super(command);
11
+ super(command, cmdOpts);
12
12
  }
13
13
  }
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/get
4
4
  */
5
5
  export class GetCommand extends Command {
6
- constructor(key) {
7
- super(["get", key]);
6
+ constructor(cmd, opts) {
7
+ super(["get", ...cmd], opts);
8
8
  }
9
9
  }
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/getbit
4
4
  */
5
5
  export class GetBitCommand extends Command {
6
- constructor(key, offset) {
7
- super(["getbit", key, offset]);
6
+ constructor(cmd, opts) {
7
+ super(["getbit", ...cmd], opts);
8
8
  }
9
9
  }
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/getrange
4
4
  */
5
5
  export class GetRangeCommand extends Command {
6
- constructor(key, start, end) {
7
- super(["getrange", key, start, end]);
6
+ constructor(cmd, opts) {
7
+ super(["getrange", ...cmd], opts);
8
8
  }
9
9
  }
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/getset
4
4
  */
5
5
  export class GetSetCommand extends Command {
6
- constructor(key, value) {
7
- super(["getset", key, value]);
6
+ constructor(cmd, opts) {
7
+ super(["getset", ...cmd], opts);
8
8
  }
9
9
  }
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/hdel
4
4
  */
5
5
  export class HDelCommand extends Command {
6
- constructor(key, field) {
7
- super(["hdel", key, field]);
6
+ constructor(cmd, opts) {
7
+ super(["hdel", ...cmd], opts);
8
8
  }
9
9
  }
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/hexists
4
4
  */
5
5
  export class HExistsCommand extends Command {
6
- constructor(key, field) {
7
- super(["hexists", key, field]);
6
+ constructor(cmd, opts) {
7
+ super(["hexists", ...cmd], opts);
8
8
  }
9
9
  }
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/hget
4
4
  */
5
5
  export class HGetCommand extends Command {
6
- constructor(key, field) {
7
- super(["hget", key, field]);
6
+ constructor(cmd, opts) {
7
+ super(["hget", ...cmd], opts);
8
8
  }
9
9
  }
@@ -24,7 +24,10 @@ function deserialize(result) {
24
24
  * @see https://redis.io/commands/hgetall
25
25
  */
26
26
  export class HGetAllCommand extends Command {
27
- constructor(key) {
28
- super(["hgetall", key], { deserialize: (result) => deserialize(result) });
27
+ constructor(cmd, opts) {
28
+ super(["hgetall", ...cmd], {
29
+ deserialize: (result) => deserialize(result),
30
+ ...opts,
31
+ });
29
32
  }
30
33
  }
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/hincrby
4
4
  */
5
5
  export class HIncrByCommand extends Command {
6
- constructor(key, field, increment) {
7
- super(["hincrby", key, field, increment]);
6
+ constructor(cmd, opts) {
7
+ super(["hincrby", ...cmd], opts);
8
8
  }
9
9
  }
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/hincrbyfloat
4
4
  */
5
5
  export class HIncrByFloatCommand extends Command {
6
- constructor(key, field, increment) {
7
- super(["hincrbyfloat", key, field, increment]);
6
+ constructor(cmd, opts) {
7
+ super(["hincrbyfloat", ...cmd], opts);
8
8
  }
9
9
  }
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/hkeys
4
4
  */
5
5
  export class HKeysCommand extends Command {
6
- constructor(key) {
7
- super(["hkeys", key]);
6
+ constructor([key], opts) {
7
+ super(["hkeys", key], opts);
8
8
  }
9
9
  }
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/hlen
4
4
  */
5
5
  export class HLenCommand extends Command {
6
- constructor(key) {
7
- super(["hlen", key]);
6
+ constructor(cmd, opts) {
7
+ super(["hlen", ...cmd], opts);
8
8
  }
9
9
  }
@@ -26,7 +26,10 @@ function deserialize(fields, result) {
26
26
  * @see https://redis.io/commands/hmget
27
27
  */
28
28
  export class HMGetCommand extends Command {
29
- constructor(key, ...fields) {
30
- super(["hmget", key, ...fields], { deserialize: (result) => deserialize(fields, result) });
29
+ constructor([key, ...fields], opts) {
30
+ super(["hmget", key, ...fields], {
31
+ deserialize: (result) => deserialize(fields, result),
32
+ ...opts,
33
+ });
31
34
  }
32
35
  }
@@ -3,11 +3,11 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/hmset
4
4
  */
5
5
  export class HMSetCommand extends Command {
6
- constructor(key, kv) {
6
+ constructor([key, kv], opts) {
7
7
  super([
8
8
  "hmset",
9
9
  key,
10
10
  ...Object.entries(kv).flatMap(([field, value]) => [field, value]),
11
- ]);
11
+ ], opts);
12
12
  }
13
13
  }
@@ -3,14 +3,14 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/hscan
4
4
  */
5
5
  export class HScanCommand extends Command {
6
- constructor(key, cursor, opts) {
6
+ constructor([key, cursor, cmdOpts], opts) {
7
7
  const command = ["hscan", key, cursor];
8
- if (opts?.match) {
9
- command.push("match", opts.match);
8
+ if (cmdOpts?.match) {
9
+ command.push("match", cmdOpts.match);
10
10
  }
11
- if (typeof opts?.count === "number") {
12
- command.push("count", opts.count);
11
+ if (typeof cmdOpts?.count === "number") {
12
+ command.push("count", cmdOpts.count);
13
13
  }
14
- super(command);
14
+ super(command, opts);
15
15
  }
16
16
  }
@@ -3,11 +3,11 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/hset
4
4
  */
5
5
  export class HSetCommand extends Command {
6
- constructor(key, kv) {
6
+ constructor([key, kv], opts) {
7
7
  super([
8
8
  "hset",
9
9
  key,
10
10
  ...Object.entries(kv).flatMap(([field, value]) => [field, value]),
11
- ]);
11
+ ], opts);
12
12
  }
13
13
  }
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/hsetnx
4
4
  */
5
5
  export class HSetNXCommand extends Command {
6
- constructor(key, field, value) {
7
- super(["hsetnx", key, field, value]);
6
+ constructor(cmd, opts) {
7
+ super(["hsetnx", ...cmd], opts);
8
8
  }
9
9
  }
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/hstrlen
4
4
  */
5
5
  export class HStrLenCommand extends Command {
6
- constructor(key, field) {
7
- super(["hstrlen", key, field]);
6
+ constructor(cmd, opts) {
7
+ super(["hstrlen", ...cmd], opts);
8
8
  }
9
9
  }
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/hvals
4
4
  */
5
5
  export class HValsCommand extends Command {
6
- constructor(key) {
7
- super(["hvals", key]);
6
+ constructor(cmd, opts) {
7
+ super(["hvals", ...cmd], opts);
8
8
  }
9
9
  }
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/incr
4
4
  */
5
5
  export class IncrCommand extends Command {
6
- constructor(key) {
7
- super(["incr", key]);
6
+ constructor(cmd, opts) {
7
+ super(["incr", ...cmd], opts);
8
8
  }
9
9
  }
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/incrby
4
4
  */
5
5
  export class IncrByCommand extends Command {
6
- constructor(key, value) {
7
- super(["incrby", key, value]);
6
+ constructor(cmd, opts) {
7
+ super(["incrby", ...cmd], opts);
8
8
  }
9
9
  }
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/incrbyfloat
4
4
  */
5
5
  export class IncrByFloatCommand extends Command {
6
- constructor(key, value) {
7
- super(["incrbyfloat", key, value]);
6
+ constructor(cmd, opts) {
7
+ super(["incrbyfloat", ...cmd], opts);
8
8
  }
9
9
  }
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/keys
4
4
  */
5
5
  export class KeysCommand extends Command {
6
- constructor(pattern) {
7
- super(["keys", pattern]);
6
+ constructor(cmd, opts) {
7
+ super(["keys", ...cmd], opts);
8
8
  }
9
9
  }
@@ -1,6 +1,6 @@
1
1
  import { Command } from "./command.js";
2
2
  export class LIndexCommand extends Command {
3
- constructor(key, index) {
4
- super(["lindex", key, index]);
3
+ constructor(cmd, opts) {
4
+ super(["lindex", ...cmd], opts);
5
5
  }
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import { Command } from "./command.js";
2
2
  export class LInsertCommand extends Command {
3
- constructor(key, direction, pivot, value) {
4
- super(["linsert", key, direction, pivot, value]);
3
+ constructor(cmd, opts) {
4
+ super(["linsert", ...cmd], opts);
5
5
  }
6
6
  }
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/llen
4
4
  */
5
5
  export class LLenCommand extends Command {
6
- constructor(key) {
7
- super(["llen", key]);
6
+ constructor(cmd, opts) {
7
+ super(["llen", ...cmd], opts);
8
8
  }
9
9
  }
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/lpop
4
4
  */
5
5
  export class LPopCommand extends Command {
6
- constructor(key) {
7
- super(["lpop", key]);
6
+ constructor(cmd, opts) {
7
+ super(["lpop", ...cmd], opts);
8
8
  }
9
9
  }
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/lpush
4
4
  */
5
5
  export class LPushCommand extends Command {
6
- constructor(key, ...elements) {
7
- super(["lpush", key, ...elements]);
6
+ constructor(cmd, opts) {
7
+ super(["lpush", ...cmd], opts);
8
8
  }
9
9
  }
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/lpushx
4
4
  */
5
5
  export class LPushXCommand extends Command {
6
- constructor(key, ...elements) {
7
- super(["lpushx", key, ...elements]);
6
+ constructor(cmd, opts) {
7
+ super(["lpushx", ...cmd], opts);
8
8
  }
9
9
  }
@@ -1,6 +1,6 @@
1
1
  import { Command } from "./command.js";
2
2
  export class LRangeCommand extends Command {
3
- constructor(key, start, end) {
4
- super(["lrange", key, start, end]);
3
+ constructor(cmd, opts) {
4
+ super(["lrange", ...cmd], opts);
5
5
  }
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import { Command } from "./command.js";
2
2
  export class LRemCommand extends Command {
3
- constructor(key, count, value) {
4
- super(["lrem", key, count, value]);
3
+ constructor(cmd, opts) {
4
+ super(["lrem", ...cmd], opts);
5
5
  }
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import { Command } from "./command.js";
2
2
  export class LSetCommand extends Command {
3
- constructor(key, value, index) {
4
- super(["lset", key, index, value]);
3
+ constructor(cmd, opts) {
4
+ super(["lset", ...cmd], opts);
5
5
  }
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import { Command } from "./command.js";
2
2
  export class LTrimCommand extends Command {
3
- constructor(key, start, end) {
4
- super(["ltrim", key, start, end]);
3
+ constructor(cmd, opts) {
4
+ super(["ltrim", ...cmd], opts);
5
5
  }
6
6
  }
@@ -3,7 +3,7 @@ import { Command } from "./command.js";
3
3
  * @see https://redis.io/commands/mget
4
4
  */
5
5
  export class MGetCommand extends Command {
6
- constructor(...keys) {
7
- super(["mget", ...keys]);
6
+ constructor(cmd, opts) {
7
+ super(["mget", ...cmd], opts);
8
8
  }
9
9
  }