@uploadista/kv-store-redis 0.1.4-beta.1 → 1.0.0-beta.2
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/dist/index.cjs +1 -1
- package/dist/index.d.cts +14 -3
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +14 -3
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +6 -6
- package/src/redis-kv-store.ts +13 -5
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
let e=require(`@uploadista/core/errors`),t=require(`@uploadista/core/types`),n=require(`effect`);function r({redis:t}){return{get:r=>n.Effect.tryPromise({try:()=>t.get(r),catch:t=>e.UploadistaError.fromCode(`UNKNOWN_ERROR`,{cause:t})}),set:(r,i)=>n.Effect.tryPromise({try:()=>t.set(r,i),catch:t=>e.UploadistaError.fromCode(`UNKNOWN_ERROR`,{cause:t})}).pipe(n.Effect.asVoid),delete:r=>n.Effect.tryPromise({try:()=>t.del(r),catch:t=>e.UploadistaError.fromCode(`UNKNOWN_ERROR`,{cause:t})}).pipe(n.Effect.asVoid),list:r=>n.Effect.gen(function*(i){let a=new Set,o=`0`;do{let s=yield*i(n.Effect.tryPromise({try:()=>t.scan(o,{MATCH:`${r}*`,COUNT:20}),catch:t=>e.UploadistaError.fromCode(`UNKNOWN_ERROR`,{cause:t})}));o=s.cursor;for(let e of s.keys)a.add(e.replace(r,``))}while(o!==`0`);return Array.from(a)})}}const i=e=>n.Layer.succeed(t.BaseKvStoreService,r(e));exports.makeRedisBaseKvStore=r,exports.redisKvStore=i;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@uploadista/core/errors`),t=require(`@uploadista/core/types`),n=require(`effect`);function r({redis:t}){return{get:r=>n.Effect.tryPromise({try:()=>t.get(r),catch:t=>e.UploadistaError.fromCode(`UNKNOWN_ERROR`,{cause:t})}),set:(r,i)=>n.Effect.tryPromise({try:()=>t.set(r,i),catch:t=>e.UploadistaError.fromCode(`UNKNOWN_ERROR`,{cause:t})}).pipe(n.Effect.asVoid),delete:r=>n.Effect.tryPromise({try:()=>t.del(r),catch:t=>e.UploadistaError.fromCode(`UNKNOWN_ERROR`,{cause:t})}).pipe(n.Effect.asVoid),list:r=>n.Effect.gen(function*(i){let a=new Set,o=`0`;do{let s=yield*i(n.Effect.tryPromise({try:()=>t.scan(o,{MATCH:`${r}*`,COUNT:20}),catch:t=>e.UploadistaError.fromCode(`UNKNOWN_ERROR`,{cause:t})}));o=s.cursor;for(let e of s.keys)a.add(e.replace(r,``))}while(o!==0&&o!==`0`);return Array.from(a)})}}const i=e=>n.Layer.succeed(t.BaseKvStoreService,r(e));exports.makeRedisBaseKvStore=r,exports.redisKvStore=i;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,15 +1,26 @@
|
|
|
1
|
-
import { RedisClientType } from "@redis/client";
|
|
2
1
|
import { BaseKvStore, BaseKvStoreService } from "@uploadista/core/types";
|
|
3
2
|
import { Layer } from "effect";
|
|
4
3
|
|
|
5
4
|
//#region src/redis-kv-store.d.ts
|
|
5
|
+
interface RedisLike {
|
|
6
|
+
get(key: string): Promise<string | null>;
|
|
7
|
+
set(key: string, value: string): Promise<unknown>;
|
|
8
|
+
del(key: string | string[]): Promise<number>;
|
|
9
|
+
scan(cursor: unknown, options?: {
|
|
10
|
+
MATCH?: string;
|
|
11
|
+
COUNT?: number;
|
|
12
|
+
}): Promise<{
|
|
13
|
+
cursor: unknown;
|
|
14
|
+
keys: string[];
|
|
15
|
+
}>;
|
|
16
|
+
}
|
|
6
17
|
interface RedisKvStoreConfig {
|
|
7
|
-
redis:
|
|
18
|
+
redis: RedisLike;
|
|
8
19
|
}
|
|
9
20
|
declare function makeRedisBaseKvStore({
|
|
10
21
|
redis
|
|
11
22
|
}: RedisKvStoreConfig): BaseKvStore;
|
|
12
23
|
declare const redisKvStore: (config: RedisKvStoreConfig) => Layer.Layer<BaseKvStoreService, never, never>;
|
|
13
24
|
//#endregion
|
|
14
|
-
export { RedisKvStoreConfig, makeRedisBaseKvStore, redisKvStore };
|
|
25
|
+
export { RedisKvStoreConfig, RedisLike, makeRedisBaseKvStore, redisKvStore };
|
|
15
26
|
//# sourceMappingURL=index.d.cts.map
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/redis-kv-store.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/redis-kv-store.ts"],"mappings":";;;;UAIiB,SAAA;EACf,GAAA,CAAI,GAAA,WAAc,OAAA;EAClB,GAAA,CAAI,GAAA,UAAa,KAAA,WAAgB,OAAA;EACjC,GAAA,CAAI,GAAA,sBAAyB,OAAA;EAC7B,IAAA,CACE,MAAA,WACA,OAAA;IAAY,KAAA;IAAgB,KAAA;EAAA,IAC3B,OAAA;IAAU,MAAA;IAAiB,IAAA;EAAA;AAAA;AAAA,UAGf,kBAAA;EACf,KAAA,EAAO,SAAA;AAAA;AAAA,iBAIO,oBAAA,CAAA;EACd;AAAA,GACC,kBAAA,GAAqB,WAAA;AAAA,cAkDX,YAAA,GAAgB,MAAA,EAAQ,kBAAA,KAAkB,KAAA,CAAA,KAAA,CAAA,kBAAA"}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,15 +1,26 @@
|
|
|
1
1
|
import { BaseKvStore, BaseKvStoreService } from "@uploadista/core/types";
|
|
2
2
|
import { Layer } from "effect";
|
|
3
|
-
import { RedisClientType } from "@redis/client";
|
|
4
3
|
|
|
5
4
|
//#region src/redis-kv-store.d.ts
|
|
5
|
+
interface RedisLike {
|
|
6
|
+
get(key: string): Promise<string | null>;
|
|
7
|
+
set(key: string, value: string): Promise<unknown>;
|
|
8
|
+
del(key: string | string[]): Promise<number>;
|
|
9
|
+
scan(cursor: unknown, options?: {
|
|
10
|
+
MATCH?: string;
|
|
11
|
+
COUNT?: number;
|
|
12
|
+
}): Promise<{
|
|
13
|
+
cursor: unknown;
|
|
14
|
+
keys: string[];
|
|
15
|
+
}>;
|
|
16
|
+
}
|
|
6
17
|
interface RedisKvStoreConfig {
|
|
7
|
-
redis:
|
|
18
|
+
redis: RedisLike;
|
|
8
19
|
}
|
|
9
20
|
declare function makeRedisBaseKvStore({
|
|
10
21
|
redis
|
|
11
22
|
}: RedisKvStoreConfig): BaseKvStore;
|
|
12
23
|
declare const redisKvStore: (config: RedisKvStoreConfig) => Layer.Layer<BaseKvStoreService, never, never>;
|
|
13
24
|
//#endregion
|
|
14
|
-
export { RedisKvStoreConfig, makeRedisBaseKvStore, redisKvStore };
|
|
25
|
+
export { RedisKvStoreConfig, RedisLike, makeRedisBaseKvStore, redisKvStore };
|
|
15
26
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/redis-kv-store.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/redis-kv-store.ts"],"mappings":";;;;UAIiB,SAAA;EACf,GAAA,CAAI,GAAA,WAAc,OAAA;EAClB,GAAA,CAAI,GAAA,UAAa,KAAA,WAAgB,OAAA;EACjC,GAAA,CAAI,GAAA,sBAAyB,OAAA;EAC7B,IAAA,CACE,MAAA,WACA,OAAA;IAAY,KAAA;IAAgB,KAAA;EAAA,IAC3B,OAAA;IAAU,MAAA;IAAiB,IAAA;EAAA;AAAA;AAAA,UAGf,kBAAA;EACf,KAAA,EAAO,SAAA;AAAA;AAAA,iBAIO,oBAAA,CAAA;EACd;AAAA,GACC,kBAAA,GAAqB,WAAA;AAAA,cAkDX,YAAA,GAAgB,MAAA,EAAQ,kBAAA,KAAkB,KAAA,CAAA,KAAA,CAAA,kBAAA"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{UploadistaError as e}from"@uploadista/core/errors";import{BaseKvStoreService as t}from"@uploadista/core/types";import{Effect as n,Layer as r}from"effect";function i({redis:t}){return{get:r=>n.tryPromise({try:()=>t.get(r),catch:t=>e.fromCode(`UNKNOWN_ERROR`,{cause:t})}),set:(r,i)=>n.tryPromise({try:()=>t.set(r,i),catch:t=>e.fromCode(`UNKNOWN_ERROR`,{cause:t})}).pipe(n.asVoid),delete:r=>n.tryPromise({try:()=>t.del(r),catch:t=>e.fromCode(`UNKNOWN_ERROR`,{cause:t})}).pipe(n.asVoid),list:r=>n.gen(function*(i){let a=new Set,o=`0`;do{let s=yield*i(n.tryPromise({try:()=>t.scan(o,{MATCH:`${r}*`,COUNT:20}),catch:t=>e.fromCode(`UNKNOWN_ERROR`,{cause:t})}));o=s.cursor;for(let e of s.keys)a.add(e.replace(r,``))}while(o!==`0`);return Array.from(a)})}}const a=e=>r.succeed(t,i(e));export{i as makeRedisBaseKvStore,a as redisKvStore};
|
|
1
|
+
import{UploadistaError as e}from"@uploadista/core/errors";import{BaseKvStoreService as t}from"@uploadista/core/types";import{Effect as n,Layer as r}from"effect";function i({redis:t}){return{get:r=>n.tryPromise({try:()=>t.get(r),catch:t=>e.fromCode(`UNKNOWN_ERROR`,{cause:t})}),set:(r,i)=>n.tryPromise({try:()=>t.set(r,i),catch:t=>e.fromCode(`UNKNOWN_ERROR`,{cause:t})}).pipe(n.asVoid),delete:r=>n.tryPromise({try:()=>t.del(r),catch:t=>e.fromCode(`UNKNOWN_ERROR`,{cause:t})}).pipe(n.asVoid),list:r=>n.gen(function*(i){let a=new Set,o=`0`;do{let s=yield*i(n.tryPromise({try:()=>t.scan(o,{MATCH:`${r}*`,COUNT:20}),catch:t=>e.fromCode(`UNKNOWN_ERROR`,{cause:t})}));o=s.cursor;for(let e of s.keys)a.add(e.replace(r,``))}while(o!==0&&o!==`0`);return Array.from(a)})}}const a=e=>r.succeed(t,i(e));export{i as makeRedisBaseKvStore,a as redisKvStore};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../src/redis-kv-store.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../src/redis-kv-store.ts"],"sourcesContent":["import { UploadistaError } from \"@uploadista/core/errors\";\nimport { type BaseKvStore, BaseKvStoreService } from \"@uploadista/core/types\";\nimport { Effect, Layer } from \"effect\";\n\nexport interface RedisLike {\n get(key: string): Promise<string | null>;\n set(key: string, value: string): Promise<unknown>;\n del(key: string | string[]): Promise<number>;\n scan(\n cursor: unknown,\n options?: { MATCH?: string; COUNT?: number },\n ): Promise<{ cursor: unknown; keys: string[] }>;\n}\n\nexport interface RedisKvStoreConfig {\n redis: RedisLike;\n}\n\n// Base Redis KV store that stores raw strings\nexport function makeRedisBaseKvStore({\n redis,\n}: RedisKvStoreConfig): BaseKvStore {\n return {\n get: (key: string) =>\n Effect.tryPromise({\n try: () => redis.get(key),\n catch: (cause) => UploadistaError.fromCode(\"UNKNOWN_ERROR\", { cause }),\n }),\n\n set: (key: string, value: string) =>\n Effect.tryPromise({\n try: () => redis.set(key, value),\n catch: (cause) => UploadistaError.fromCode(\"UNKNOWN_ERROR\", { cause }),\n }).pipe(Effect.asVoid),\n\n delete: (key: string) =>\n Effect.tryPromise({\n try: () => redis.del(key),\n catch: (cause) => UploadistaError.fromCode(\"UNKNOWN_ERROR\", { cause }),\n }).pipe(Effect.asVoid),\n\n list: (keyPrefix: string) =>\n Effect.gen(function* (_) {\n const keys = new Set<string>();\n let cursor: unknown = \"0\";\n\n do {\n const result = yield* _(\n Effect.tryPromise({\n try: () =>\n redis.scan(cursor, {\n MATCH: `${keyPrefix}*`,\n COUNT: 20,\n }),\n catch: (cause) =>\n UploadistaError.fromCode(\"UNKNOWN_ERROR\", { cause }),\n }),\n );\n\n cursor = result.cursor;\n for (const key of result.keys) {\n keys.add(key.replace(keyPrefix, \"\"));\n }\n } while (cursor !== 0 && cursor !== \"0\");\n\n return Array.from(keys);\n }),\n };\n}\n\n// Base store layer\nexport const redisKvStore = (config: RedisKvStoreConfig) =>\n Layer.succeed(BaseKvStoreService, makeRedisBaseKvStore(config));\n"],"mappings":"iKAmBA,SAAgB,EAAqB,CACnC,SACkC,CAClC,MAAO,CACL,IAAM,GACJ,EAAO,WAAW,CAChB,QAAW,EAAM,IAAI,EAAI,CACzB,MAAQ,GAAU,EAAgB,SAAS,gBAAiB,CAAE,QAAO,CAAC,CACvE,CAAC,CAEJ,KAAM,EAAa,IACjB,EAAO,WAAW,CAChB,QAAW,EAAM,IAAI,EAAK,EAAM,CAChC,MAAQ,GAAU,EAAgB,SAAS,gBAAiB,CAAE,QAAO,CAAC,CACvE,CAAC,CAAC,KAAK,EAAO,OAAO,CAExB,OAAS,GACP,EAAO,WAAW,CAChB,QAAW,EAAM,IAAI,EAAI,CACzB,MAAQ,GAAU,EAAgB,SAAS,gBAAiB,CAAE,QAAO,CAAC,CACvE,CAAC,CAAC,KAAK,EAAO,OAAO,CAExB,KAAO,GACL,EAAO,IAAI,UAAW,EAAG,CACvB,IAAM,EAAO,IAAI,IACb,EAAkB,IAEtB,EAAG,CACD,IAAM,EAAS,MAAO,EACpB,EAAO,WAAW,CAChB,QACE,EAAM,KAAK,EAAQ,CACjB,MAAO,GAAG,EAAU,GACpB,MAAO,GACR,CAAC,CACJ,MAAQ,GACN,EAAgB,SAAS,gBAAiB,CAAE,QAAO,CAAC,CACvD,CAAC,CACH,CAED,EAAS,EAAO,OAChB,IAAK,IAAM,KAAO,EAAO,KACvB,EAAK,IAAI,EAAI,QAAQ,EAAW,GAAG,CAAC,OAE/B,IAAW,GAAK,IAAW,KAEpC,OAAO,MAAM,KAAK,EAAK,EACvB,CACL,CAIH,MAAa,EAAgB,GAC3B,EAAM,QAAQ,EAAoB,EAAqB,EAAO,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uploadista/kv-store-redis",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "1.0.0-beta.2",
|
|
5
5
|
"description": "Redis KV store for Uploadista",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"author": "Uploadista",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
}
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@uploadista/core": "0.
|
|
17
|
+
"@uploadista/core": "1.0.0-beta.2"
|
|
18
18
|
},
|
|
19
19
|
"peerDependencies": {
|
|
20
20
|
"@redis/client": ">=5.8.0 <6.0.0",
|
|
@@ -22,11 +22,11 @@
|
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"@effect/vitest": "0.27.0",
|
|
25
|
-
"@redis/client": "5.
|
|
26
|
-
"effect": "3.19.
|
|
27
|
-
"tsdown": "0.20.
|
|
25
|
+
"@redis/client": "5.11.0",
|
|
26
|
+
"effect": "3.19.19",
|
|
27
|
+
"tsdown": "0.20.3",
|
|
28
28
|
"vitest": "4.0.18",
|
|
29
|
-
"@uploadista/typescript-config": "0.
|
|
29
|
+
"@uploadista/typescript-config": "1.0.0-beta.2"
|
|
30
30
|
},
|
|
31
31
|
"scripts": {
|
|
32
32
|
"build": "tsc --noEmit && tsdown",
|
package/src/redis-kv-store.ts
CHANGED
|
@@ -1,11 +1,19 @@
|
|
|
1
|
-
import type { RedisArgument, RedisClientType } from "@redis/client";
|
|
2
|
-
|
|
3
1
|
import { UploadistaError } from "@uploadista/core/errors";
|
|
4
2
|
import { type BaseKvStore, BaseKvStoreService } from "@uploadista/core/types";
|
|
5
3
|
import { Effect, Layer } from "effect";
|
|
6
4
|
|
|
5
|
+
export interface RedisLike {
|
|
6
|
+
get(key: string): Promise<string | null>;
|
|
7
|
+
set(key: string, value: string): Promise<unknown>;
|
|
8
|
+
del(key: string | string[]): Promise<number>;
|
|
9
|
+
scan(
|
|
10
|
+
cursor: unknown,
|
|
11
|
+
options?: { MATCH?: string; COUNT?: number },
|
|
12
|
+
): Promise<{ cursor: unknown; keys: string[] }>;
|
|
13
|
+
}
|
|
14
|
+
|
|
7
15
|
export interface RedisKvStoreConfig {
|
|
8
|
-
redis:
|
|
16
|
+
redis: RedisLike;
|
|
9
17
|
}
|
|
10
18
|
|
|
11
19
|
// Base Redis KV store that stores raw strings
|
|
@@ -34,7 +42,7 @@ export function makeRedisBaseKvStore({
|
|
|
34
42
|
list: (keyPrefix: string) =>
|
|
35
43
|
Effect.gen(function* (_) {
|
|
36
44
|
const keys = new Set<string>();
|
|
37
|
-
let cursor:
|
|
45
|
+
let cursor: unknown = "0";
|
|
38
46
|
|
|
39
47
|
do {
|
|
40
48
|
const result = yield* _(
|
|
@@ -53,7 +61,7 @@ export function makeRedisBaseKvStore({
|
|
|
53
61
|
for (const key of result.keys) {
|
|
54
62
|
keys.add(key.replace(keyPrefix, ""));
|
|
55
63
|
}
|
|
56
|
-
} while (cursor !== "0");
|
|
64
|
+
} while (cursor !== 0 && cursor !== "0");
|
|
57
65
|
|
|
58
66
|
return Array.from(keys);
|
|
59
67
|
}),
|