Browse Source

fix: set initial remoteMetaData to an object (#668)

Gerald 6 years ago
parent
commit
ef775a8a88
2 changed files with 9 additions and 6 deletions
  1. 7 4
      src/background/sync/base.js
  2. 2 2
      src/background/sync/googledrive.js

+ 7 - 4
src/background/sync/base.js

@@ -302,7 +302,10 @@ export const BaseService = serviceFactory({
     return this.get({ name: this.metaFile })
     .then(data => JSON.parse(data))
     .catch(err => this.handleMetaError(err))
-    .then(data => data || {});
+    .then(data => ({
+      name: this.metaFile,
+      data,
+    }));
   },
   initToken() {
     this.prepareHeaders();
@@ -358,8 +361,8 @@ export const BaseService = serviceFactory({
   },
   getSyncData() {
     return this.getMeta()
-    .then(remoteMetaData => Promise.all([
-      { name: this.metaFile, data: remoteMetaData },
+    .then(remoteMeta => Promise.all([
+      remoteMeta,
       this.list(),
       this.getLocalData(),
     ]));
@@ -375,7 +378,7 @@ export const BaseService = serviceFactory({
     .then(() => this.getSyncData())
     .then(data => Promise.resolve(this.acquireLock()).then(() => data))
     .then(([remoteMeta, remoteData, localData]) => {
-      const { data: remoteMetaData } = remoteMeta;
+      const remoteMetaData = remoteMeta.data || {};
       const remoteMetaInfo = remoteMetaData.info || {};
       const remoteTimestamp = remoteMetaData.timestamp || 0;
       let remoteChanged = !remoteTimestamp

+ 2 - 2
src/background/sync/googledrive.js

@@ -101,9 +101,9 @@ const GoogleDrive = BaseService.extend({
       .then(data => JSON.parse(data))
       .catch(err => this.handleMetaError(err))
       .then(data => Object.assign({}, metaItem, {
-        data,
-        uri: null,
         name: this.metaFile,
+        uri: null,
+        data,
       }));
       return Promise.all([gotMeta, remoteData, this.getLocalData()]);
     });