blob: 2c3c2d3483f7869f5db42bae2724520b3df923e2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
const { h64 } = require('xxhashjs');
function withId(obj, fields, extraData)
{
const result = {};
for (const field of fields) {
result[field] = obj[field];
}
if (extraData) {
result.__extraData = extraData;
}
return {
id: h64(JSON.stringify(result), 0).toString(16),
...obj
};
}
function checkDuplicates(objs)
{
for (const obj of objs) {
const duplicates = objs.filter(o => o.id === obj.id);
if (duplicates.length > 1) {
duplicates.forEach((d, i) => d.id = d.id.substring(0, d.id.length - 1) + i);
}
}
return objs;
}
module.exports = { withId, checkDuplicates };
|