fix(core): update
This commit is contained in:
30
ts/smartnpm.classes.registrycache.ts
Normal file
30
ts/smartnpm.classes.registrycache.ts
Normal file
@@ -0,0 +1,30 @@
|
||||
import { NpmRegistry } from './smartnpm.classes.npmregistry';
|
||||
import * as plugins from './smartnpm.plugins';
|
||||
|
||||
export class RegistryCache {
|
||||
npmregistryRef: NpmRegistry;
|
||||
public levelCache: plugins.levelcache.LevelCache;
|
||||
|
||||
constructor(npmRegistryRefArg: NpmRegistry) {
|
||||
this.npmregistryRef = npmRegistryRefArg;
|
||||
this.levelCache = new plugins.levelcache.LevelCache({
|
||||
cacheId: encodeURIComponent(this.npmregistryRef.options.npmRegistryUrl),
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
public async getCachedFile (fileId: string): Promise<plugins.smartfile.Smartfile> {
|
||||
const cacheEntry = await this.levelCache.retrieveCacheEntryByKey(fileId);
|
||||
if (cacheEntry) {
|
||||
return plugins.smartfile.Smartfile.fromFoldedJson(cacheEntry.contents.toString());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public async cacheSmartFile (fileIdArg: string, smartfileArg: plugins.smartfile.Smartfile) {
|
||||
await this.levelCache.storeCacheEntryByKey(fileIdArg, new plugins.levelcache.CacheEntry({
|
||||
contents: Buffer.from(smartfileArg.foldToJson()),
|
||||
ttl: 60000
|
||||
}));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user