示例#1
0
  async read() {
    if (this.cached && this.data) {
      return this.data;
    }

    try  {
      const data = await readFile(this.path);
      log.save('read', this.path);
      this.data = JSON.parse(data);
      this.cached = true;
      return this.data;
    } catch(err) {
      log.save('read', `${this.path} file not found`);
      return {
        addons: {}
      };
    }
  }
示例#2
0
 async write(data) {
   try {
     const jdata = JSON.stringify(data, null, '  ');
     await this._write(jdata);
     log.save('write', this.path);
     this.data = data;
     this.cached = true;
     return true;
   } catch (err) {
     this.data = null;
     this.cached = false;
     throw err;
   }
 }
示例#3
0
 async delete(addonName) {
   log.save('delete');
   let readData = await this.read();
   delete readData.addons[addonName];
   await this.write(readData);
 }
示例#4
0
 async update(addonName, addonData) {
   log.save('update');
   let readData = await this.read();
   readData.addons[addonName] = addonData;
   await this.write(readData);
 }