@upstash/redis 1.3.0-alpha.1 → 1.3.2-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.
- package/LICENSE +21 -0
- package/README.md +87 -41
- package/esm/package.json +3 -0
- package/esm/pkg/commands/append.js +9 -0
- package/esm/pkg/commands/bitcount.js +16 -0
- package/esm/pkg/commands/bitop.js +9 -0
- package/esm/pkg/commands/bitpos.js +9 -0
- package/esm/pkg/commands/command.js +46 -0
- package/esm/pkg/commands/dbsize.js +9 -0
- package/esm/pkg/commands/decr.js +9 -0
- package/esm/pkg/commands/decrby.js +9 -0
- package/esm/pkg/commands/del.js +9 -0
- package/esm/pkg/commands/echo.js +9 -0
- package/esm/pkg/commands/eval.js +9 -0
- package/esm/pkg/commands/evalsha.js +9 -0
- package/esm/pkg/commands/exists.js +9 -0
- package/esm/pkg/commands/expire.js +9 -0
- package/esm/pkg/commands/expireat.js +9 -0
- package/esm/pkg/commands/flushall.js +13 -0
- package/esm/pkg/commands/flushdb.js +13 -0
- package/esm/pkg/commands/get.js +9 -0
- package/esm/pkg/commands/getbit.js +9 -0
- package/esm/pkg/commands/getrange.js +9 -0
- package/esm/pkg/commands/getset.js +9 -0
- package/esm/pkg/commands/hdel.js +9 -0
- package/esm/pkg/commands/hexists.js +9 -0
- package/esm/pkg/commands/hget.js +9 -0
- package/esm/pkg/commands/hgetall.js +30 -0
- package/esm/pkg/commands/hincrby.js +9 -0
- package/esm/pkg/commands/hincrbyfloat.js +9 -0
- package/esm/pkg/commands/hkeys.js +9 -0
- package/esm/pkg/commands/hlen.js +9 -0
- package/esm/pkg/commands/hmget.js +32 -0
- package/esm/pkg/commands/hmset.js +13 -0
- package/esm/pkg/commands/hscan.js +16 -0
- package/esm/pkg/commands/hset.js +13 -0
- package/esm/pkg/commands/hsetnx.js +9 -0
- package/esm/pkg/commands/hstrlen.js +9 -0
- package/esm/pkg/commands/hvals.js +9 -0
- package/esm/pkg/commands/incr.js +9 -0
- package/esm/pkg/commands/incrby.js +9 -0
- package/esm/pkg/commands/incrbyfloat.js +9 -0
- package/esm/pkg/commands/keys.js +9 -0
- package/esm/pkg/commands/lindex.js +6 -0
- package/esm/pkg/commands/linsert.js +6 -0
- package/esm/pkg/commands/llen.js +9 -0
- package/esm/pkg/commands/lpop.js +9 -0
- package/esm/pkg/commands/lpush.js +9 -0
- package/esm/pkg/commands/lpushx.js +9 -0
- package/esm/pkg/commands/lrange.js +6 -0
- package/esm/pkg/commands/lrem.js +6 -0
- package/esm/pkg/commands/lset.js +6 -0
- package/esm/pkg/commands/ltrim.js +6 -0
- package/esm/pkg/commands/mget.js +9 -0
- package/esm/pkg/commands/mod.js +114 -0
- package/esm/pkg/commands/mset.js +12 -0
- package/esm/pkg/commands/msetnx.js +9 -0
- package/esm/pkg/commands/persist.js +9 -0
- package/esm/pkg/commands/pexpire.js +9 -0
- package/esm/pkg/commands/pexpireat.js +9 -0
- package/esm/pkg/commands/ping.js +13 -0
- package/esm/pkg/commands/psetex.js +9 -0
- package/esm/pkg/commands/pttl.js +9 -0
- package/esm/pkg/commands/publish.js +9 -0
- package/esm/pkg/commands/randomkey.js +9 -0
- package/esm/pkg/commands/rename.js +9 -0
- package/esm/pkg/commands/renamenx.js +9 -0
- package/esm/pkg/commands/rpop.js +9 -0
- package/esm/pkg/commands/rpush.js +9 -0
- package/esm/pkg/commands/rpushx.js +9 -0
- package/esm/pkg/commands/sadd.js +9 -0
- package/esm/pkg/commands/scan.js +16 -0
- package/esm/pkg/commands/scard.js +9 -0
- package/esm/pkg/commands/script_exists.js +20 -0
- package/esm/pkg/commands/script_flush.js +16 -0
- package/esm/pkg/commands/script_load.js +9 -0
- package/esm/pkg/commands/sdiff.js +9 -0
- package/esm/pkg/commands/sdiffstore.js +9 -0
- package/esm/pkg/commands/set.js +24 -0
- package/esm/pkg/commands/setbit.js +9 -0
- package/esm/pkg/commands/setex.js +9 -0
- package/esm/pkg/commands/setnx.js +9 -0
- package/esm/pkg/commands/setrange.js +9 -0
- package/esm/pkg/commands/sinter.js +9 -0
- package/esm/pkg/commands/sinterstore.js +9 -0
- package/esm/pkg/commands/sismember.js +9 -0
- package/esm/pkg/commands/smembers.js +9 -0
- package/esm/pkg/commands/smove.js +9 -0
- package/esm/pkg/commands/spop.js +13 -0
- package/esm/pkg/commands/srandmember.js +13 -0
- package/esm/pkg/commands/srem.js +9 -0
- package/esm/pkg/commands/sscan.js +16 -0
- package/esm/pkg/commands/strlen.js +9 -0
- package/esm/pkg/commands/sunion.js +9 -0
- package/esm/pkg/commands/sunionstore.js +9 -0
- package/esm/pkg/commands/time.js +9 -0
- package/esm/pkg/commands/touch.js +9 -0
- package/esm/pkg/commands/ttl.js +9 -0
- package/esm/pkg/commands/type.js +9 -0
- package/esm/pkg/commands/unlink.js +9 -0
- package/esm/pkg/commands/zadd.js +26 -0
- package/esm/pkg/commands/zcard.js +9 -0
- package/esm/pkg/commands/zcount.js +9 -0
- package/esm/pkg/commands/zincrby.js +9 -0
- package/esm/pkg/commands/zinterstore.js +27 -0
- package/esm/pkg/commands/zlexcount.js +9 -0
- package/esm/pkg/commands/zpopmax.js +13 -0
- package/esm/pkg/commands/zpopmin.js +13 -0
- package/esm/pkg/commands/zrange.js +20 -0
- package/esm/pkg/commands/zrank.js +9 -0
- package/esm/pkg/commands/zrem.js +9 -0
- package/esm/pkg/commands/zremrangebylex.js +9 -0
- package/esm/pkg/commands/zremrangebyrank.js +9 -0
- package/esm/pkg/commands/zremrangebyscore.js +9 -0
- package/esm/pkg/commands/zrevrank.js +9 -0
- package/esm/pkg/commands/zscan.js +16 -0
- package/esm/pkg/commands/zscore.js +9 -0
- package/esm/pkg/commands/zunionstore.js +27 -0
- package/esm/pkg/error.js +9 -0
- package/esm/pkg/http.js +49 -0
- package/esm/pkg/pipeline.js +1118 -0
- package/esm/pkg/redis.js +1061 -0
- package/esm/pkg/types.js +1 -0
- package/esm/pkg/util.js +31 -0
- package/esm/platforms/cloudflare.js +70 -0
- package/esm/platforms/fastly.js +49 -0
- package/esm/platforms/nodejs.js +71 -0
- package/package.json +85 -1
- package/script/package.json +3 -0
- package/script/pkg/commands/append.js +13 -0
- package/script/pkg/commands/bitcount.js +20 -0
- package/script/pkg/commands/bitop.js +13 -0
- package/script/pkg/commands/bitpos.js +13 -0
- package/script/pkg/commands/command.js +50 -0
- package/script/pkg/commands/dbsize.js +13 -0
- package/script/pkg/commands/decr.js +13 -0
- package/script/pkg/commands/decrby.js +13 -0
- package/script/pkg/commands/del.js +13 -0
- package/script/pkg/commands/echo.js +13 -0
- package/script/pkg/commands/eval.js +13 -0
- package/script/pkg/commands/evalsha.js +13 -0
- package/script/pkg/commands/exists.js +13 -0
- package/script/pkg/commands/expire.js +13 -0
- package/script/pkg/commands/expireat.js +13 -0
- package/script/pkg/commands/flushall.js +17 -0
- package/script/pkg/commands/flushdb.js +17 -0
- package/script/pkg/commands/get.js +13 -0
- package/script/pkg/commands/getbit.js +13 -0
- package/script/pkg/commands/getrange.js +13 -0
- package/script/pkg/commands/getset.js +13 -0
- package/script/pkg/commands/hdel.js +13 -0
- package/script/pkg/commands/hexists.js +13 -0
- package/script/pkg/commands/hget.js +13 -0
- package/script/pkg/commands/hgetall.js +34 -0
- package/script/pkg/commands/hincrby.js +13 -0
- package/script/pkg/commands/hincrbyfloat.js +13 -0
- package/script/pkg/commands/hkeys.js +13 -0
- package/script/pkg/commands/hlen.js +13 -0
- package/script/pkg/commands/hmget.js +36 -0
- package/script/pkg/commands/hmset.js +17 -0
- package/script/pkg/commands/hscan.js +20 -0
- package/script/pkg/commands/hset.js +17 -0
- package/script/pkg/commands/hsetnx.js +13 -0
- package/script/pkg/commands/hstrlen.js +13 -0
- package/script/pkg/commands/hvals.js +13 -0
- package/script/pkg/commands/incr.js +13 -0
- package/script/pkg/commands/incrby.js +13 -0
- package/script/pkg/commands/incrbyfloat.js +13 -0
- package/script/pkg/commands/keys.js +13 -0
- package/script/pkg/commands/lindex.js +10 -0
- package/script/pkg/commands/linsert.js +10 -0
- package/script/pkg/commands/llen.js +13 -0
- package/script/pkg/commands/lpop.js +13 -0
- package/script/pkg/commands/lpush.js +13 -0
- package/script/pkg/commands/lpushx.js +13 -0
- package/script/pkg/commands/lrange.js +10 -0
- package/script/pkg/commands/lrem.js +10 -0
- package/script/pkg/commands/lset.js +10 -0
- package/script/pkg/commands/ltrim.js +10 -0
- package/script/pkg/commands/mget.js +13 -0
- package/script/pkg/commands/mod.js +130 -0
- package/script/pkg/commands/mset.js +16 -0
- package/script/pkg/commands/msetnx.js +13 -0
- package/script/pkg/commands/persist.js +13 -0
- package/script/pkg/commands/pexpire.js +13 -0
- package/script/pkg/commands/pexpireat.js +13 -0
- package/script/pkg/commands/ping.js +17 -0
- package/script/pkg/commands/psetex.js +13 -0
- package/script/pkg/commands/pttl.js +13 -0
- package/script/pkg/commands/publish.js +13 -0
- package/script/pkg/commands/randomkey.js +13 -0
- package/script/pkg/commands/rename.js +13 -0
- package/script/pkg/commands/renamenx.js +13 -0
- package/script/pkg/commands/rpop.js +13 -0
- package/script/pkg/commands/rpush.js +13 -0
- package/script/pkg/commands/rpushx.js +13 -0
- package/script/pkg/commands/sadd.js +13 -0
- package/script/pkg/commands/scan.js +20 -0
- package/script/pkg/commands/scard.js +13 -0
- package/script/pkg/commands/script_exists.js +24 -0
- package/script/pkg/commands/script_flush.js +20 -0
- package/script/pkg/commands/script_load.js +13 -0
- package/script/pkg/commands/sdiff.js +13 -0
- package/script/pkg/commands/sdiffstore.js +13 -0
- package/script/pkg/commands/set.js +28 -0
- package/script/pkg/commands/setbit.js +13 -0
- package/script/pkg/commands/setex.js +13 -0
- package/script/pkg/commands/setnx.js +13 -0
- package/script/pkg/commands/setrange.js +13 -0
- package/script/pkg/commands/sinter.js +13 -0
- package/script/pkg/commands/sinterstore.js +13 -0
- package/script/pkg/commands/sismember.js +13 -0
- package/script/pkg/commands/smembers.js +13 -0
- package/script/pkg/commands/smove.js +13 -0
- package/script/pkg/commands/spop.js +17 -0
- package/script/pkg/commands/srandmember.js +17 -0
- package/script/pkg/commands/srem.js +13 -0
- package/script/pkg/commands/sscan.js +20 -0
- package/script/pkg/commands/strlen.js +13 -0
- package/script/pkg/commands/sunion.js +13 -0
- package/script/pkg/commands/sunionstore.js +13 -0
- package/script/pkg/commands/time.js +13 -0
- package/script/pkg/commands/touch.js +13 -0
- package/script/pkg/commands/ttl.js +13 -0
- package/script/pkg/commands/type.js +13 -0
- package/script/pkg/commands/unlink.js +13 -0
- package/script/pkg/commands/zadd.js +30 -0
- package/script/pkg/commands/zcard.js +13 -0
- package/script/pkg/commands/zcount.js +13 -0
- package/script/pkg/commands/zincrby.js +13 -0
- package/script/pkg/commands/zinterstore.js +31 -0
- package/script/pkg/commands/zlexcount.js +13 -0
- package/script/pkg/commands/zpopmax.js +17 -0
- package/script/pkg/commands/zpopmin.js +17 -0
- package/script/pkg/commands/zrange.js +24 -0
- package/script/pkg/commands/zrank.js +13 -0
- package/script/pkg/commands/zrem.js +13 -0
- package/script/pkg/commands/zremrangebylex.js +13 -0
- package/script/pkg/commands/zremrangebyrank.js +13 -0
- package/script/pkg/commands/zremrangebyscore.js +13 -0
- package/script/pkg/commands/zrevrank.js +13 -0
- package/script/pkg/commands/zscan.js +20 -0
- package/script/pkg/commands/zscore.js +13 -0
- package/script/pkg/commands/zunionstore.js +31 -0
- package/script/pkg/error.js +13 -0
- package/script/pkg/http.js +53 -0
- package/script/pkg/pipeline.js +1122 -0
- package/script/pkg/redis.js +1065 -0
- package/script/pkg/types.js +2 -0
- package/script/pkg/util.js +35 -0
- package/script/platforms/cloudflare.js +97 -0
- package/script/platforms/fastly.js +76 -0
- package/script/platforms/nodejs.js +98 -0
- package/types/pkg/commands/append.d.ts +7 -0
- package/types/pkg/commands/bitcount.d.ts +8 -0
- package/types/pkg/commands/bitop.d.ts +8 -0
- package/types/pkg/commands/bitpos.d.ts +7 -0
- package/types/pkg/commands/command.d.ts +23 -0
- package/types/pkg/commands/dbsize.d.ts +7 -0
- package/types/pkg/commands/decr.d.ts +7 -0
- package/types/pkg/commands/decrby.d.ts +7 -0
- package/types/pkg/commands/del.d.ts +8 -0
- package/types/pkg/commands/echo.d.ts +7 -0
- package/types/pkg/commands/eval.d.ts +7 -0
- package/types/pkg/commands/evalsha.d.ts +7 -0
- package/types/pkg/commands/exists.d.ts +8 -0
- package/types/pkg/commands/expire.d.ts +7 -0
- package/types/pkg/commands/expireat.d.ts +7 -0
- package/types/pkg/commands/flushall.d.ts +9 -0
- package/types/pkg/commands/flushdb.d.ts +9 -0
- package/types/pkg/commands/get.d.ts +7 -0
- package/types/pkg/commands/getbit.d.ts +7 -0
- package/types/pkg/commands/getrange.d.ts +7 -0
- package/types/pkg/commands/getset.d.ts +7 -0
- package/types/pkg/commands/hdel.d.ts +7 -0
- package/types/pkg/commands/hexists.d.ts +7 -0
- package/types/pkg/commands/hget.d.ts +7 -0
- package/types/pkg/commands/hgetall.d.ts +7 -0
- package/types/pkg/commands/hincrby.d.ts +7 -0
- package/types/pkg/commands/hincrbyfloat.d.ts +7 -0
- package/types/pkg/commands/hkeys.d.ts +7 -0
- package/types/pkg/commands/hlen.d.ts +7 -0
- package/types/pkg/commands/hmget.d.ts +15 -0
- package/types/pkg/commands/hmset.d.ts +9 -0
- package/types/pkg/commands/hscan.d.ts +14 -0
- package/types/pkg/commands/hset.d.ts +9 -0
- package/types/pkg/commands/hsetnx.d.ts +7 -0
- package/types/pkg/commands/hstrlen.d.ts +7 -0
- package/types/pkg/commands/hvals.d.ts +7 -0
- package/types/pkg/commands/incr.d.ts +7 -0
- package/types/pkg/commands/incrby.d.ts +7 -0
- package/types/pkg/commands/incrbyfloat.d.ts +7 -0
- package/types/pkg/commands/keys.d.ts +7 -0
- package/types/pkg/commands/lindex.d.ts +4 -0
- package/types/pkg/commands/linsert.d.ts +4 -0
- package/types/pkg/commands/llen.d.ts +7 -0
- package/types/pkg/commands/lpop.d.ts +7 -0
- package/types/pkg/commands/lpush.d.ts +8 -0
- package/types/pkg/commands/lpushx.d.ts +8 -0
- package/types/pkg/commands/lrange.d.ts +4 -0
- package/types/pkg/commands/lrem.d.ts +4 -0
- package/types/pkg/commands/lset.d.ts +4 -0
- package/types/pkg/commands/ltrim.d.ts +4 -0
- package/types/pkg/commands/mget.d.ts +7 -0
- package/types/pkg/commands/mod.d.ts +114 -0
- package/types/pkg/commands/mset.d.ts +9 -0
- package/types/pkg/commands/msetnx.d.ts +9 -0
- package/types/pkg/commands/persist.d.ts +7 -0
- package/types/pkg/commands/pexpire.d.ts +7 -0
- package/types/pkg/commands/pexpireat.d.ts +7 -0
- package/types/pkg/commands/ping.d.ts +7 -0
- package/types/pkg/commands/psetex.d.ts +7 -0
- package/types/pkg/commands/pttl.d.ts +7 -0
- package/types/pkg/commands/publish.d.ts +7 -0
- package/types/pkg/commands/randomkey.d.ts +7 -0
- package/types/pkg/commands/rename.d.ts +7 -0
- package/types/pkg/commands/renamenx.d.ts +7 -0
- package/types/pkg/commands/rpop.d.ts +7 -0
- package/types/pkg/commands/rpush.d.ts +8 -0
- package/types/pkg/commands/rpushx.d.ts +8 -0
- package/types/pkg/commands/sadd.d.ts +8 -0
- package/types/pkg/commands/scan.d.ts +11 -0
- package/types/pkg/commands/scard.d.ts +7 -0
- package/types/pkg/commands/script_exists.d.ts +12 -0
- package/types/pkg/commands/script_flush.d.ts +14 -0
- package/types/pkg/commands/script_load.d.ts +7 -0
- package/types/pkg/commands/sdiff.d.ts +7 -0
- package/types/pkg/commands/sdiffstore.d.ts +8 -0
- package/types/pkg/commands/set.d.ts +26 -0
- package/types/pkg/commands/setbit.d.ts +7 -0
- package/types/pkg/commands/setex.d.ts +7 -0
- package/types/pkg/commands/setnx.d.ts +7 -0
- package/types/pkg/commands/setrange.d.ts +7 -0
- package/types/pkg/commands/sinter.d.ts +7 -0
- package/types/pkg/commands/sinterstore.d.ts +7 -0
- package/types/pkg/commands/sismember.d.ts +7 -0
- package/types/pkg/commands/smembers.d.ts +7 -0
- package/types/pkg/commands/smove.d.ts +7 -0
- package/types/pkg/commands/spop.d.ts +7 -0
- package/types/pkg/commands/srandmember.d.ts +7 -0
- package/types/pkg/commands/srem.d.ts +8 -0
- package/types/pkg/commands/sscan.d.ts +14 -0
- package/types/pkg/commands/strlen.d.ts +7 -0
- package/types/pkg/commands/sunion.d.ts +7 -0
- package/types/pkg/commands/sunionstore.d.ts +7 -0
- package/types/pkg/commands/time.d.ts +7 -0
- package/types/pkg/commands/touch.d.ts +8 -0
- package/types/pkg/commands/ttl.d.ts +7 -0
- package/types/pkg/commands/type.d.ts +8 -0
- package/types/pkg/commands/unlink.d.ts +7 -0
- package/types/pkg/commands/zadd.d.ts +27 -0
- package/types/pkg/commands/zcard.d.ts +7 -0
- package/types/pkg/commands/zcount.d.ts +7 -0
- package/types/pkg/commands/zincrby.d.ts +7 -0
- package/types/pkg/commands/zinterstore.d.ts +20 -0
- package/types/pkg/commands/zlexcount.d.ts +7 -0
- package/types/pkg/commands/zpopmax.d.ts +7 -0
- package/types/pkg/commands/zpopmin.d.ts +7 -0
- package/types/pkg/commands/zrange.d.ts +25 -0
- package/types/pkg/commands/zrank.d.ts +7 -0
- package/types/pkg/commands/zrem.d.ts +8 -0
- package/types/pkg/commands/zremrangebylex.d.ts +7 -0
- package/types/pkg/commands/zremrangebyrank.d.ts +7 -0
- package/types/pkg/commands/zremrangebyscore.d.ts +7 -0
- package/types/pkg/commands/zrevrank.d.ts +7 -0
- package/types/pkg/commands/zscan.d.ts +14 -0
- package/types/pkg/commands/zscore.d.ts +7 -0
- package/types/pkg/commands/zunionstore.d.ts +20 -0
- package/types/pkg/error.d.ts +6 -0
- package/{http.d.ts → types/pkg/http.d.ts} +8 -7
- package/types/pkg/pipeline.d.ts +543 -0
- package/types/pkg/redis.d.ts +509 -0
- package/types/pkg/types.d.ts +2 -0
- package/types/pkg/util.d.ts +1 -0
- package/{cloudflare.d.ts → types/platforms/cloudflare.d.ts} +5 -8
- package/{fastly.d.ts → types/platforms/fastly.d.ts} +5 -8
- package/types/platforms/nodejs.d.ts +81 -0
- package/chunk-5567SQFQ.mjs +0 -1088
- package/chunk-7YUZYRJS.mjs +0 -29
- package/chunk-HIDCSH5S.mjs +0 -36
- package/chunk-KI7YOGWS.mjs +0 -429
- package/chunk-T3BIHZ2F.mjs +0 -38
- package/cloudflare.js +0 -1390
- package/cloudflare.mjs +0 -36
- package/commands.d.ts +0 -734
- package/commands.js +0 -1231
- package/commands.mjs +0 -225
- package/fastly.js +0 -1379
- package/fastly.mjs +0 -25
- package/http.js +0 -83
- package/http.mjs +0 -7
- package/index.d.ts +0 -13
- package/index.js +0 -1395
- package/index.mjs +0 -13
- package/nodejs.d.ts +0 -47
- package/nodejs.js +0 -1393
- package/nodejs.mjs +0 -10
- package/redis-364a4445.d.ts +0 -1064
- package/zunionstore-342168a6.d.ts +0 -173
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseResponse = void 0;
|
|
4
|
+
function parseRecursive(obj) {
|
|
5
|
+
const parsed = Array.isArray(obj)
|
|
6
|
+
? obj.map((o) => {
|
|
7
|
+
try {
|
|
8
|
+
return parseRecursive(o);
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
return o;
|
|
12
|
+
}
|
|
13
|
+
})
|
|
14
|
+
: JSON.parse(obj);
|
|
15
|
+
/**
|
|
16
|
+
* Parsing very large numbers can result in MAX_SAFE_INTEGER
|
|
17
|
+
* overflow. In that case we return the number as string instead.
|
|
18
|
+
*/
|
|
19
|
+
if (typeof parsed === "number" && parsed.toString() != obj) {
|
|
20
|
+
return obj;
|
|
21
|
+
}
|
|
22
|
+
return parsed;
|
|
23
|
+
}
|
|
24
|
+
function parseResponse(result) {
|
|
25
|
+
try {
|
|
26
|
+
/**
|
|
27
|
+
* Try to parse the response if possible
|
|
28
|
+
*/
|
|
29
|
+
return parseRecursive(result);
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
return result;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.parseResponse = parseResponse;
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.Redis = void 0;
|
|
27
|
+
const core = __importStar(require("../pkg/redis.js"));
|
|
28
|
+
const error_js_1 = require("../pkg/error.js");
|
|
29
|
+
/**
|
|
30
|
+
* Serverless redis client for upstash.
|
|
31
|
+
*/
|
|
32
|
+
class Redis extends core.Redis {
|
|
33
|
+
/**
|
|
34
|
+
* Create a new redis client
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```typescript
|
|
38
|
+
* const redis = new Redis({
|
|
39
|
+
* url: "<UPSTASH_REDIS_REST_URL>",
|
|
40
|
+
* token: "<UPSTASH_REDIS_REST_TOKEN>",
|
|
41
|
+
* });
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
constructor(config) {
|
|
45
|
+
const client = defaultRequester({
|
|
46
|
+
baseUrl: config.url,
|
|
47
|
+
headers: { authorization: `Bearer ${config.token}` },
|
|
48
|
+
});
|
|
49
|
+
super(client);
|
|
50
|
+
}
|
|
51
|
+
/*
|
|
52
|
+
* Create a new Upstash Redis instance from environment variables on cloudflare.
|
|
53
|
+
*
|
|
54
|
+
* This tries to load `UPSTASH_REDIS_REST_URL` and `UPSTASH_REDIS_REST_TOKEN` from
|
|
55
|
+
* the global namespace
|
|
56
|
+
*
|
|
57
|
+
* If you are using a module worker, please pass in the `env` object.
|
|
58
|
+
* ```ts
|
|
59
|
+
* const redis = Redis.fromEnv(env)
|
|
60
|
+
* ```
|
|
61
|
+
*
|
|
62
|
+
*/
|
|
63
|
+
static fromEnv(env) {
|
|
64
|
+
// @ts-ignore These will be defined by cloudflare
|
|
65
|
+
const url = env?.UPSTASH_REDIS_REST_URL ?? UPSTASH_REDIS_REST_URL;
|
|
66
|
+
// @ts-ignore These will be defined by cloudflare
|
|
67
|
+
const token = env?.UPSTASH_REDIS_REST_TOKEN ?? UPSTASH_REDIS_REST_TOKEN;
|
|
68
|
+
if (!url) {
|
|
69
|
+
throw new Error("Unable to find environment variable: `UPSTASH_REDIS_REST_URL`. Please add it via `wrangler secret put UPSTASH_REDIS_REST_URL`");
|
|
70
|
+
}
|
|
71
|
+
if (!token) {
|
|
72
|
+
throw new Error("Unable to find environment variable: `UPSTASH_REDIS_REST_TOKEN`. Please add it via `wrangler secret put UPSTASH_REDIS_REST_TOKEN`");
|
|
73
|
+
}
|
|
74
|
+
return new Redis({ url, token });
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.Redis = Redis;
|
|
78
|
+
function defaultRequester(config) {
|
|
79
|
+
return {
|
|
80
|
+
request: async function (req) {
|
|
81
|
+
if (!req.path) {
|
|
82
|
+
req.path = [];
|
|
83
|
+
}
|
|
84
|
+
const res = await fetch([config.baseUrl, ...req.path].join("/"), {
|
|
85
|
+
method: "POST",
|
|
86
|
+
headers: { "Content-Type": "application/json", ...config.headers },
|
|
87
|
+
body: JSON.stringify(req.body),
|
|
88
|
+
keepalive: true,
|
|
89
|
+
});
|
|
90
|
+
const body = (await res.json());
|
|
91
|
+
if (!res.ok) {
|
|
92
|
+
throw new error_js_1.UpstashError(body.error);
|
|
93
|
+
}
|
|
94
|
+
return body;
|
|
95
|
+
},
|
|
96
|
+
};
|
|
97
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.Redis = void 0;
|
|
27
|
+
const core = __importStar(require("../pkg/redis.js"));
|
|
28
|
+
const error_js_1 = require("../pkg/error.js");
|
|
29
|
+
/**
|
|
30
|
+
* Serverless redis client for upstash.
|
|
31
|
+
*/
|
|
32
|
+
class Redis extends core.Redis {
|
|
33
|
+
/**
|
|
34
|
+
* Create a new redis client
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```typescript
|
|
38
|
+
* const redis = new Redis({
|
|
39
|
+
* url: "<UPSTASH_REDIS_REST_URL>",
|
|
40
|
+
* token: "<UPSTASH_REDIS_REST_TOKEN>",
|
|
41
|
+
* backend: "upstash-db",
|
|
42
|
+
* });
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
constructor(config) {
|
|
46
|
+
const client = defaultRequester({
|
|
47
|
+
baseUrl: config.url,
|
|
48
|
+
headers: { authorization: `Bearer ${config.token}` },
|
|
49
|
+
backend: config.backend,
|
|
50
|
+
});
|
|
51
|
+
super(client);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.Redis = Redis;
|
|
55
|
+
function defaultRequester(config) {
|
|
56
|
+
return {
|
|
57
|
+
request: async function (req) {
|
|
58
|
+
if (!req.path) {
|
|
59
|
+
req.path = [];
|
|
60
|
+
}
|
|
61
|
+
const res = await fetch([config.baseUrl, ...req.path].join("/"), {
|
|
62
|
+
method: "POST",
|
|
63
|
+
headers: { "Content-Type": "application/json", ...config.headers },
|
|
64
|
+
body: JSON.stringify(req.body),
|
|
65
|
+
keepalive: true,
|
|
66
|
+
// @ts-expect-error fastly requires `backend`
|
|
67
|
+
backend: config.backend,
|
|
68
|
+
});
|
|
69
|
+
const body = (await res.json());
|
|
70
|
+
if (!res.ok) {
|
|
71
|
+
throw new error_js_1.UpstashError(body.error);
|
|
72
|
+
}
|
|
73
|
+
return body;
|
|
74
|
+
},
|
|
75
|
+
};
|
|
76
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// deno-lint-ignore-file
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
20
|
+
if (mod && mod.__esModule) return mod;
|
|
21
|
+
var result = {};
|
|
22
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
23
|
+
__setModuleDefault(result, mod);
|
|
24
|
+
return result;
|
|
25
|
+
};
|
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
exports.Redis = void 0;
|
|
28
|
+
const core = __importStar(require("../pkg/redis.js"));
|
|
29
|
+
const error_js_1 = require("../pkg/error.js");
|
|
30
|
+
require("isomorphic-fetch");
|
|
31
|
+
/**
|
|
32
|
+
* Serverless redis client for upstash.
|
|
33
|
+
*/
|
|
34
|
+
class Redis extends core.Redis {
|
|
35
|
+
constructor(configOrRequester) {
|
|
36
|
+
if ("request" in configOrRequester) {
|
|
37
|
+
super(configOrRequester);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
const client = defaultRequester({
|
|
41
|
+
baseUrl: configOrRequester.url,
|
|
42
|
+
headers: { authorization: `Bearer ${configOrRequester.token}` },
|
|
43
|
+
agent: configOrRequester.agent,
|
|
44
|
+
});
|
|
45
|
+
super(client);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Create a new Upstash Redis instance from environment variables.
|
|
49
|
+
*
|
|
50
|
+
* Use this to automatically load connection secrets from your environment
|
|
51
|
+
* variables. For instance when using the Vercel integration.
|
|
52
|
+
*
|
|
53
|
+
* This tries to load `UPSTASH_REDIS_REST_URL` and `UPSTASH_REDIS_REST_TOKEN` from
|
|
54
|
+
* your environment using `process.env`.
|
|
55
|
+
*/
|
|
56
|
+
static fromEnv(config) {
|
|
57
|
+
// @ts-ignore process will be defined in node
|
|
58
|
+
if (typeof process?.env === "undefined") {
|
|
59
|
+
throw new Error('Unable to get environment variables, `process.env` is undefined. If you are deploying to cloudflare, please import from "@upstash/redis/cloudflare" instead');
|
|
60
|
+
}
|
|
61
|
+
// @ts-ignore process will be defined in node
|
|
62
|
+
const url = process?.env["UPSTASH_REDIS_REST_URL"];
|
|
63
|
+
if (!url) {
|
|
64
|
+
throw new Error("Unable to find environment variable: `UPSTASH_REDIS_REST_URL`");
|
|
65
|
+
}
|
|
66
|
+
// @ts-ignore process will be defined in node
|
|
67
|
+
const token = process?.env["UPSTASH_REDIS_REST_TOKEN"];
|
|
68
|
+
if (!token) {
|
|
69
|
+
throw new Error("Unable to find environment variable: `UPSTASH_REDIS_REST_TOKEN`");
|
|
70
|
+
}
|
|
71
|
+
return new Redis({ url, token, ...config });
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.Redis = Redis;
|
|
75
|
+
function defaultRequester(config) {
|
|
76
|
+
// @ts-ignore
|
|
77
|
+
console.log("process", process.release, { config });
|
|
78
|
+
return {
|
|
79
|
+
request: async function (req) {
|
|
80
|
+
if (!req.path) {
|
|
81
|
+
req.path = [];
|
|
82
|
+
}
|
|
83
|
+
const res = await fetch([config.baseUrl, ...req.path].join("/"), {
|
|
84
|
+
method: "POST",
|
|
85
|
+
headers: { "Content-Type": "application/json", ...config.headers },
|
|
86
|
+
body: JSON.stringify(req.body),
|
|
87
|
+
keepalive: true,
|
|
88
|
+
// @ts-ignore
|
|
89
|
+
agent: config.agent,
|
|
90
|
+
});
|
|
91
|
+
const body = (await res.json());
|
|
92
|
+
if (!res.ok) {
|
|
93
|
+
throw new error_js_1.UpstashError(body.error);
|
|
94
|
+
}
|
|
95
|
+
return body;
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Command } from "./command.js";
|
|
2
|
+
/**
|
|
3
|
+
* @see https://redis.io/commands/bitcount
|
|
4
|
+
*/
|
|
5
|
+
export declare class BitCountCommand extends Command<number, number> {
|
|
6
|
+
constructor(key: string, start?: never, end?: never);
|
|
7
|
+
constructor(key: string, start: number, end: number);
|
|
8
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Command } from "./command.js";
|
|
2
|
+
/**
|
|
3
|
+
* @see https://redis.io/commands/bitop
|
|
4
|
+
*/
|
|
5
|
+
export declare class BitOpCommand extends Command<number, number> {
|
|
6
|
+
constructor(op: "and" | "or" | "xor", destinationKey: string, sourceKey: string, ...sourceKeys: string[]);
|
|
7
|
+
constructor(op: "not", destinationKey: string, sourceKey: string);
|
|
8
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Requester } from "../http.js";
|
|
2
|
+
/**
|
|
3
|
+
* Command offers default (de)serialization and the exec method to all commands.
|
|
4
|
+
*
|
|
5
|
+
* TData represents what the user will enter or receive,
|
|
6
|
+
* TResult is the raw data returned from upstash, which may need to be transformed or parsed.
|
|
7
|
+
*/
|
|
8
|
+
export declare class Command<TData, TResult> {
|
|
9
|
+
readonly command: string[];
|
|
10
|
+
deserialize: (result: TResult) => TData;
|
|
11
|
+
/**
|
|
12
|
+
* Create a new command instance.
|
|
13
|
+
*
|
|
14
|
+
* You can define a custom `deserialize` function. By default we try to deserialize as json.
|
|
15
|
+
*/
|
|
16
|
+
constructor(command: (string | unknown)[], opts?: {
|
|
17
|
+
deserialize?: (result: TResult) => TData;
|
|
18
|
+
});
|
|
19
|
+
/**
|
|
20
|
+
* Execute the command using a client.
|
|
21
|
+
*/
|
|
22
|
+
exec(client: Requester): Promise<TData>;
|
|
23
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Command } from "./command.js";
|
|
2
|
+
/**
|
|
3
|
+
* hmget returns an object of all requested fields from a hash
|
|
4
|
+
* The field values are returned as an object like this:
|
|
5
|
+
* ```ts
|
|
6
|
+
* {[fieldName: string]: T | null}
|
|
7
|
+
* ```
|
|
8
|
+
*
|
|
9
|
+
* In case the hash does not exist or all fields are empty `null` is returned
|
|
10
|
+
*
|
|
11
|
+
* @see https://redis.io/commands/hmget
|
|
12
|
+
*/
|
|
13
|
+
export declare class HMGetCommand<TData extends Record<string, unknown>> extends Command<TData | null, (string | null)[]> {
|
|
14
|
+
constructor(key: string, ...fields: string[]);
|
|
15
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ScanCommandOptions } from "./scan.js";
|
|
2
|
+
import { Command } from "./command.js";
|
|
3
|
+
/**
|
|
4
|
+
* @see https://redis.io/commands/hscan
|
|
5
|
+
*/
|
|
6
|
+
export declare class HScanCommand extends Command<[
|
|
7
|
+
number,
|
|
8
|
+
(string | number)[]
|
|
9
|
+
], [
|
|
10
|
+
number,
|
|
11
|
+
(string | number)[]
|
|
12
|
+
]> {
|
|
13
|
+
constructor(key: string, cursor: number, opts?: ScanCommandOptions);
|
|
14
|
+
}
|