mirror of
https://github.com/bitwarden/browser.git
synced 2024-11-08 09:43:42 +01:00
alloe cache on lowdb
This commit is contained in:
parent
66b3dbae17
commit
476d21e9f0
@ -12,7 +12,7 @@ export class LowdbStorageService implements StorageService {
|
|||||||
private db: lowdb.LowdbSync<any>;
|
private db: lowdb.LowdbSync<any>;
|
||||||
private defaults: any;
|
private defaults: any;
|
||||||
|
|
||||||
constructor(defaults?: any, dir?: string) {
|
constructor(defaults?: any, dir?: string, private allowCache = false) {
|
||||||
this.defaults = defaults;
|
this.defaults = defaults;
|
||||||
|
|
||||||
let adapter: lowdb.AdapterSync<any>;
|
let adapter: lowdb.AdapterSync<any>;
|
||||||
@ -22,20 +22,24 @@ export class LowdbStorageService implements StorageService {
|
|||||||
}
|
}
|
||||||
const p = path.join(dir, 'data.json');
|
const p = path.join(dir, 'data.json');
|
||||||
adapter = new FileSync(p);
|
adapter = new FileSync(p);
|
||||||
} else if (Utils.isBrowser && !Utils.isNode) {
|
|
||||||
// local storage adapter for web
|
|
||||||
}
|
}
|
||||||
this.db = lowdb(adapter);
|
this.db = lowdb(adapter);
|
||||||
}
|
}
|
||||||
|
|
||||||
init() {
|
init() {
|
||||||
if (this.defaults != null) {
|
if (this.defaults != null) {
|
||||||
this.db.read().defaults(this.defaults).write();
|
if (!this.allowCache) {
|
||||||
|
this.db.read();
|
||||||
|
}
|
||||||
|
this.db.defaults(this.defaults).write();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
get<T>(key: string): Promise<T> {
|
get<T>(key: string): Promise<T> {
|
||||||
const val = this.db.read().get(key).value();
|
if (!this.allowCache) {
|
||||||
|
this.db.read();
|
||||||
|
}
|
||||||
|
const val = this.db.get(key).value();
|
||||||
if (val == null) {
|
if (val == null) {
|
||||||
return Promise.resolve(null);
|
return Promise.resolve(null);
|
||||||
}
|
}
|
||||||
@ -43,12 +47,18 @@ export class LowdbStorageService implements StorageService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
save(key: string, obj: any): Promise<any> {
|
save(key: string, obj: any): Promise<any> {
|
||||||
this.db.read().set(key, obj).write();
|
if (!this.allowCache) {
|
||||||
|
this.db.read();
|
||||||
|
}
|
||||||
|
this.db.set(key, obj).write();
|
||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
}
|
}
|
||||||
|
|
||||||
remove(key: string): Promise<any> {
|
remove(key: string): Promise<any> {
|
||||||
this.db.read().unset(key).write();
|
if (!this.allowCache) {
|
||||||
|
this.db.read();
|
||||||
|
}
|
||||||
|
this.db.unset(key).write();
|
||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user