1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
|
Description: <short summary of the patch>
Author: Yadd <yadd@debian.org>
Forwarded: not-needed
Last-Update: 2022-05-06
--- a/index.ts
+++ b/index.ts
@@ -105,6 +105,7 @@
}: Options<FunctionToMemoize, CacheKeyType> = {},
): FunctionToMemoize {
if (typeof maxAge === 'number') {
+// @ts-ignore
mapAgeCleaner(cache as unknown as Map<CacheKeyType, ReturnType<FunctionToMemoize>>);
}
--- a/map-age-cleaner/source/index.ts
+++ b/map-age-cleaner/source/index.ts
@@ -31,6 +31,7 @@
function mapAgeCleaner<K = any, V = Entry>(map: Map<K, V>, property = 'maxAge') {
let processingKey: K | undefined;
+// @ts-ignore
let processingTimer: NodeJS.Timer | undefined;
let processingDeferred: DeferredPromise<void> | undefined;
@@ -41,6 +42,7 @@
}
const setupTimer = async (item: [K, V]) => {
+// @ts-ignore
processingDeferred = pDefer() as DeferredPromise;
const delay = (item[1] as any)[property] - Date.now();
@@ -56,6 +58,7 @@
// Keep track of the current processed key
processingKey = item[0];
+// @ts-ignore
processingTimer = setTimeout(() => {
// Remove the item when the timeout fires
map.delete(item[0]);
@@ -89,6 +92,7 @@
processingKey = undefined;
if (processingTimer !== undefined) {
+// @ts-ignore
clearTimeout(processingTimer);
processingTimer = undefined;
--- a/map-age-cleaner/source/test.ts
+++ b/map-age-cleaner/source/test.ts
@@ -1,15 +1,8 @@
/* tslint:disable:await-promise */
-import test from 'ava';
+import test from 'tape';
import delay from 'delay';
-import mapAgeCleaner = require('.');
-
-interface Context {
- map: Map<string, {maxAge: number; data: any}>;
-}
-
-test.beforeEach(t => {
- t.context.map = new Map();
-});
+// @ts-ignore
+import mapAgeCleaner = require('map-age-cleaner');
test('auto removal on initial Map', async t => {
const map = new Map([
@@ -29,7 +22,7 @@
});
test('auto removal', async t => {
- const {map} = t.context as Context;
+ const map = new Map();
mapAgeCleaner(map);
map.set('unicorn', {maxAge: Date.now() + 1000, data: '🦄'});
@@ -71,7 +64,7 @@
});
test('order on reset', async t => {
- const {map} = t.context as Context;
+ const map = new Map();
mapAgeCleaner(map);
map.set('unicorn', {maxAge: Date.now() + 1000, data: '🦄'});
@@ -108,7 +101,7 @@
});
test('reset currently processed item', async t => {
- const {map} = t.context as Context;
+ const map = new Map();
mapAgeCleaner(map);
map.set('unicorn', {maxAge: Date.now() + 1000, data: '🦄'});
@@ -124,7 +117,7 @@
});
test('reset currently processed item and process next', async t => {
- const {map} = t.context as Context;
+ const map = new Map();
mapAgeCleaner(map);
map.set('unicorn', {maxAge: Date.now() + 1000, data: '🦄'});
--- a/map-age-cleaner/tsconfig.json
+++ b/map-age-cleaner/tsconfig.json
@@ -18,6 +18,7 @@
"noUnusedParameters": true,
"noFallthroughCasesInSwitch": true,
"noEmitOnError": true,
+ "esModuleInterop": true,
"forceConsistentCasingInFileNames": true
},
"exclude": [
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -2,9 +2,16 @@
"extends": "@sindresorhus/tsconfig",
"compilerOptions": {
"outDir": "dist",
+ "esModuleInterop": true,
"experimentalDecorators": true
},
"files": [
"index.ts"
+ ],
+ "exclude": [
+ "debian",
+ "map-age-cleaner",
+ "node_modules",
+ "p-defer"
]
}
|