-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcommon.js
More file actions
36 lines (36 loc) · 1.04 KB
/
Copy pathcommon.js
File metadata and controls
36 lines (36 loc) · 1.04 KB
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
34
35
36
export function copyProperties(item, dataItem, copyProps, ignore = [], overwrite = false) {
for (let column of copyProps) {
if (typeof column === 'string') {
column = {name: column, merge: [column]}
}
if (ignore.includes(column.name)) {
continue
}
if (column.merge) {
for (const key of column.merge) {
if (!(key in dataItem)) {
continue
}
if (column.name in item && item[column.name] !== dataItem[key] && !overwrite) {
console.log('different value for', item.CodeName, column.name, item[column.name], dataItem[key], ignore)
}
else {
item[column.name] = dataItem[key]
}
delete dataItem[key]
}
continue
}
if (!(column.name in dataItem)) {
continue
}
const value = dataItem[column.name]
if (column.replace) {
item[column.name] = value.replace(column.replace[0], column.replace[1])
}
else if (column.function) {
column.function(item, value)
}
delete dataItem[column.name]
}
}