Merge branch 'release/1.1.2-1'

This commit is contained in:
Book Pauk
2023-01-25 17:06:35 +07:00
3 changed files with 15 additions and 9 deletions

14
package-lock.json generated
View File

@@ -22,7 +22,7 @@
"fs-extra": "^10.1.0", "fs-extra": "^10.1.0",
"he": "^1.2.0", "he": "^1.2.0",
"iconv-lite": "^0.6.3", "iconv-lite": "^0.6.3",
"jembadb": "^5.1.5", "jembadb": "^5.1.7",
"localforage": "^1.10.0", "localforage": "^1.10.0",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"minimist": "^1.2.7", "minimist": "^1.2.7",
@@ -5989,9 +5989,9 @@
} }
}, },
"node_modules/jembadb": { "node_modules/jembadb": {
"version": "5.1.5", "version": "5.1.7",
"resolved": "https://registry.npmjs.org/jembadb/-/jembadb-5.1.5.tgz", "resolved": "https://registry.npmjs.org/jembadb/-/jembadb-5.1.7.tgz",
"integrity": "sha512-Vb+TkTg3JVXLPTG5BiqboZjJ2wvZRONnLd2+qU4gTuaqt2JSniigbniKSl3kACAEFfuRXEjfs9dLlKWjBX2Aiw==", "integrity": "sha512-TNZjiKQ7Zfh89Q1x25PKKtsbkxiC5uOnx953dxJEP6RqfcdR6uVpr4cf+kmyq6IQ1GhwhXTELnoTIdvLWrpEvw==",
"engines": { "engines": {
"node": ">=16.16.0" "node": ">=16.16.0"
} }
@@ -15154,9 +15154,9 @@
} }
}, },
"jembadb": { "jembadb": {
"version": "5.1.5", "version": "5.1.7",
"resolved": "https://registry.npmjs.org/jembadb/-/jembadb-5.1.5.tgz", "resolved": "https://registry.npmjs.org/jembadb/-/jembadb-5.1.7.tgz",
"integrity": "sha512-Vb+TkTg3JVXLPTG5BiqboZjJ2wvZRONnLd2+qU4gTuaqt2JSniigbniKSl3kACAEFfuRXEjfs9dLlKWjBX2Aiw==" "integrity": "sha512-TNZjiKQ7Zfh89Q1x25PKKtsbkxiC5uOnx953dxJEP6RqfcdR6uVpr4cf+kmyq6IQ1GhwhXTELnoTIdvLWrpEvw=="
}, },
"jest-util": { "jest-util": {
"version": "29.3.1", "version": "29.3.1",

View File

@@ -65,7 +65,7 @@
"fs-extra": "^10.1.0", "fs-extra": "^10.1.0",
"he": "^1.2.0", "he": "^1.2.0",
"iconv-lite": "^0.6.3", "iconv-lite": "^0.6.3",
"jembadb": "^5.1.5", "jembadb": "^5.1.7",
"localforage": "^1.10.0", "localforage": "^1.10.0",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"minimist": "^1.2.7", "minimist": "^1.2.7",

View File

@@ -24,6 +24,7 @@ class JembaReaderStorage {
getCache(id) { getCache(id) {
const obj = this.cacheMap.get(id); const obj = this.cacheMap.get(id);
//обновляем время доступа и при чтении тоже
if (obj) if (obj)
obj.time = Date.now(); obj.time = Date.now();
return obj; return obj;
@@ -118,6 +119,7 @@ class JembaReaderStorage {
//identity необходимо для работы при нестабильной связи, //identity необходимо для работы при нестабильной связи,
//одному и тому же клиенту разрешается перезаписывать данные при расхождении на 0 или 1 ревизию //одному и тому же клиенту разрешается перезаписывать данные при расхождении на 0 или 1 ревизию
const obj = this.getCache(id) || {}; const obj = this.getCache(id) || {};
const oldIdentity = obj.identity;
const sameClient = (identity && obj.identity === identity); const sameClient = (identity && obj.identity === identity);
if (identity && obj.identity !== identity) { if (identity && obj.identity !== identity) {
obj.identity = identity; obj.identity = identity;
@@ -126,8 +128,12 @@ class JembaReaderStorage {
const revDiff = items[id].rev - check.items[id].rev; const revDiff = items[id].rev - check.items[id].rev;
const allowUpdate = force || revDiff === 1 || (sameClient && (revDiff === 0 || revDiff === 1)); 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}; return {state: 'reject', items: check.items};
}
} }
const db = this.db; const db = this.db;