Merge branch 'release/1.1.2-1'
This commit is contained in:
14
package-lock.json
generated
14
package-lock.json
generated
@@ -22,7 +22,7 @@
|
||||
"fs-extra": "^10.1.0",
|
||||
"he": "^1.2.0",
|
||||
"iconv-lite": "^0.6.3",
|
||||
"jembadb": "^5.1.5",
|
||||
"jembadb": "^5.1.7",
|
||||
"localforage": "^1.10.0",
|
||||
"lodash": "^4.17.21",
|
||||
"minimist": "^1.2.7",
|
||||
@@ -5989,9 +5989,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/jembadb": {
|
||||
"version": "5.1.5",
|
||||
"resolved": "https://registry.npmjs.org/jembadb/-/jembadb-5.1.5.tgz",
|
||||
"integrity": "sha512-Vb+TkTg3JVXLPTG5BiqboZjJ2wvZRONnLd2+qU4gTuaqt2JSniigbniKSl3kACAEFfuRXEjfs9dLlKWjBX2Aiw==",
|
||||
"version": "5.1.7",
|
||||
"resolved": "https://registry.npmjs.org/jembadb/-/jembadb-5.1.7.tgz",
|
||||
"integrity": "sha512-TNZjiKQ7Zfh89Q1x25PKKtsbkxiC5uOnx953dxJEP6RqfcdR6uVpr4cf+kmyq6IQ1GhwhXTELnoTIdvLWrpEvw==",
|
||||
"engines": {
|
||||
"node": ">=16.16.0"
|
||||
}
|
||||
@@ -15154,9 +15154,9 @@
|
||||
}
|
||||
},
|
||||
"jembadb": {
|
||||
"version": "5.1.5",
|
||||
"resolved": "https://registry.npmjs.org/jembadb/-/jembadb-5.1.5.tgz",
|
||||
"integrity": "sha512-Vb+TkTg3JVXLPTG5BiqboZjJ2wvZRONnLd2+qU4gTuaqt2JSniigbniKSl3kACAEFfuRXEjfs9dLlKWjBX2Aiw=="
|
||||
"version": "5.1.7",
|
||||
"resolved": "https://registry.npmjs.org/jembadb/-/jembadb-5.1.7.tgz",
|
||||
"integrity": "sha512-TNZjiKQ7Zfh89Q1x25PKKtsbkxiC5uOnx953dxJEP6RqfcdR6uVpr4cf+kmyq6IQ1GhwhXTELnoTIdvLWrpEvw=="
|
||||
},
|
||||
"jest-util": {
|
||||
"version": "29.3.1",
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
"fs-extra": "^10.1.0",
|
||||
"he": "^1.2.0",
|
||||
"iconv-lite": "^0.6.3",
|
||||
"jembadb": "^5.1.5",
|
||||
"jembadb": "^5.1.7",
|
||||
"localforage": "^1.10.0",
|
||||
"lodash": "^4.17.21",
|
||||
"minimist": "^1.2.7",
|
||||
|
||||
@@ -24,6 +24,7 @@ class JembaReaderStorage {
|
||||
|
||||
getCache(id) {
|
||||
const obj = this.cacheMap.get(id);
|
||||
//обновляем время доступа и при чтении тоже
|
||||
if (obj)
|
||||
obj.time = Date.now();
|
||||
return obj;
|
||||
@@ -118,6 +119,7 @@ class JembaReaderStorage {
|
||||
//identity необходимо для работы при нестабильной связи,
|
||||
//одному и тому же клиенту разрешается перезаписывать данные при расхождении на 0 или 1 ревизию
|
||||
const obj = this.getCache(id) || {};
|
||||
const oldIdentity = obj.identity;
|
||||
const sameClient = (identity && obj.identity === identity);
|
||||
if (identity && obj.identity !== identity) {
|
||||
obj.identity = identity;
|
||||
@@ -126,8 +128,12 @@ class JembaReaderStorage {
|
||||
|
||||
const revDiff = items[id].rev - check.items[id].rev;
|
||||
const allowUpdate = force || revDiff === 1 || (sameClient && (revDiff === 0 || revDiff === 1));
|
||||
if (!allowUpdate)
|
||||
|
||||
if (!allowUpdate) {
|
||||
log(LM_ERR, `JembaReaderStorage-Reject: revDiff: ${revDiff}, sameClient: ${sameClient}, oldIdentity: ${oldIdentity}, identity: ${identity}`);
|
||||
|
||||
return {state: 'reject', items: check.items};
|
||||
}
|
||||
}
|
||||
|
||||
const db = this.db;
|
||||
|
||||
Reference in New Issue
Block a user