Files
car-fetcher/api/src/util/Cache.js
2020-05-25 16:35:46 +03:00

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;