Extract stable serialization infrastructure into VG-Core
Dieser Commit ist enthalten in:
@@ -27,6 +27,7 @@
|
|||||||
"src/background/gvl/gvl-catalog-normalizer.js",
|
"src/background/gvl/gvl-catalog-normalizer.js",
|
||||||
"src/background/db/db-retention.js",
|
"src/background/db/db-retention.js",
|
||||||
"src/background/db/db-record-locks.js",
|
"src/background/db/db-record-locks.js",
|
||||||
|
"src/core/stable-serialize.js",
|
||||||
"src/background/utils.js",
|
"src/background/utils.js",
|
||||||
"src/core/settings-storage.js",
|
"src/core/settings-storage.js",
|
||||||
"src/background/settings.js",
|
"src/background/settings.js",
|
||||||
|
|||||||
@@ -7,24 +7,3 @@ async function sha256Hex(input) {
|
|||||||
.map((byte) => byte.toString(16).padStart(2, "0"))
|
.map((byte) => byte.toString(16).padStart(2, "0"))
|
||||||
.join("");
|
.join("");
|
||||||
}
|
}
|
||||||
|
|
||||||
function stableStringify(value) {
|
|
||||||
return JSON.stringify(sortObjectKeys(value));
|
|
||||||
}
|
|
||||||
|
|
||||||
function sortObjectKeys(value) {
|
|
||||||
if (Array.isArray(value)) {
|
|
||||||
return value.map(sortObjectKeys);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (value && typeof value === "object") {
|
|
||||||
return Object.keys(value)
|
|
||||||
.sort()
|
|
||||||
.reduce((result, key) => {
|
|
||||||
result[key] = sortObjectKeys(value[key]);
|
|
||||||
return result;
|
|
||||||
}, {});
|
|
||||||
}
|
|
||||||
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -0,0 +1,20 @@
|
|||||||
|
function stableStringify(value) {
|
||||||
|
return JSON.stringify(sortObjectKeys(value));
|
||||||
|
}
|
||||||
|
|
||||||
|
function sortObjectKeys(value) {
|
||||||
|
if (Array.isArray(value)) {
|
||||||
|
return value.map(sortObjectKeys);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (value && typeof value === "object") {
|
||||||
|
return Object.keys(value)
|
||||||
|
.sort()
|
||||||
|
.reduce((result, key) => {
|
||||||
|
result[key] = sortObjectKeys(value[key]);
|
||||||
|
return result;
|
||||||
|
}, {});
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
In neuem Issue referenzieren
Einen Benutzer sperren