@uploadista/kv-store-cloudflare-kv 0.0.3 → 0.0.6
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 -0
- package/dist/index.d.cts +15 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.ts +14 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -0
- package/package.json +6 -5
- package/tsdown.config.ts +11 -0
- package/.turbo/turbo-build.log +0 -5
- package/.turbo/turbo-check.log +0 -5
- package/dist/cloudflare-kv-store.d.ts +0 -9
- package/dist/cloudflare-kv-store.d.ts.map +0 -1
- package/dist/cloudflare-kv-store.js +0 -42
- package/tsconfig.tsbuildinfo +0 -1
package/dist/index.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let c=require(`@uploadista/core/errors`);c=s(c);let l=require(`@uploadista/core/types`);l=s(l);let u=require(`effect`);u=s(u);function d({kv:e}){return{get:t=>u.Effect.tryPromise({try:()=>e.get(t),catch:e=>c.UploadistaError.fromCode(`UNKNOWN_ERROR`,{cause:e})}),set:(t,n)=>u.Effect.tryPromise({try:()=>e.put(t,n),catch:e=>c.UploadistaError.fromCode(`UNKNOWN_ERROR`,{cause:e})}).pipe(u.Effect.asVoid),delete:t=>u.Effect.tryPromise({try:()=>e.delete(t),catch:e=>c.UploadistaError.fromCode(`UNKNOWN_ERROR`,{cause:e})}).pipe(u.Effect.asVoid),list:t=>u.Effect.gen(function*(n){let r=new Set,i=null;do{let a=yield*n(u.Effect.tryPromise({try:()=>e.list({prefix:t,limit:20,cursor:i}),catch:e=>c.UploadistaError.fromCode(`UNKNOWN_ERROR`,{cause:e})}));i=a.list_complete?null:a.cursor;for(let e of a.keys){let n=e.name.replace(t,``);r.add(n)}}while(i);return Array.from(r)})}}const f=e=>u.Layer.succeed(l.BaseKvStoreService,d(e));exports.cloudflareKvStore=f,exports.makeCloudflareBaseKvStore=d;
|
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { KVNamespace } from "@cloudflare/workers-types";
|
|
2
|
+
import { BaseKvStore, BaseKvStoreService } from "@uploadista/core/types";
|
|
3
|
+
import { Layer } from "effect";
|
|
4
|
+
|
|
5
|
+
//#region src/cloudflare-kv-store.d.ts
|
|
6
|
+
type CloudflareKvStoreConfig = {
|
|
7
|
+
kv: KVNamespace<string>;
|
|
8
|
+
};
|
|
9
|
+
declare function makeCloudflareBaseKvStore({
|
|
10
|
+
kv
|
|
11
|
+
}: CloudflareKvStoreConfig): BaseKvStore;
|
|
12
|
+
declare const cloudflareKvStore: (config: CloudflareKvStoreConfig) => Layer.Layer<BaseKvStoreService, never, never>;
|
|
13
|
+
//#endregion
|
|
14
|
+
export { CloudflareKvStoreConfig, cloudflareKvStore, makeCloudflareBaseKvStore };
|
|
15
|
+
//# sourceMappingURL=index.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/cloudflare-kv-store.ts"],"sourcesContent":[],"mappings":";;;;;KASY,uBAAA;MACN;AADN,CAAA;AAKgB,iBAAA,yBAAA,CAAyB;EAAA;AAAA,CAAA,EAEtC,uBAFsC,CAAA,EAEZ,WAFY;AACvC,cAqDW,iBArDX,EAAA,CAAA,MAAA,EAqDwC,uBArDxC,EAAA,GAqD+D,KAAA,CAAA,KArD/D,CAqD+D,kBArD/D,EAAA,KAAA,EAAA,KAAA,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
import { BaseKvStore, BaseKvStoreService } from "@uploadista/core/types";
|
|
2
|
+
import { Layer } from "effect";
|
|
3
|
+
import { KVNamespace } from "@cloudflare/workers-types";
|
|
4
|
+
|
|
5
|
+
//#region src/cloudflare-kv-store.d.ts
|
|
6
|
+
type CloudflareKvStoreConfig = {
|
|
7
|
+
kv: KVNamespace<string>;
|
|
8
|
+
};
|
|
9
|
+
declare function makeCloudflareBaseKvStore({
|
|
10
|
+
kv
|
|
11
|
+
}: CloudflareKvStoreConfig): BaseKvStore;
|
|
12
|
+
declare const cloudflareKvStore: (config: CloudflareKvStoreConfig) => Layer.Layer<BaseKvStoreService, never, never>;
|
|
13
|
+
//#endregion
|
|
14
|
+
export { CloudflareKvStoreConfig, cloudflareKvStore, makeCloudflareBaseKvStore };
|
|
2
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/cloudflare-kv-store.ts"],"sourcesContent":[],"mappings":";;;;;KASY,uBAAA;MACN;AADN,CAAA;AAKgB,iBAAA,yBAAA,CAAyB;EAAA;AAAA,CAAA,EAEtC,uBAFsC,CAAA,EAEZ,WAFY;AACvC,cAqDW,iBArDX,EAAA,CAAA,MAAA,EAqDwC,uBArDxC,EAAA,GAqD+D,KAAA,CAAA,KArD/D,CAqD+D,kBArD/D,EAAA,KAAA,EAAA,KAAA,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
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({kv: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.put(r,i),catch:t=>e.fromCode(`UNKNOWN_ERROR`,{cause:t})}).pipe(n.asVoid),delete:r=>n.tryPromise({try:()=>t.delete(r),catch:t=>e.fromCode(`UNKNOWN_ERROR`,{cause:t})}).pipe(n.asVoid),list:r=>n.gen(function*(i){let a=new Set,o=null;do{let s=yield*i(n.tryPromise({try:()=>t.list({prefix:r,limit:20,cursor:o}),catch:t=>e.fromCode(`UNKNOWN_ERROR`,{cause:t})}));o=s.list_complete?null:s.cursor;for(let e of s.keys){let t=e.name.replace(r,``);a.add(t)}}while(o);return Array.from(a)})}}const a=e=>r.succeed(t,i(e));export{a as cloudflareKvStore,i as makeCloudflareBaseKvStore};
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["cursor: string | null","result: KVNamespaceListResult<unknown, string>"],"sources":["../src/cloudflare-kv-store.ts"],"sourcesContent":["import type {\n KVNamespace,\n KVNamespaceListResult,\n} from \"@cloudflare/workers-types\";\nimport { UploadistaError } from \"@uploadista/core/errors\";\n\nimport { type BaseKvStore, BaseKvStoreService } from \"@uploadista/core/types\";\nimport { Effect, Layer } from \"effect\";\n\nexport type CloudflareKvStoreConfig = {\n kv: KVNamespace<string>;\n};\n\n// Base CloudFlare KV store that stores raw strings\nexport function makeCloudflareBaseKvStore({\n kv,\n}: CloudflareKvStoreConfig): BaseKvStore {\n return {\n get: (key: string) =>\n Effect.tryPromise({\n try: () => kv.get(key),\n catch: (cause) => UploadistaError.fromCode(\"UNKNOWN_ERROR\", { cause }),\n }),\n\n set: (key: string, value: string) =>\n Effect.tryPromise({\n try: () => kv.put(key, value),\n catch: (cause) => UploadistaError.fromCode(\"UNKNOWN_ERROR\", { cause }),\n }).pipe(Effect.asVoid),\n\n delete: (key: string) =>\n Effect.tryPromise({\n try: () => kv.delete(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: string | null = null;\n\n do {\n const result: KVNamespaceListResult<unknown, string> = yield* _(\n Effect.tryPromise({\n try: () =>\n kv.list({\n prefix: keyPrefix,\n limit: 20,\n cursor,\n }),\n catch: (cause) =>\n UploadistaError.fromCode(\"UNKNOWN_ERROR\", { cause }),\n }),\n );\n\n cursor = result.list_complete ? null : result.cursor;\n for (const key of result.keys) {\n const unprefixedKey = key.name.replace(keyPrefix, \"\");\n keys.add(unprefixedKey);\n }\n } while (cursor);\n\n return Array.from(keys);\n }),\n };\n}\n\n// Base store layer\nexport const cloudflareKvStore = (config: CloudflareKvStoreConfig) =>\n Layer.succeed(BaseKvStoreService, makeCloudflareBaseKvStore(config));\n"],"mappings":"iKAcA,SAAgB,EAA0B,CACxC,MACuC,CACvC,MAAO,CACL,IAAM,GACJ,EAAO,WAAW,CAChB,QAAW,EAAG,IAAI,EAAI,CACtB,MAAQ,GAAU,EAAgB,SAAS,gBAAiB,CAAE,QAAO,CAAC,CACvE,CAAC,CAEJ,KAAM,EAAa,IACjB,EAAO,WAAW,CAChB,QAAW,EAAG,IAAI,EAAK,EAAM,CAC7B,MAAQ,GAAU,EAAgB,SAAS,gBAAiB,CAAE,QAAO,CAAC,CACvE,CAAC,CAAC,KAAK,EAAO,OAAO,CAExB,OAAS,GACP,EAAO,WAAW,CAChB,QAAW,EAAG,OAAO,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,IACbA,EAAwB,KAE5B,EAAG,CACD,IAAMC,EAAiD,MAAO,EAC5D,EAAO,WAAW,CAChB,QACE,EAAG,KAAK,CACN,OAAQ,EACR,MAAO,GACP,SACD,CAAC,CACJ,MAAQ,GACN,EAAgB,SAAS,gBAAiB,CAAE,QAAO,CAAC,CACvD,CAAC,CACH,CAED,EAAS,EAAO,cAAgB,KAAO,EAAO,OAC9C,IAAK,IAAM,KAAO,EAAO,KAAM,CAC7B,IAAM,EAAgB,EAAI,KAAK,QAAQ,EAAW,GAAG,CACrD,EAAK,IAAI,EAAc,QAElB,GAET,OAAO,MAAM,KAAK,EAAK,EACvB,CACL,CAIH,MAAa,EAAqB,GAChC,EAAM,QAAQ,EAAoB,EAA0B,EAAO,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uploadista/kv-store-cloudflare-kv",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.6",
|
|
5
5
|
"description": "Cloudflare KV store for Uploadista",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"author": "Uploadista",
|
|
@@ -13,15 +13,16 @@
|
|
|
13
13
|
}
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@cloudflare/workers-types": "4.
|
|
16
|
+
"@cloudflare/workers-types": "4.20251014.0",
|
|
17
17
|
"effect": "3.18.4",
|
|
18
|
-
"@uploadista/core": "0.0.
|
|
18
|
+
"@uploadista/core": "0.0.6"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
|
-
"
|
|
21
|
+
"tsdown": "0.15.9",
|
|
22
|
+
"@uploadista/typescript-config": "0.0.6"
|
|
22
23
|
},
|
|
23
24
|
"scripts": {
|
|
24
|
-
"build": "
|
|
25
|
+
"build": "tsdown",
|
|
25
26
|
"format": "biome format --write ./src",
|
|
26
27
|
"lint": "biome lint --write ./src",
|
|
27
28
|
"check": "biome check --write ./src"
|
package/tsdown.config.ts
ADDED
package/.turbo/turbo-build.log
DELETED
package/.turbo/turbo-check.log
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { KVNamespace } from "@cloudflare/workers-types";
|
|
2
|
-
import { type BaseKvStore, BaseKvStoreService } from "@uploadista/core/types";
|
|
3
|
-
import { Layer } from "effect";
|
|
4
|
-
export type CloudflareKvStoreConfig = {
|
|
5
|
-
kv: KVNamespace<string>;
|
|
6
|
-
};
|
|
7
|
-
export declare function makeCloudflareBaseKvStore({ kv, }: CloudflareKvStoreConfig): BaseKvStore;
|
|
8
|
-
export declare const cloudflareKvStore: (config: CloudflareKvStoreConfig) => Layer.Layer<BaseKvStoreService, never, never>;
|
|
9
|
-
//# sourceMappingURL=cloudflare-kv-store.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cloudflare-kv-store.d.ts","sourceRoot":"","sources":["../src/cloudflare-kv-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EAEZ,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,KAAK,WAAW,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAU,KAAK,EAAE,MAAM,QAAQ,CAAC;AAEvC,MAAM,MAAM,uBAAuB,GAAG;IACpC,EAAE,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACzB,CAAC;AAGF,wBAAgB,yBAAyB,CAAC,EACxC,EAAE,GACH,EAAE,uBAAuB,GAAG,WAAW,CAiDvC;AAGD,eAAO,MAAM,iBAAiB,GAAI,QAAQ,uBAAuB,kDACK,CAAC"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { UploadistaError } from "@uploadista/core/errors";
|
|
2
|
-
import { BaseKvStoreService } from "@uploadista/core/types";
|
|
3
|
-
import { Effect, Layer } from "effect";
|
|
4
|
-
// Base CloudFlare KV store that stores raw strings
|
|
5
|
-
export function makeCloudflareBaseKvStore({ kv, }) {
|
|
6
|
-
return {
|
|
7
|
-
get: (key) => Effect.tryPromise({
|
|
8
|
-
try: () => kv.get(key),
|
|
9
|
-
catch: (cause) => UploadistaError.fromCode("UNKNOWN_ERROR", { cause }),
|
|
10
|
-
}),
|
|
11
|
-
set: (key, value) => Effect.tryPromise({
|
|
12
|
-
try: () => kv.put(key, value),
|
|
13
|
-
catch: (cause) => UploadistaError.fromCode("UNKNOWN_ERROR", { cause }),
|
|
14
|
-
}).pipe(Effect.asVoid),
|
|
15
|
-
delete: (key) => Effect.tryPromise({
|
|
16
|
-
try: () => kv.delete(key),
|
|
17
|
-
catch: (cause) => UploadistaError.fromCode("UNKNOWN_ERROR", { cause }),
|
|
18
|
-
}).pipe(Effect.asVoid),
|
|
19
|
-
list: (keyPrefix) => Effect.gen(function* (_) {
|
|
20
|
-
const keys = new Set();
|
|
21
|
-
let cursor = null;
|
|
22
|
-
do {
|
|
23
|
-
const result = yield* _(Effect.tryPromise({
|
|
24
|
-
try: () => kv.list({
|
|
25
|
-
prefix: keyPrefix,
|
|
26
|
-
limit: 20,
|
|
27
|
-
cursor,
|
|
28
|
-
}),
|
|
29
|
-
catch: (cause) => UploadistaError.fromCode("UNKNOWN_ERROR", { cause }),
|
|
30
|
-
}));
|
|
31
|
-
cursor = result.list_complete ? null : result.cursor;
|
|
32
|
-
for (const key of result.keys) {
|
|
33
|
-
const unprefixedKey = key.name.replace(keyPrefix, "");
|
|
34
|
-
keys.add(unprefixedKey);
|
|
35
|
-
}
|
|
36
|
-
} while (cursor);
|
|
37
|
-
return Array.from(keys);
|
|
38
|
-
}),
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
// Base store layer
|
|
42
|
-
export const cloudflareKvStore = (config) => Layer.succeed(BaseKvStoreService, makeCloudflareBaseKvStore(config));
|
package/tsconfig.tsbuildinfo
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"root":["./src/cloudflare-kv-store.ts","./src/index.ts"],"version":"5.9.3"}
|