mirror of https://github.com/status-im/metro.git
Implement "clear" method in "metro-cache" stores
Reviewed By: rubennorte Differential Revision: D7628735 fbshipit-source-id: a129bd32f30be968116e0efa065badc6a7d55d51
This commit is contained in:
parent
8fcc40edf2
commit
c56e414560
|
@ -14,6 +14,7 @@
|
|||
"dependencies": {
|
||||
"jest-serializer": "22.4.3",
|
||||
"metro-core": "0.32.0",
|
||||
"mkdirp": "^0.5.1"
|
||||
"mkdirp": "^0.5.1",
|
||||
"rimraf": "^2.5.4"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
const fs = require('fs');
|
||||
const mkdirp = require('mkdirp');
|
||||
const path = require('path');
|
||||
const rimraf = require('rimraf');
|
||||
|
||||
import type {TransformedCode} from 'metro/src/JSTransformer/worker';
|
||||
|
||||
|
@ -27,13 +28,8 @@ class FileStore {
|
|||
_root: string;
|
||||
|
||||
constructor(options: Options) {
|
||||
const root = options.root;
|
||||
|
||||
for (let i = 0; i < 256; i++) {
|
||||
mkdirp.sync(path.join(root, ('0' + i.toString(16)).slice(-2)));
|
||||
}
|
||||
|
||||
this._root = root;
|
||||
this._root = options.root;
|
||||
this._createDirs();
|
||||
}
|
||||
|
||||
get(key: Buffer): ?TransformedCode {
|
||||
|
@ -65,6 +61,11 @@ class FileStore {
|
|||
fs.writeFileSync(this._getFilePath(key), data);
|
||||
}
|
||||
|
||||
clear() {
|
||||
this._removeDirs();
|
||||
this._createDirs();
|
||||
}
|
||||
|
||||
_getFilePath(key: Buffer): string {
|
||||
return path.join(
|
||||
this._root,
|
||||
|
@ -72,6 +73,18 @@ class FileStore {
|
|||
key.slice(1).toString('hex'),
|
||||
);
|
||||
}
|
||||
|
||||
_createDirs() {
|
||||
for (let i = 0; i < 256; i++) {
|
||||
mkdirp.sync(path.join(this._root, ('0' + i.toString(16)).slice(-2)));
|
||||
}
|
||||
}
|
||||
|
||||
_removeDirs() {
|
||||
for (let i = 0; i < 256; i++) {
|
||||
rimraf.sync(path.join(this._root, ('0' + i.toString(16)).slice(-2)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = FileStore;
|
||||
|
|
|
@ -149,6 +149,10 @@ class HttpStore {
|
|||
gzip.end(JSON.stringify(value) || 'null');
|
||||
});
|
||||
}
|
||||
|
||||
clear() {
|
||||
// Not implemented.
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = HttpStore;
|
||||
|
|
|
@ -13,4 +13,5 @@
|
|||
export type CacheStore<T> = {
|
||||
get(key: Buffer): ?T | Promise<?T>,
|
||||
set(key: Buffer, value: T): void | Promise<void>,
|
||||
clear(): void | Promise<void>,
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue