@upstash/redis 1.0.0-alpha.2 → 1.0.0-alpha.7

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 (268) hide show
  1. package/README.md +256 -0
  2. package/{dist/chunk-7YUZYRJS.mjs → chunk-7YUZYRJS.mjs} +0 -0
  3. package/{dist/chunk-FJSI5EBJ.mjs → chunk-AHCVU33N.mjs} +2 -2
  4. package/{dist/chunk-ZIB6XPPC.mjs → chunk-HGM7M7CJ.mjs} +9 -4
  5. package/{dist/chunk-U7OXAQMQ.mjs → chunk-HIDCSH5S.mjs} +0 -1
  6. package/{dist/chunk-Y5TC4HX2.mjs → chunk-T66TTHSV.mjs} +5 -5
  7. package/{dist/cloudflare.d.ts → cloudflare.d.ts} +2 -2
  8. package/{dist/cloudflare.js → cloudflare.js} +12 -9
  9. package/{dist/cloudflare.mjs → cloudflare.mjs} +3 -3
  10. package/{dist/commands.d.ts → commands.d.ts} +5 -3
  11. package/{dist/commands.js → commands.js} +10 -4
  12. package/{dist/commands.mjs → commands.mjs} +3 -1
  13. package/{dist/fastly.d.ts → fastly.d.ts} +2 -2
  14. package/{dist/fastly.js → fastly.js} +12 -9
  15. package/{dist/fastly.mjs → fastly.mjs} +3 -3
  16. package/{dist/http.d.ts → http.d.ts} +0 -0
  17. package/{dist/http.js → http.js} +0 -1
  18. package/{dist/http.mjs → http.mjs} +1 -1
  19. package/{dist/index.d.ts → index.d.ts} +2 -2
  20. package/{dist/index.js → index.js} +13 -10
  21. package/index.mjs +13 -0
  22. package/{dist/nodejs.d.ts → nodejs.d.ts} +2 -2
  23. package/{dist/nodejs.js → nodejs.js} +13 -10
  24. package/nodejs.mjs +10 -0
  25. package/package.json +1 -1
  26. package/{dist/redis-dd052782.d.ts → redis-71fa1ee6.d.ts} +7 -3
  27. package/{dist/zunionstore-dffa797d.d.ts → zunionstore-b38007ba.d.ts} +1 -1
  28. package/.eslintrc.js +0 -49
  29. package/.prettierrc.js +0 -7
  30. package/LICENSE +0 -21
  31. package/dist/index.mjs +0 -13
  32. package/dist/nodejs.mjs +0 -10
  33. package/dist/package.json +0 -1
  34. package/jest.config.js +0 -195
  35. package/pkg/cloudflare.ts +0 -77
  36. package/pkg/command.ts +0 -40
  37. package/pkg/commands/append.test.ts +0 -28
  38. package/pkg/commands/append.ts +0 -10
  39. package/pkg/commands/bitcount.test.ts +0 -36
  40. package/pkg/commands/bitcount.ts +0 -19
  41. package/pkg/commands/bitop.test.ts +0 -44
  42. package/pkg/commands/bitop.ts +0 -22
  43. package/pkg/commands/bitpos.test.ts +0 -26
  44. package/pkg/commands/bitpos.ts +0 -10
  45. package/pkg/commands/dbsize.test.ts +0 -17
  46. package/pkg/commands/dbsize.ts +0 -10
  47. package/pkg/commands/decr.test.ts +0 -22
  48. package/pkg/commands/decr.ts +0 -10
  49. package/pkg/commands/decrby.test.ts +0 -23
  50. package/pkg/commands/decrby.ts +0 -10
  51. package/pkg/commands/del.test.ts +0 -38
  52. package/pkg/commands/del.ts +0 -11
  53. package/pkg/commands/echo.test.ts +0 -11
  54. package/pkg/commands/echo.ts +0 -10
  55. package/pkg/commands/exists.test.ts +0 -37
  56. package/pkg/commands/exists.ts +0 -11
  57. package/pkg/commands/expire.test.ts +0 -22
  58. package/pkg/commands/expire.ts +0 -10
  59. package/pkg/commands/expireat.test.ts +0 -24
  60. package/pkg/commands/expireat.ts +0 -10
  61. package/pkg/commands/flushall.test.ts +0 -17
  62. package/pkg/commands/flushall.ts +0 -13
  63. package/pkg/commands/flushdb.test.ts +0 -17
  64. package/pkg/commands/flushdb.ts +0 -13
  65. package/pkg/commands/get.test.ts +0 -34
  66. package/pkg/commands/get.ts +0 -10
  67. package/pkg/commands/getbit.test.ts +0 -16
  68. package/pkg/commands/getbit.ts +0 -10
  69. package/pkg/commands/getrange.test.ts +0 -25
  70. package/pkg/commands/getrange.ts +0 -10
  71. package/pkg/commands/getset.test.ts +0 -33
  72. package/pkg/commands/getset.ts +0 -10
  73. package/pkg/commands/hdel.test.ts +0 -30
  74. package/pkg/commands/hdel.ts +0 -10
  75. package/pkg/commands/hexists.test.ts +0 -31
  76. package/pkg/commands/hexists.ts +0 -10
  77. package/pkg/commands/hget.test.ts +0 -47
  78. package/pkg/commands/hget.ts +0 -10
  79. package/pkg/commands/hgetall.test.ts +0 -32
  80. package/pkg/commands/hgetall.ts +0 -35
  81. package/pkg/commands/hincrby.test.ts +0 -27
  82. package/pkg/commands/hincrby.ts +0 -10
  83. package/pkg/commands/hincrbyfloat.test.ts +0 -25
  84. package/pkg/commands/hincrbyfloat.ts +0 -10
  85. package/pkg/commands/hkeys.test.ts +0 -22
  86. package/pkg/commands/hkeys.ts +0 -10
  87. package/pkg/commands/hlen.test.ts +0 -24
  88. package/pkg/commands/hlen.ts +0 -10
  89. package/pkg/commands/hmget.test.ts +0 -48
  90. package/pkg/commands/hmget.ts +0 -41
  91. package/pkg/commands/hmset.test.ts +0 -24
  92. package/pkg/commands/hmset.ts +0 -10
  93. package/pkg/commands/hscan.test.ts +0 -46
  94. package/pkg/commands/hscan.ts +0 -22
  95. package/pkg/commands/hset.test.ts +0 -21
  96. package/pkg/commands/hset.ts +0 -10
  97. package/pkg/commands/hsetnx.test.ts +0 -37
  98. package/pkg/commands/hsetnx.ts +0 -10
  99. package/pkg/commands/hstrlen.test.ts +0 -24
  100. package/pkg/commands/hstrlen.ts +0 -10
  101. package/pkg/commands/hvals.test.ts +0 -23
  102. package/pkg/commands/hvals.ts +0 -10
  103. package/pkg/commands/incr.test.ts +0 -23
  104. package/pkg/commands/incr.ts +0 -10
  105. package/pkg/commands/incrby.test.ts +0 -23
  106. package/pkg/commands/incrby.ts +0 -10
  107. package/pkg/commands/incrbyfloat.test.ts +0 -24
  108. package/pkg/commands/incrbyfloat.ts +0 -10
  109. package/pkg/commands/index.ts +0 -107
  110. package/pkg/commands/keys.test.ts +0 -17
  111. package/pkg/commands/keys.ts +0 -10
  112. package/pkg/commands/lindex.test.ts +0 -33
  113. package/pkg/commands/lindex.ts +0 -7
  114. package/pkg/commands/linsert.test.ts +0 -19
  115. package/pkg/commands/linsert.ts +0 -6
  116. package/pkg/commands/llen.test.ts +0 -26
  117. package/pkg/commands/llen.ts +0 -10
  118. package/pkg/commands/lpop.test.ts +0 -27
  119. package/pkg/commands/lpop.ts +0 -10
  120. package/pkg/commands/lpush.test.ts +0 -17
  121. package/pkg/commands/lpush.ts +0 -11
  122. package/pkg/commands/lpushx.test.ts +0 -29
  123. package/pkg/commands/lpushx.ts +0 -11
  124. package/pkg/commands/lrange.test.ts +0 -22
  125. package/pkg/commands/lrange.ts +0 -7
  126. package/pkg/commands/lrem.test.ts +0 -19
  127. package/pkg/commands/lrem.ts +0 -6
  128. package/pkg/commands/lset.test.ts +0 -40
  129. package/pkg/commands/lset.ts +0 -7
  130. package/pkg/commands/ltrim.test.ts +0 -29
  131. package/pkg/commands/ltrim.ts +0 -7
  132. package/pkg/commands/mget.test.ts +0 -44
  133. package/pkg/commands/mget.ts +0 -9
  134. package/pkg/commands/mset.test.ts +0 -24
  135. package/pkg/commands/mset.ts +0 -10
  136. package/pkg/commands/msetnx.test.ts +0 -46
  137. package/pkg/commands/msetnx.ts +0 -10
  138. package/pkg/commands/persist.test.ts +0 -22
  139. package/pkg/commands/persist.ts +0 -10
  140. package/pkg/commands/pexpire.test.ts +0 -24
  141. package/pkg/commands/pexpire.ts +0 -10
  142. package/pkg/commands/pexpireat.test.ts +0 -24
  143. package/pkg/commands/pexpireat.ts +0 -10
  144. package/pkg/commands/ping.test.ts +0 -19
  145. package/pkg/commands/ping.ts +0 -13
  146. package/pkg/commands/psetex.test.ts +0 -23
  147. package/pkg/commands/psetex.ts +0 -10
  148. package/pkg/commands/pttl.test.ts +0 -17
  149. package/pkg/commands/pttl.ts +0 -10
  150. package/pkg/commands/randomkey.test.ts +0 -17
  151. package/pkg/commands/randomkey.ts +0 -10
  152. package/pkg/commands/rename.test.ts +0 -18
  153. package/pkg/commands/rename.ts +0 -10
  154. package/pkg/commands/renamenx.test.ts +0 -32
  155. package/pkg/commands/renamenx.ts +0 -10
  156. package/pkg/commands/rpop.test.ts +0 -27
  157. package/pkg/commands/rpop.ts +0 -10
  158. package/pkg/commands/rpush.test.ts +0 -17
  159. package/pkg/commands/rpush.ts +0 -11
  160. package/pkg/commands/rpushx.test.ts +0 -29
  161. package/pkg/commands/rpushx.ts +0 -11
  162. package/pkg/commands/sadd.test.ts +0 -16
  163. package/pkg/commands/sadd.ts +0 -11
  164. package/pkg/commands/scan.test.ts +0 -50
  165. package/pkg/commands/scan.ts +0 -21
  166. package/pkg/commands/scard.test.ts +0 -15
  167. package/pkg/commands/scard.ts +0 -9
  168. package/pkg/commands/sdiff.test.ts +0 -20
  169. package/pkg/commands/sdiff.ts +0 -9
  170. package/pkg/commands/sdiffstore.test.ts +0 -21
  171. package/pkg/commands/sdiffstore.ts +0 -10
  172. package/pkg/commands/set.test.ts +0 -112
  173. package/pkg/commands/set.ts +0 -53
  174. package/pkg/commands/setbit.test.ts +0 -16
  175. package/pkg/commands/setbit.ts +0 -10
  176. package/pkg/commands/setex.test.ts +0 -22
  177. package/pkg/commands/setex.ts +0 -10
  178. package/pkg/commands/setnx.test.ts +0 -27
  179. package/pkg/commands/setnx.ts +0 -10
  180. package/pkg/commands/setrange.test.ts +0 -25
  181. package/pkg/commands/setrange.ts +0 -10
  182. package/pkg/commands/sinter.test.ts +0 -36
  183. package/pkg/commands/sinter.ts +0 -9
  184. package/pkg/commands/sinterstore.test.ts +0 -21
  185. package/pkg/commands/sinterstore.ts +0 -9
  186. package/pkg/commands/sismember.test.ts +0 -30
  187. package/pkg/commands/sismember.ts +0 -9
  188. package/pkg/commands/smembers.test.ts +0 -22
  189. package/pkg/commands/smembers.ts +0 -10
  190. package/pkg/commands/smove.test.ts +0 -18
  191. package/pkg/commands/smove.ts +0 -9
  192. package/pkg/commands/spop.test.ts +0 -35
  193. package/pkg/commands/spop.ts +0 -13
  194. package/pkg/commands/srandmember.test.ts +0 -32
  195. package/pkg/commands/srandmember.ts +0 -13
  196. package/pkg/commands/srem.test.ts +0 -18
  197. package/pkg/commands/srem.ts +0 -10
  198. package/pkg/commands/sscan.test.ts +0 -50
  199. package/pkg/commands/sscan.ts +0 -22
  200. package/pkg/commands/strlen.test.ts +0 -16
  201. package/pkg/commands/strlen.ts +0 -10
  202. package/pkg/commands/sunion.test.ts +0 -22
  203. package/pkg/commands/sunion.ts +0 -10
  204. package/pkg/commands/sunionstore.test.ts +0 -29
  205. package/pkg/commands/sunionstore.ts +0 -10
  206. package/pkg/commands/time.test.ts +0 -11
  207. package/pkg/commands/time.ts +0 -9
  208. package/pkg/commands/touch.test.ts +0 -20
  209. package/pkg/commands/touch.ts +0 -10
  210. package/pkg/commands/ttl.test.ts +0 -17
  211. package/pkg/commands/ttl.ts +0 -10
  212. package/pkg/commands/type.test.ts +0 -72
  213. package/pkg/commands/type.ts +0 -11
  214. package/pkg/commands/unlink.test.ts +0 -21
  215. package/pkg/commands/unlink.ts +0 -10
  216. package/pkg/commands/zadd.test.ts +0 -177
  217. package/pkg/commands/zadd.ts +0 -64
  218. package/pkg/commands/zcard.test.ts +0 -15
  219. package/pkg/commands/zcard.ts +0 -10
  220. package/pkg/commands/zcount.test.ts +0 -15
  221. package/pkg/commands/zcount.ts +0 -9
  222. package/pkg/commands/zincrby.test.ts +0 -20
  223. package/pkg/commands/zincrby.ts +0 -9
  224. package/pkg/commands/zinterstore.test.ts +0 -239
  225. package/pkg/commands/zinterstore.ts +0 -55
  226. package/pkg/commands/zlexcount.test.ts +0 -22
  227. package/pkg/commands/zlexcount.ts +0 -9
  228. package/pkg/commands/zpopmax.test.ts +0 -45
  229. package/pkg/commands/zpopmax.ts +0 -13
  230. package/pkg/commands/zpopmin.test.ts +0 -49
  231. package/pkg/commands/zpopmin.ts +0 -13
  232. package/pkg/commands/zrange.test.ts +0 -52
  233. package/pkg/commands/zrange.ts +0 -22
  234. package/pkg/commands/zrank.test.ts +0 -22
  235. package/pkg/commands/zrank.ts +0 -10
  236. package/pkg/commands/zrem.test.ts +0 -20
  237. package/pkg/commands/zrem.ts +0 -10
  238. package/pkg/commands/zremrangebylex.test.ts +0 -26
  239. package/pkg/commands/zremrangebylex.ts +0 -9
  240. package/pkg/commands/zremrangebyrank.test.ts +0 -27
  241. package/pkg/commands/zremrangebyrank.ts +0 -9
  242. package/pkg/commands/zremrangebyscore.test.ts +0 -24
  243. package/pkg/commands/zremrangebyscore.ts +0 -9
  244. package/pkg/commands/zrevrank.test.ts +0 -22
  245. package/pkg/commands/zrevrank.ts +0 -10
  246. package/pkg/commands/zscan.test.ts +0 -50
  247. package/pkg/commands/zscan.ts +0 -22
  248. package/pkg/commands/zscore.test.ts +0 -18
  249. package/pkg/commands/zscore.ts +0 -10
  250. package/pkg/commands/zunionstore.test.ts +0 -215
  251. package/pkg/commands/zunionstore.ts +0 -55
  252. package/pkg/commands/zz.ts +0 -1
  253. package/pkg/error.ts +0 -9
  254. package/pkg/fastly.ts +0 -54
  255. package/pkg/http.test.ts +0 -34
  256. package/pkg/http.ts +0 -62
  257. package/pkg/index.ts +0 -2
  258. package/pkg/nodejs.ts +0 -83
  259. package/pkg/pipeline.test.ts +0 -177
  260. package/pkg/pipeline.ts +0 -999
  261. package/pkg/redis.ts +0 -930
  262. package/pkg/test-utils.ts +0 -41
  263. package/pkg/types.ts +0 -4
  264. package/pkg/util.ts +0 -22
  265. package/pnpm-lock.yaml +0 -3940
  266. package/tsconfig.json +0 -100
  267. package/tsconfig.module.json +0 -8
  268. package/tsup.config.ts +0 -16
