37 lines
730 B
JavaScript
37 lines
730 B
JavaScript
import Cacheman from 'cacheman';
|
|
import { CACHE } from './Constants';
|
|
import { createCacheDirectories } from './TempDirCreator';
|
|
|
|
const formatKey = (name) => {
|
|
if (!name) {
|
|
throw Error('No number plate specified');
|
|
}
|
|
return `${CACHE.PREFIX.plate}${name}`;
|
|
};
|
|
|
|
class Cache {
|
|
manager;
|
|
|
|
constructor() {
|
|
createCacheDirectories(CACHE.directory);
|
|
this.manager = new Cacheman({
|
|
ttl: CACHE.ttl,
|
|
engine: CACHE.engine,
|
|
tmpDir: CACHE.directory,
|
|
});
|
|
}
|
|
|
|
async get(name) {
|
|
return this.manager.get(formatKey(name));
|
|
}
|
|
|
|
save(name, data) {
|
|
if (!data) {
|
|
throw Error(`No data for caching car ${name}`);
|
|
}
|
|
this.manager.set(formatKey(name), data);
|
|
}
|
|
}
|
|
|
|
export default Cache;
|