From 20eb14362191357bc096bba0e5b716f3196bd3a7 Mon Sep 17 00:00:00 2001 From: Xinyu Ma Date: Fri, 19 Jan 2024 02:33:30 -0800 Subject: [PATCH] Try to add custom shims --- build.ts | 4 ++++ package.json | 2 +- src/storage/deno-kv.ts | 1 - src/storage/mod.ts | 2 +- types/deno.d.ts | 29 +++++++++++++++++++++++++++++ 5 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 types/deno.d.ts diff --git a/build.ts b/build.ts index 9a75e78..5ec34c8 100644 --- a/build.ts +++ b/build.ts @@ -46,6 +46,10 @@ if (import.meta.main) { shims: { // Do not shim Deno. It conflicts with the browser. deno: false, + custom: [{ + module: './types/deno.d.ts', + globalNames: ['Deno'], + }], }, test: false, // Required due to some dependencies do not include test files. esModule: true, diff --git a/package.json b/package.json index d237e96..2f690c6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@ucla-irl/ndnts-aux", - "version": "1.0.3", + "version": "1.0.4", "description": "NDNts Auxiliary Package for Web and Deno", "scripts": { "test": "deno test", diff --git a/src/storage/deno-kv.ts b/src/storage/deno-kv.ts index 7a4ddad..3cd3330 100644 --- a/src/storage/deno-kv.ts +++ b/src/storage/deno-kv.ts @@ -2,7 +2,6 @@ import { Storage } from './types.ts'; /** * A storage based on DenoKV. - * Not actually included in the exported package. May need Custom Shims. */ export class DenoKvStorage implements Storage { constructor( diff --git a/src/storage/mod.ts b/src/storage/mod.ts index 25b64c5..66c501c 100644 --- a/src/storage/mod.ts +++ b/src/storage/mod.ts @@ -1,4 +1,4 @@ export * from './types.ts'; export * from './in-memory.ts'; export * from './file-system.ts'; -// export * from './deno-kv.ts'; +export * from './deno-kv.ts'; diff --git a/types/deno.d.ts b/types/deno.d.ts new file mode 100644 index 0000000..0d73e75 --- /dev/null +++ b/types/deno.d.ts @@ -0,0 +1,29 @@ +// declare namespace Deno { +// } +declare namespace Deno { + export function openKv(path?: string): Promise; + + export class Kv implements Disposable { + get( + key: any, + options?: { consistency?: KvConsistencyLevel }, + ): Promise; + + set( + key: any, + value: unknown, + options?: { expireIn?: number }, + ): Promise; + + delete(key: any): Promise; + + list( + selector: any, + options?: any, + ): any; + + close(): void; + + [Symbol.dispose](): void; + } +}