diff --git a/README.md b/README.md index aed16c6..346a748 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,16 @@ Plain JavaScript decorators are planned for the future. npm install --save-dev memoize-cache-decorator ``` +## Deno + +In Deno, use: + +```js +import { memoize } from "jsr:@edwinm/memoize-decorator@2"; +``` + +See also [@edwinm/memoize-decorator@2 on JSR](https://jsr.io/@edwinm/memoize-decorator@2.0.0). + ## Usage ```ts diff --git a/dist/memoize.js.map b/dist/memoize.js.map index 07cc6cf..e034b05 100644 --- a/dist/memoize.js.map +++ b/dist/memoize.js.map @@ -1 +1 @@ -{"version":3,"file":"memoize.js","sourceRoot":"","sources":["../src/memoize.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"memoize.js","sourceRoot":"","sources":["../src/memoize.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/jsr.json b/jsr.json new file mode 100644 index 0000000..1ca9cb8 --- /dev/null +++ b/jsr.json @@ -0,0 +1,5 @@ +{ + "name": "@edwinm/memoize-decorator", + "version": "2.0.0", + "exports": "./src/memoize.ts" +} diff --git a/src/memoize.ts b/src/memoize.ts index a97049c..79b55e3 100644 --- a/src/memoize.ts +++ b/src/memoize.ts @@ -28,7 +28,13 @@ interface CacheObject { timeout: number; } -export function memoize(config: Config = {}) { +export function memoize( + config: Config = {} +): ( + target: object, + propertyName: string, + propertyDescriptor: PropertyDescriptor +) => PropertyDescriptor { return function ( target: object, propertyName: string, diff --git a/tsconfig.json b/tsconfig.json index f28155e..980043b 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,7 +3,7 @@ "outDir": "dist", "lib": ["es6"], "target": "es6", - "module": "es6", + "module": "nodenext", "moduleResolution": "nodenext", "declaration": true, "sourceMap": true,