Skip to content

Commit da07b92

Browse files
committed
feat(memo): added memoization lib
1 parent b639746 commit da07b92

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

lib/memoization.js

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
'use strict'
2+
3+
let MEMOIZED = {}
4+
5+
module.exports.clearMemoized = clearMemoized
6+
function clearMemoized () {
7+
var old = MEMOIZED
8+
MEMOIZED = {}
9+
return old
10+
}
11+
12+
module.exports.put = put
13+
function put (cache, entry, data) {
14+
MEMOIZED[`key:${cache}:${entry.key}`] = { entry, data }
15+
putDigest(cache, entry.digest, entry.hashAlgorithm, data)
16+
}
17+
18+
module.exports.put.byDigest = putDigest
19+
function putDigest (cache, digest, algo, data) {
20+
MEMOIZED[`digest:${cache}:${algo}:${digest}`] = data
21+
}
22+
23+
module.exports.get = get
24+
function get (cache, key) {
25+
return MEMOIZED[`key:${cache}:${key}`]
26+
}
27+
28+
module.exports.get.byDigest = getDigest
29+
function getDigest (cache, digest, algo) {
30+
return MEMOIZED[`digest:${cache}:${algo}:${digest}`]
31+
}

0 commit comments

Comments
 (0)