@upstash/redis 1.3.2-alpha.0 → 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 +26 -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 -3
  121. package/package.json +1 -1
  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 -3
  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
@@ -34,10 +34,18 @@ further explanation we wrote a
34
34
 
35
35
  ### Install
36
36
 
37
+ #### npm
38
+
37
39
  ```bash
38
40
  npm install @upstash/redis
39
41
  ```
40
42
 
43
+ #### Deno
44
+
45
+ ```ts
46
+ import { Redis } from "https://deno.land/x/upstash_redis/mod.ts";
47
+ ```
48
+
41
49
  ### Create database
42
50
 
43
51
  Create a new redis database on [upstash](https://console.upstash.com/)
@@ -68,7 +76,7 @@ const redis = new Redis({
68
76
  const redis = Redis.fromEnv()
69
77
  ```
70
78
 
71
- - [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)
72
80
 
73
81
  #### Cloudflare Workers
74
82
 
@@ -127,6 +135,23 @@ const redis = new Redis({
127
135
  - [Code example](https://github.com/upstash/upstash-redis/tree/main/examples/fastly)
128
136
  - [Documentation](https://blog.upstash.com/fastly-compute-edge-with-redi)
129
137
 
138
+ #### Deno
139
+
140
+ Examples: [Deno Deploy](https://deno.com/deploy),
141
+ [Netlify Edge](https://www.netlify.com/products/edge/)
142
+
143
+ ```ts
144
+ import { Redis } from "https://deno.land/x/upstash_redis/mod.ts"
145
+
146
+ const redis = new Redis({
147
+ url: <UPSTASH_REDIS_REST_URL>,
148
+ token: <UPSTASH_REDIS_REST_TOKEN>,
149
+ })
150
+
151
+ // or
152
+ const redis = Redis.fromEnv();
153
+ ```
154
+
130
155
  ### Working with types
131
156
 
132
157
  Most commands allow you to provide a type to make working with typescript
@@ -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
  }