@@ -1,45 +0,0 @@
1
- import { keygen, newHttpClient } from "../test-utils"
2
- import { randomUUID } from "crypto"
3
- import { describe, it, expect, afterAll } from "@jest/globals"
4
- import { ZAddCommand } from "./zadd"
5
- import { ZPopMaxCommand } from "./zpopmax"
6
- const client = newHttpClient()
7
-
8
- const { newKey, cleanup } = keygen()
9
- afterAll(cleanup)
10
-
11
- describe("without options", () => {
12
- it("returns the max", async () => {
13
- const key = newKey()
14
- const score1 = 1
15
- const member1 = randomUUID()
16
- const score2 = 2
17
- const member2 = randomUUID()
18
- await new ZAddCommand(
19
- key,
20
- { score: score1, member: member1 },
21
- { score: score2, member: member2 },
22
- ).exec(client)
23
- const res = await new ZPopMaxCommand(key).exec(client)
24
- expect(res).toHaveLength(2)
25
- expect(res![0]).toEqual(member2)
26
- expect(res![1]).toEqual(score2)
27
- })
28
- })
29
-
30
- describe("with count", () => {
31
- it("returns the n max members", async () => {
32
- const key = newKey()
33
- const score1 = 1
34
- const member1 = randomUUID()
35
- const score2 = 2
36
- const member2 = randomUUID()
37
- await new ZAddCommand(
38
- key,
39
- { score: score1, member: member1 },
40
- { score: score2, member: member2 },
41
- ).exec(client)
42
- const res = await new ZPopMaxCommand(key, 2).exec(client)
43
- expect(res).toEqual([member2, score2, member1, score1])
44
- })
45
- })
@@ -1,13 +0,0 @@
1
- import { Command } from "../command"
2
- /**
3
- * @see https://redis.io/commands/zpopmax
4
- */
5
- export class ZPopMaxCommand<TData> extends Command<TData[], string[]> {
6
- constructor(key: string, count?: number) {
7
- const command: unknown[] = ["zpopmax", key]
8
- if (typeof count === "number") {
9
- command.push(count)
10
- }
11
- super(command)
12
- }
13
- }
@@ -1,49 +0,0 @@
1
- import { keygen, newHttpClient } from "../test-utils"
2
- import { randomUUID } from "crypto"
3
- import { describe, it, expect, afterAll } from "@jest/globals"
4
- import { ZAddCommand } from "./zadd"
5
- import { ZPopMinCommand } from "./zpopmin"
6
- const client = newHttpClient()
7
-
8
- const { newKey, cleanup } = keygen()
9
- afterAll(cleanup)
10
-
11
- describe("without options", () => {
12
- it("returns the popped elements", async () => {
13
- const key = newKey()
14
- const score1 = 1
15
- const member1 = randomUUID()
16
- const score2 = 2
17
- const member2 = randomUUID()
18
- const score3 = 3
19
- const member3 = randomUUID()
20
- await new ZAddCommand(
21
- key,
22
- { score: score1, member: member1 },
23
- { score: score2, member: member2 },
24
- { score: score3, member: member3 },
25
- ).exec(client)
26
- const res = await new ZPopMinCommand(key).exec(client)
27
- expect(res).toEqual([member1, score1])
28
- })
29
- })
30
-
31
- describe("with count", () => {
32
- it("returns the popped elements", async () => {
33
- const key = newKey()
34
- const score1 = 1
35
- const member1 = randomUUID()
36
- const score2 = 2
37
- const member2 = randomUUID()
38
- const score3 = 3
39
- const member3 = randomUUID()
40
- await new ZAddCommand(
41
- key,
42
- { score: score1, member: member1 },
43
- { score: score2, member: member2 },
44
- { score: score3, member: member3 },
45
- ).exec(client)
46
- const res = await new ZPopMinCommand(key, 2).exec(client)
47
- expect(res).toEqual([member1, score1, member2, score2])
48
- })
49
- })
@@ -1,13 +0,0 @@
1
- import { Command } from "../command"
2
- /**
3
- * @see https://redis.io/commands/zpopmin
4
- */
5
- export class ZPopMinCommand<TData> extends Command<TData[], string[]> {
6
- constructor(key: string, count?: number) {
7
- const command: unknown[] = ["zpopmin", key]
8
- if (typeof count === "number") {
9
- command.push(count)
10
- }
11
- super(command)
12
- }
13
- }
@@ -1,52 +0,0 @@
1
- import { keygen, newHttpClient } from "../test-utils"
2
- import { randomUUID } from "crypto"
3
- import { describe, it, expect, afterAll } from "@jest/globals"
4
- import { ZAddCommand } from "./zadd"
5
- import { ZRangeCommand } from "./zrange"
6
- const client = newHttpClient()
7
-
8
- const { newKey, cleanup } = keygen()
9
- afterAll(cleanup)
10
-
11
- describe("without options", () => {
12
- it("returns the set", async () => {
13
- const key = newKey()
14
- const score1 = 2
15
- const member1 = randomUUID()
16
-
17
- const score2 = 5
18
- const member2 = randomUUID()
19
-
20
- await new ZAddCommand(
21
- key,
22
- { score: score1, member: member1 },
23
- { score: score2, member: member2 },
24
- ).exec(client)
25
-
26
- const res = await new ZRangeCommand(key, 1, 3).exec(client)
27
- expect(res).toHaveLength(1)
28
- expect(res![0]).toEqual(member2)
29
- })
30
- })
31
-
32
- describe("withscores", () => {
33
- it("returns the set", async () => {
34
- const key = newKey()
35
- const score1 = 2
36
- const member1 = randomUUID()
37
-
38
- const score2 = 5
39
- const member2 = randomUUID()
40
-
41
- await new ZAddCommand(
42
- key,
43
- { score: score1, member: member1 },
44
- { score: score2, member: member2 },
45
- ).exec(client)
46
-
47
- const res = await new ZRangeCommand(key, 1, 3, { withScores: true }).exec(client)
48
- expect(res).toHaveLength(2)
49
- expect(res![0]).toEqual(member2)
50
- expect(res![1]).toEqual(score2)
51
- })
52
- })
@@ -1,22 +0,0 @@
1
- import { Command } from "../command"
2
- export type ZRangeCommandOptions = {
3
- withScores?: boolean
4
- }
5
-
6
- /**
7
- * @see https://redis.io/commands/zrange
8
- */
9
- export class ZRangeCommand<TData extends unknown[]> extends Command<TData, string[]> {
10
- constructor(
11
- key: string,
12
- min: number | `(${number}`,
13
- max: number | `(${number}`,
14
- opts?: ZRangeCommandOptions,
15
- ) {
16
- const command: unknown[] = ["zrange", key, min, max]
17
- if (opts?.withScores) {
18
- command.push("withscores")
19
- }
20
- super(command)
21
- }
22
- }
@@ -1,22 +0,0 @@
1
- import { keygen, newHttpClient } from "../test-utils"
2
- import { it, expect, afterAll } from "@jest/globals"
3
- import { ZAddCommand } from "./zadd"
4
- import { ZRankCommand } from "./zrank"
5
- const client = newHttpClient()
6
-
7
- const { newKey, cleanup } = keygen()
8
- afterAll(cleanup)
9
-
10
- it("returns the rank", async () => {
11
- const key = newKey()
12
-
13
- await new ZAddCommand(
14
- key,
15
- { score: 1, member: "member1" },
16
- { score: 2, member: "member2" },
17
- { score: 3, member: "member3" },
18
- ).exec(client)
19
-
20
- const res = await new ZRankCommand(key, "member2").exec(client)
21
- expect(res).toBe(1)
22
- })
@@ -1,10 +0,0 @@
1
- import { Command } from "../command"
2
- /**
3
- * @see https://redis.io/commands/zrank
4
- */
5
-
6
- export class ZRankCommand<TData> extends Command<number | null, number | null> {
7
- constructor(key: string, member: TData) {
8
- super(["zrank", key, member])
9
- }
10
- }
@@ -1,20 +0,0 @@
1
- import { keygen, newHttpClient } from "../test-utils"
2
- import { randomUUID } from "crypto"
3
- import { it, expect, afterAll } from "@jest/globals"
4
- import { ZAddCommand } from "./zadd"
5
- import { ZRemCommand } from "./zrem"
6
- const client = newHttpClient()
7
-
8
- const { newKey, cleanup } = keygen()
9
- afterAll(cleanup)
10
-
11
- it("returns the number of removed members", async () => {
12
- const key = newKey()
13
- const member1 = randomUUID()
14
- const member2 = randomUUID()
15
- await new ZAddCommand(key, { score: 1, member: member1 }, { score: 2, member: member2 }).exec(
16
- client,
17
- )
18
- const res = await new ZRemCommand(key, member1, member2).exec(client)
19
- expect(res).toBe(2)
20
- })
@@ -1,10 +0,0 @@
1
- import { NonEmptyArray } from "../types"
2
- import { Command } from "../command"
3
- /**
4
- * @see https://redis.io/commands/zrem
5
- */
6
- export class ZRemCommand<TData = string> extends Command<number, number> {
7
- constructor(key: string, ...members: NonEmptyArray<TData>) {
8
- super(["zrem", key, ...members])
9
- }
10
- }
@@ -1,26 +0,0 @@
1
- import { keygen, newHttpClient } from "../test-utils"
2
- import { it, expect, afterAll } from "@jest/globals"
3
- import { ZAddCommand } from "./zadd"
4
- import { ZRemRangeByLexCommand } from "./zremrangebylex"
5
- const client = newHttpClient()
6
-
7
- const { newKey, cleanup } = keygen()
8
- afterAll(cleanup)
9
-
10
- it("returns the number of elements removed", async () => {
11
- const key = newKey()
12
- await new ZAddCommand(
13
- key,
14
- {
15
- score: 0,
16
- member: "aaaa",
17
- },
18
- { score: 0, member: "b" },
19
- { score: 0, member: "c" },
20
- { score: 0, member: "d" },
21
- { score: 0, member: "e" },
22
- ).exec(client)
23
-
24
- const res = await new ZRemRangeByLexCommand(key, "[b", "[e").exec(client)
25
- expect(res).toBe(4)
26
- })
@@ -1,9 +0,0 @@
1
- import { Command } from "../command"
2
- /**
3
- * @see https://redis.io/commands/zremrangebylex
4
- */
5
- export class ZRemRangeByLexCommand extends Command<number, number> {
6
- constructor(key: string, min: string, max: string) {
7
- super(["zremrangebylex", key, min, max])
8
- }
9
- }
@@ -1,27 +0,0 @@
1
- import { keygen, newHttpClient } from "../test-utils"
2
- import { randomUUID } from "crypto"
3
- import { it, expect, afterAll } from "@jest/globals"
4
- import { ZAddCommand } from "./zadd"
5
- import { ZRemRangeByRankCommand } from "./zremrangebyrank"
6
- const client = newHttpClient()
7
-
8
- const { newKey, cleanup } = keygen()
9
- afterAll(cleanup)
10
-
11
- it("returns the number of removed elements", async () => {
12
- const key = newKey()
13
- const score1 = 1
14
- const member1 = randomUUID()
15
- const score2 = 2
16
- const member2 = randomUUID()
17
- const score3 = 3
18
- const member3 = randomUUID()
19
- await new ZAddCommand(
20
- key,
21
- { score: score1, member: member1 },
22
- { score: score2, member: member2 },
23
- { score: score3, member: member3 },
24
- ).exec(client)
25
- const res = await new ZRemRangeByRankCommand(key, 1, 2).exec(client)
26
- expect(res).toBe(2)
27
- })
@@ -1,9 +0,0 @@
1
- import { Command } from "../command"
2
- /**
3
- * @see https://redis.io/commands/zremrangebyrank
4
- */
5
- export class ZRemRangeByRankCommand extends Command<number, number> {
6
- constructor(key: string, start: number, stop: number) {
7
- super(["zremrangebyrank", key, start, stop])
8
- }
9
- }
@@ -1,24 +0,0 @@
1
- import { keygen, newHttpClient } from "../test-utils"
2
- import { randomUUID } from "crypto"
3
- import { ZAddCommand } from "./zadd"
4
- import { it, expect, afterAll } from "@jest/globals"
5
- import { ZRemRangeByScoreCommand } from "./zremrangebyscore"
6
- const client = newHttpClient()
7
-
8
- const { newKey, cleanup } = keygen()
9
- afterAll(cleanup)
10
-
11
- it("returns the number of removed elements", async () => {
12
- const key = newKey()
13
- const member1 = randomUUID()
14
- const member2 = randomUUID()
15
- const member3 = randomUUID()
16
- await new ZAddCommand(
17
- key,
18
- { score: 1, member: member1 },
19
- { score: 2, member: member2 },
20
- { score: 3, member: member3 },
21
- ).exec(client)
22
- const res = await new ZRemRangeByScoreCommand(key, 1, 2).exec(client)
23
- expect(res).toBe(2)
24
- })
@@ -1,9 +0,0 @@
1
- import { Command } from "../command"
2
- /**
3
- * @see https://redis.io/commands/zremrangebyscore
4
- */
5
- export class ZRemRangeByScoreCommand extends Command<number, number> {
6
- constructor(key: string, min: number, max: number) {
7
- super(["zremrangebyscore", key, min, max])
8
- }
9
- }
@@ -1,22 +0,0 @@
1
- import { keygen, newHttpClient } from "../test-utils"
2
- import { it, expect, afterAll } from "@jest/globals"
3
- import { ZAddCommand } from "./zadd"
4
- import { ZRevRankCommand } from "./zrevrank"
5
- const client = newHttpClient()
6
-
7
- const { newKey, cleanup } = keygen()
8
- afterAll(cleanup)
9
-
10
- it("returns the rank", async () => {
11
- const key = newKey()
12
-
13
- await new ZAddCommand(
14
- key,
15
- { score: 1, member: "member1" },
16
- { score: 2, member: "member2" },
17
- { score: 3, member: "member3" },
18
- ).exec(client)
19
-
20
- const res = await new ZRevRankCommand(key, "member2").exec(client)
21
- expect(res).toBe(1)
22
- })
@@ -1,10 +0,0 @@
1
- import { Command } from "../command"
2
- /**
3
- * @see https://redis.io/commands/zrevrank
4
- */
5
-
6
- export class ZRevRankCommand<TData> extends Command<number | null, number | null> {
7
- constructor(key: string, member: TData) {
8
- super(["zrevrank", key, member])
9
- }
10
- }
@@ -1,50 +0,0 @@
1
- import { keygen, newHttpClient } from "../test-utils"
2
- import { randomUUID } from "crypto"
3
- import { it, describe, expect, afterAll } from "@jest/globals"
4
- import { ZAddCommand } from "./zadd"
5
- import { ZScanCommand } from "./zscan"
6
- const client = newHttpClient()
7
-
8
- const { newKey, cleanup } = keygen()
9
- afterAll(cleanup)
10
- describe("without options", () => {
11
- it("returns cursor and members", async () => {
12
- const key = newKey()
13
- const value = randomUUID()
14
- await new ZAddCommand(key, { score: 0, member: value }).exec(client)
15
- const res = await new ZScanCommand(key, 0).exec(client)
16
-
17
- expect(res).toBeDefined()
18
- expect(res.length).toBe(2)
19
- expect(typeof res[0]).toBe("number")
20
- expect(res![1].length).toBeGreaterThan(0)
21
- })
22
- })
23
-
24
- describe("with match", () => {
25
- it("returns cursor and members", async () => {
26
- const key = newKey()
27
- const value = randomUUID()
28
- await new ZAddCommand(key, { score: 0, member: value }).exec(client)
29
- const res = await new ZScanCommand(key, 0, { match: value }).exec(client)
30
-
31
- expect(res).toBeDefined()
32
- expect(res.length).toBe(2)
33
- expect(typeof res[0]).toBe("number")
34
- expect(res![1].length).toBeGreaterThan(0)
35
- })
36
- })
37
-
38
- describe("with count", () => {
39
- it("returns cursor and members", async () => {
40
- const key = newKey()
41
- const value = randomUUID()
42
- await new ZAddCommand(key, { score: 0, member: value }).exec(client)
43
- const res = await new ZScanCommand(key, 0, { count: 1 }).exec(client)
44
-
45
- expect(res).toBeDefined()
46
- expect(res.length).toBe(2)
47
- expect(typeof res[0]).toBe("number")
48
- expect(res![1].length).toBeGreaterThan(0)
49
- })
50
- })
@@ -1,22 +0,0 @@
1
- import { ScanCommandOptions } from "./scan"
2
- import { Command } from "../command"
3
-
4
- /**
5
- * @see https://redis.io/commands/zscan
6
- */
7
- export class ZScanCommand extends Command<
8
- [number, (string | number)[]],
9
- [number, (string | number)[]]
10
- > {
11
- constructor(key: string, cursor: number, opts?: ScanCommandOptions) {
12
- const command = ["zscan", key, cursor]
13
- if (opts?.match) {
14
- command.push("match", opts.match)
15
- }
16
- if (typeof opts?.count === "number") {
17
- command.push("count", opts.count)
18
- }
19
-
20
- super(command)
21
- }
22
- }
@@ -1,18 +0,0 @@
1
- import { keygen, newHttpClient } from "../test-utils"
2
- import { randomInt, randomUUID } from "crypto"
3
- import { it, expect, afterAll } from "@jest/globals"
4
- import { ZAddCommand } from "./zadd"
5
- import { ZScoreCommand } from "./zscore"
6
- const client = newHttpClient()
7
-
8
- const { newKey, cleanup } = keygen()
9
- afterAll(cleanup)
10
-
11
- it("returns the score", async () => {
12
- const key = newKey()
13
- const member = randomUUID()
14
- const score = randomInt(10)
15
- await new ZAddCommand(key, { score, member }).exec(client)
16
- const res = await new ZScoreCommand(key, member).exec(client)
17
- expect(res).toBe(score)
18
- })
@@ -1,10 +0,0 @@
1
- import { Command } from "../command"
2
-
3
- /**
4
- * @see https://redis.io/commands/zscore
5
- */
6
- export class ZScoreCommand<TData> extends Command<number | null, string | null> {
7
- constructor(key: string, member: TData) {
8
- super(["zscore", key, member])
9
- }
10
- }