c3
Version:
D3-based reusable chart library
57 lines (51 loc) • 1.11 kB
text/typescript
import { ChartInternal } from './core'
/**
* Store value into cache
*
* @param key
* @param value
*/
ChartInternal.prototype.addToCache = function(key, value) {
this.cache[`$${key}`] = value
}
/**
* Returns a cached value or undefined
*
* @param key
* @return {*}
*/
ChartInternal.prototype.getFromCache = function(key) {
return this.cache[`$${key}`]
}
/**
* Reset cached data
*/
ChartInternal.prototype.resetCache = function() {
Object.keys(this.cache)
.filter(key => /^\$/.test(key))
.forEach(key => {
delete this.cache[key]
})
}
// Old API that stores Targets
ChartInternal.prototype.hasCaches = function(ids) {
for (var i = 0; i < ids.length; i++) {
if (!(ids[i] in this.cache)) {
return false
}
}
return true
}
ChartInternal.prototype.addCache = function(id, target) {
this.cache[id] = this.cloneTarget(target)
}
ChartInternal.prototype.getCaches = function(ids) {
var targets = [],
i
for (i = 0; i < ids.length; i++) {
if (ids[i] in this.cache) {
targets.push(this.cloneTarget(this.cache[ids[i]]))
}
}
return targets
}