feat: add migrated flag & update dateEdited on migration

This commit is contained in:
thecodrr
2020-12-06 15:35:23 +05:00
parent 10570e14b2
commit 2b30bd9bf0
5 changed files with 21 additions and 10 deletions

View File

@@ -37,10 +37,14 @@ class Collector {
_collect(array) {
return Promise.all(
tfun
.filter((item) => item.dateEdited > this._lastSyncedTimestamp)
.filter(
(item) => item.dateEdited > this._lastSyncedTimestamp || item.migrated
)
.map(async (item) => {
// in case of resolved delta, we do not want to send this key to the server
if (item.resolved) delete item.resolved;
// in case of resolved delta
item.resolved = false;
// turn the migrated flag off so we don't keep syncing this item repeated
item.migrated = false;
return {
id: item.id,

View File

@@ -4,7 +4,8 @@ import getId from "../utils/id";
export default class Content extends Collection {
async add(content) {
if (!content) return;
if (content.deleted) return await this._collection.addItem(content);
if (content.deleted || content.migrated)
return await this._collection.addItem(content);
if (content.id && (await this._collection.exists(content.id))) {
content = {

View File

@@ -18,7 +18,7 @@ if (!tfun) {
export default class Notes extends Collection {
async add(noteArg) {
if (!noteArg) return;
if (noteArg.remote) {
if (noteArg.remote || noteArg.migrated) {
return await this._collection.addItem(noteArg);
}

View File

@@ -26,7 +26,7 @@ export default class Trash extends Collection {
}
async add(item) {
if (item.dateDeleted || item.deleted) {
if (item.dateDeleted || item.deleted || item.migrated) {
return await this._collection.addItem(item);
}
await this._collection.addItem({

View File

@@ -6,17 +6,20 @@ export const migrations = {
delete item.content;
item.contentId = contentId;
}
if (item.notebook.id) {
if (item.notebook) {
const notebook = item.notebook;
delete item.notebook;
item.notebooks = [notebook];
}
delete item.notebook;
item.remote = true;
item.dateEdited = Date.now();
item.migrated = true;
return item;
},
delta: function (item) {
item.data = item.data.ops;
item.type = "delta";
item.dateEdited = Date.now();
item.migrated = true;
return item;
},
trash: function (item) {
@@ -26,6 +29,8 @@ export const migrations = {
item.contentId = item.content.delta;
delete item.content;
}
item.dateEdited = Date.now();
item.migrated = true;
return item;
},
},
@@ -34,8 +39,9 @@ export const migrations = {
// notebook -> notebooks
const notebook = item.notebook;
delete item.notebook;
item.remote = true;
if (notebook) item.notebooks = [notebook];
item.dateEdited = Date.now();
item.migrated = true;
return item;
},
},