@gudhub/core 1.0.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/GUDHUB/Auth/Auth.js +137 -0
- package/GUDHUB/Auth/Auth.test.js +15 -0
- package/GUDHUB/Managers/ChunksManager/ChunksManager.js +80 -0
- package/GUDHUB/Managers/ChunksManager/ChunksManager.test.js +46 -0
- package/GUDHUB/Managers/DocumentManager/DocumentManager.js +48 -0
- package/GUDHUB/Managers/FileManager/FileManager.js +208 -0
- package/GUDHUB/Managers/FileManager/file_manager.test.js +17 -0
- package/GUDHUB/Managers/managers.js +5 -0
- package/GUDHUB/PipeService/PipeService.js +167 -0
- package/GUDHUB/PipeService/PipeService.test.js +64 -0
- package/GUDHUB/PipeService/utils.js +32 -0
- package/GUDHUB/Processors/AppProcessor/AppProcessor.js +433 -0
- package/GUDHUB/Processors/AppProcessor/AppProcessor.test.js +38 -0
- package/GUDHUB/Processors/AppProcessor/AppProcessorMocks.js +83 -0
- package/GUDHUB/Processors/FieldProcessor/FieldProcessor.js +139 -0
- package/GUDHUB/Processors/FieldProcessor/FieldProcessor.test.js +16 -0
- package/GUDHUB/Processors/FieldProcessor/Untitled-1.json +17 -0
- package/GUDHUB/Processors/FieldProcessor/field_processor.md +85 -0
- package/GUDHUB/Processors/ItemProcessor/ItemProcessor.js +247 -0
- package/GUDHUB/Processors/ItemProcessor/item_processor.md +50 -0
- package/GUDHUB/Processors/processors.js +5 -0
- package/GUDHUB/Storage/Storage.js +115 -0
- package/GUDHUB/Storage/Storage.test.js +112 -0
- package/GUDHUB/Utils/Utils.js +153 -0
- package/GUDHUB/Utils/compare_items_lists_worker/compare_items_lists.worker.js +50 -0
- package/GUDHUB/Utils/filter/filter.js +308 -0
- package/GUDHUB/Utils/filter/filter.test.js +94 -0
- package/GUDHUB/Utils/filter/filterPreparation.js +103 -0
- package/GUDHUB/Utils/filter/group.js +41 -0
- package/GUDHUB/Utils/filter/utils.js +119 -0
- package/GUDHUB/Utils/get_date/get_date.js +90 -0
- package/GUDHUB/Utils/get_date/get_date.test.js +53 -0
- package/GUDHUB/Utils/interpretation/interpretation.js +100 -0
- package/GUDHUB/Utils/json_constructor/json_constructor.js +130 -0
- package/GUDHUB/Utils/json_constructor/json_constructor.test.js +70 -0
- package/GUDHUB/Utils/json_to_items/json_to_items.js +161 -0
- package/GUDHUB/Utils/json_to_items/json_to_items.test.js +85 -0
- package/GUDHUB/Utils/merge_chunks/merge_chunks.js +30 -0
- package/GUDHUB/Utils/merge_compare_items/merge_compare_items.js +316 -0
- package/GUDHUB/Utils/merge_compare_items/merge_compare_items.test.js +632 -0
- package/GUDHUB/Utils/merge_objects/merge_objects.js +120 -0
- package/GUDHUB/Utils/merge_objects/merge_objects.test.js +137 -0
- package/GUDHUB/Utils/nested_list/nested_list.js +38 -0
- package/GUDHUB/Utils/nested_list/nested_list.test.js +70 -0
- package/GUDHUB/Utils/populate_items/populate_items.js +66 -0
- package/GUDHUB/WebSocket/WebSocket.js +136 -0
- package/GUDHUB/config.js +8 -0
- package/GUDHUB/consts.js +1 -0
- package/GUDHUB/gudhub-https-service.js +193 -0
- package/GUDHUB/gudhub.js +477 -0
- package/GUDHUB/gudhub.test.js +218 -0
- package/GUDHUB/utils.js +25 -0
- package/Readme.md +537 -0
- package/fake_server/fake_java_server.js +112 -0
- package/fake_server/fake_server_data/app_132.js +3037 -0
- package/fake_server/fake_server_data/app_16259.js +1152 -0
- package/fake_server/fake_server_data/app_214.js +2057 -0
- package/fake_server/fake_server_data/app_8263.js +4167 -0
- package/fake_server/fake_server_data/chunks_mocks/bcacjbgqorherqmtykrj_8263.js +44561 -0
- package/fake_server/fake_server_data/chunks_mocks/bcjyuoqaewybudfyhir_8263.js +44197 -0
- package/fake_server/fake_server_data/chunks_mocks/tpajkpolmzklodcba_8263.js +44977 -0
- package/fake_server/fake_server_data/fake_server_data.js +111 -0
- package/index.js +3 -0
- package/indexUMD.js +5 -0
- package/package.json +45 -0
- package/umd/library.min.js +186 -0
- package/umd/library.min.js.map +1 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
export class Storage {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.apps_list = [];
|
|
4
|
+
this.users_list = [];
|
|
5
|
+
this.user = {};
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
getMainStorage() {
|
|
9
|
+
return this;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
getAppsList() {
|
|
13
|
+
return this.apps_list;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
getUser() {
|
|
17
|
+
return this.user;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
getUsersList() {
|
|
21
|
+
return this.users_list;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
//!!!!!!!!!!!!!!******** All Methods below should be moved to AppProcesor and Auth **********!!!!!!!!!!!!!!!!//
|
|
25
|
+
setUser(user) {
|
|
26
|
+
this.user = user;
|
|
27
|
+
this.users_list.push(user);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
updateUser(user = {}) {
|
|
31
|
+
if (user.avatar_128) {
|
|
32
|
+
user.avatar_128 = user.avatar_128 + "?" + new Date().getTime();
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
if (user.avatar_512) {
|
|
36
|
+
user.avatar_512 = user.avatar_512 + "?" + new Date().getTime();
|
|
37
|
+
}
|
|
38
|
+
this.user = { ...this.user, ...user };
|
|
39
|
+
this.users_list = this.users_list.filter(
|
|
40
|
+
(oldUser) => oldUser.user_id != user.user_id
|
|
41
|
+
);
|
|
42
|
+
this.users_list.push(this.user);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
unsetUser() {
|
|
47
|
+
this.user = {};
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
getApp(app_id) {
|
|
52
|
+
return this.apps_list.find((app) => app.app_id == app_id);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
unsetApps() {
|
|
56
|
+
this.apps_list = [];
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// addApp(app) {
|
|
60
|
+
// this.apps_list.push(app);
|
|
61
|
+
// return this.apps_list;
|
|
62
|
+
// }
|
|
63
|
+
|
|
64
|
+
updateApp(newApp) {
|
|
65
|
+
this.apps_list = this.apps_list.map((app) =>
|
|
66
|
+
app.app_id == newApp.app_id ? newApp : app
|
|
67
|
+
);
|
|
68
|
+
return this.apps_list;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
deleteApp(app_id) {
|
|
72
|
+
this.apps_list = this.apps_list.filter((app) => app.app_id != app_id);
|
|
73
|
+
return this.apps_list;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
async updateItemsInApp(itemsToUpdate, app_id) {
|
|
77
|
+
const appToUpdate = await this.getApp(app_id);
|
|
78
|
+
if (appToUpdate) {
|
|
79
|
+
appToUpdate.items_list = updateItems(
|
|
80
|
+
itemsToUpdate,
|
|
81
|
+
appToUpdate.items_list,
|
|
82
|
+
this.pipeService.emit.bind(this.pipeService),
|
|
83
|
+
app_id
|
|
84
|
+
);
|
|
85
|
+
this.updateApp(appToUpdate);
|
|
86
|
+
}
|
|
87
|
+
return appToUpdate;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
async addItemsToApp(items, app_id) {
|
|
91
|
+
const appToUpdate = await this.getApp(app_id);
|
|
92
|
+
if (appToUpdate) {
|
|
93
|
+
appToUpdate.items_list.push(...items);
|
|
94
|
+
|
|
95
|
+
this.updateApp(appToUpdate);
|
|
96
|
+
this.pipeService.emit("gh_items_update", { app_id }, items);
|
|
97
|
+
}
|
|
98
|
+
return appToUpdate;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
async deleteItemsInApp(itemsToDelete, app_id) {
|
|
102
|
+
const appToUpdate = await this.getApp(app_id);
|
|
103
|
+
if (appToUpdate) {
|
|
104
|
+
appToUpdate.items_list = appToUpdate.items_list.filter(
|
|
105
|
+
(item) =>
|
|
106
|
+
!itemsToDelete.find(
|
|
107
|
+
(itemToDelete) => itemToDelete.item_id == item.item_id
|
|
108
|
+
)
|
|
109
|
+
);
|
|
110
|
+
this.updateApp(appToUpdate);
|
|
111
|
+
}
|
|
112
|
+
return appToUpdate;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import should from "should";
|
|
2
|
+
import { PipeService } from "../PipeService/PipeService.js";
|
|
3
|
+
import { app_132 } from "../../fake_server/fake_server_data/app_132.js";
|
|
4
|
+
import {GudHub} from './../gudhub.js';
|
|
5
|
+
|
|
6
|
+
describe("STORAGE", () => {
|
|
7
|
+
const gudhub = new GudHub()
|
|
8
|
+
const appId = 132;
|
|
9
|
+
const itemId = 79977;
|
|
10
|
+
const fieldId = 179840;
|
|
11
|
+
|
|
12
|
+
// it("Add new app to storage and get all apps", () => {
|
|
13
|
+
// //gudhub.storage.addApp(app_132);
|
|
14
|
+
// //gudhub.storage.getAppsList().length.should.equal(1);
|
|
15
|
+
// });
|
|
16
|
+
|
|
17
|
+
// it("Get app by id", () => {
|
|
18
|
+
// //gudhub.storage.getApp(appId).should.not.undefined();
|
|
19
|
+
// });
|
|
20
|
+
|
|
21
|
+
// it("Delete app from storage", () => {
|
|
22
|
+
// //gudhub.storage.deleteApp(appId);
|
|
23
|
+
// //gudhub.storage.getAppsList().length.should.equal(0);
|
|
24
|
+
// });
|
|
25
|
+
|
|
26
|
+
// it("Update items in app", () => {
|
|
27
|
+
// storage.addApp(app_132);
|
|
28
|
+
|
|
29
|
+
// const newItem = {
|
|
30
|
+
// item_id: itemId,
|
|
31
|
+
// fields: [
|
|
32
|
+
// {
|
|
33
|
+
// field_id: fieldId,
|
|
34
|
+
// field_value: "test",
|
|
35
|
+
// },
|
|
36
|
+
// ],
|
|
37
|
+
// };
|
|
38
|
+
// storage.updateItemsInApp([newItem], appId);
|
|
39
|
+
// const changedApp = storage.getApp(appId);
|
|
40
|
+
// const changedItem = changedApp.items_list.find(
|
|
41
|
+
// (item) => item.item_id == itemId
|
|
42
|
+
// );
|
|
43
|
+
// const changedField = changedItem.fields.find(
|
|
44
|
+
// (field) => field.field_id == fieldId
|
|
45
|
+
// );
|
|
46
|
+
// changedField.field_value.should.equal("test");
|
|
47
|
+
// });
|
|
48
|
+
|
|
49
|
+
// it("Update items and listen item update ", () => {
|
|
50
|
+
// storage.pipeService.on(
|
|
51
|
+
// "gh_item_update",
|
|
52
|
+
// { app_id: appId, item_id: itemId },
|
|
53
|
+
// (event, item) => {
|
|
54
|
+
// item.item_id.should.equal(itemId);
|
|
55
|
+
// }
|
|
56
|
+
// );
|
|
57
|
+
// const newItem = {
|
|
58
|
+
// item_id: itemId,
|
|
59
|
+
// fields: [
|
|
60
|
+
// {
|
|
61
|
+
// field_id: fieldId,
|
|
62
|
+
// field_value: "update",
|
|
63
|
+
// },
|
|
64
|
+
// ],
|
|
65
|
+
// };
|
|
66
|
+
// storage.addApp(app_132);
|
|
67
|
+
// storage.updateItemsInApp([newItem], appId);
|
|
68
|
+
// });
|
|
69
|
+
|
|
70
|
+
// it("Update item and listen field update", () => {
|
|
71
|
+
// storage.pipeService.on(
|
|
72
|
+
// "gh_field_update",
|
|
73
|
+
// { app_id: appId, item_id: itemId, field_id: fieldId },
|
|
74
|
+
// (event, field_value) => {
|
|
75
|
+
// field_value.should.equal("value updated");
|
|
76
|
+
// }
|
|
77
|
+
// );
|
|
78
|
+
// const newItem = {
|
|
79
|
+
// item_id: itemId,
|
|
80
|
+
// fields: [
|
|
81
|
+
// {
|
|
82
|
+
// field_id: fieldId,
|
|
83
|
+
// field_value: "value updated",
|
|
84
|
+
// },
|
|
85
|
+
// ],
|
|
86
|
+
// };
|
|
87
|
+
// storage.addApp(app_132);
|
|
88
|
+
// storage.updateItemsInApp([newItem], appId);
|
|
89
|
+
// });
|
|
90
|
+
|
|
91
|
+
// it("Add items to app and listen event for adding items", () => {
|
|
92
|
+
// const newItemId = 121323123;
|
|
93
|
+
// storage.pipeService.on(
|
|
94
|
+
// "gh_items_update",
|
|
95
|
+
// { app_id: appId },
|
|
96
|
+
// (event, items) => {
|
|
97
|
+
// items[0].item_id.should.equal(newItemId);
|
|
98
|
+
// }
|
|
99
|
+
// );
|
|
100
|
+
// const newItem = {
|
|
101
|
+
// item_id: newItemId,
|
|
102
|
+
// fields: [
|
|
103
|
+
// {
|
|
104
|
+
// field_id: 12,
|
|
105
|
+
// field_value: "value updated",
|
|
106
|
+
// },
|
|
107
|
+
// ],
|
|
108
|
+
// };
|
|
109
|
+
// storage.addApp(app_132);
|
|
110
|
+
// storage.addItemsToApp([newItem], appId);
|
|
111
|
+
// });
|
|
112
|
+
});
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { filterPreparation } from "./filter/filterPreparation.js";
|
|
2
|
+
import filter from "./filter/filter.js";
|
|
3
|
+
import { jsonToItems } from "./json_to_items/json_to_items.js";
|
|
4
|
+
import {
|
|
5
|
+
mergeItems,
|
|
6
|
+
compareItems,
|
|
7
|
+
populateWithItemRef,
|
|
8
|
+
} from "./merge_compare_items/merge_compare_items.js";
|
|
9
|
+
import { group } from "./filter/group.js";
|
|
10
|
+
import { searchValue } from "./filter/utils.js";
|
|
11
|
+
import populateItems from "./populate_items/populate_items.js";
|
|
12
|
+
import { populateWithDate, getDate } from "./get_date/get_date.js";
|
|
13
|
+
import { mergeObjects } from "./merge_objects/merge_objects.js";
|
|
14
|
+
import { mergeChunks } from "./merge_chunks/merge_chunks.js";
|
|
15
|
+
import { getInterpretedValue } from "./interpretation/interpretation.js";
|
|
16
|
+
import { makeNestedList } from "./nested_list/nested_list.js";
|
|
17
|
+
|
|
18
|
+
import { compare_items_lists_Worker } from "./compare_items_lists_worker/compare_items_lists.worker.js";
|
|
19
|
+
import { compiler } from "./json_constructor/json_constructor.js";
|
|
20
|
+
|
|
21
|
+
export class Utils {
|
|
22
|
+
constructor(gudhub) {
|
|
23
|
+
this.gudhub = gudhub
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
prefilter(filters_list, element_app_id, app_id, item_id, variables = []) {
|
|
27
|
+
return filterPreparation(
|
|
28
|
+
filters_list,
|
|
29
|
+
element_app_id,
|
|
30
|
+
app_id,
|
|
31
|
+
item_id,
|
|
32
|
+
this.gudhub.storage,
|
|
33
|
+
this.gudhub.pipeService,
|
|
34
|
+
variables
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
filter(items, filter_list) {
|
|
39
|
+
return filter(items, filter_list);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
group(fieldGroup, items) {
|
|
43
|
+
return group(fieldGroup, items);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
async getFilteredItems(
|
|
47
|
+
items = [],
|
|
48
|
+
filters_list = [],
|
|
49
|
+
element_app_id,
|
|
50
|
+
app_id,
|
|
51
|
+
item_id,
|
|
52
|
+
field_group = "",
|
|
53
|
+
search,
|
|
54
|
+
search_params
|
|
55
|
+
) {
|
|
56
|
+
const modified_filters_list = await this.prefilter(
|
|
57
|
+
filters_list,
|
|
58
|
+
element_app_id,
|
|
59
|
+
app_id,
|
|
60
|
+
item_id
|
|
61
|
+
);
|
|
62
|
+
const itemsList = this.filter(items, [
|
|
63
|
+
...filters_list,
|
|
64
|
+
...modified_filters_list,
|
|
65
|
+
]);
|
|
66
|
+
const newItems = this.group(field_group, itemsList);
|
|
67
|
+
return newItems
|
|
68
|
+
.filter((newItem) => {
|
|
69
|
+
if (search) {
|
|
70
|
+
return searchValue([newItem], search).length === 1;
|
|
71
|
+
} else return true;
|
|
72
|
+
})
|
|
73
|
+
.filter((newItem) => {
|
|
74
|
+
if (search_params) {
|
|
75
|
+
return searchValue([newItem], search_params).length === 1;
|
|
76
|
+
} else return true;
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
jsonToItems(json, map) {
|
|
81
|
+
return jsonToItems(json, map);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
getDate(queryKey) {
|
|
85
|
+
return getDate(queryKey);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
populateItems(items, model, keep_data) {
|
|
89
|
+
return populateItems(items, model, keep_data);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
getInterpretedValue(app_id, item_id, field_id) {
|
|
93
|
+
return getInterpretedValue(this.gudhub, app_id, item_id, field_id);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
populateWithDate(items, model) {
|
|
97
|
+
return populateWithDate(items, model);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
populateWithItemRef(
|
|
101
|
+
sourceItemsRef,
|
|
102
|
+
srcFieldIdToCompare,
|
|
103
|
+
destinationItems,
|
|
104
|
+
destFieldIdToCompare,
|
|
105
|
+
destFieldForRef,
|
|
106
|
+
app_id
|
|
107
|
+
) {
|
|
108
|
+
return populateWithItemRef(
|
|
109
|
+
sourceItemsRef,
|
|
110
|
+
srcFieldIdToCompare,
|
|
111
|
+
destinationItems,
|
|
112
|
+
destFieldIdToCompare,
|
|
113
|
+
destFieldForRef,
|
|
114
|
+
app_id
|
|
115
|
+
);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
compareItems(sourceItems, destinationItems, fieldToCompare) {
|
|
119
|
+
return compareItems(sourceItems, destinationItems, fieldToCompare);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
mergeItems(sourceItems, destinationItems, mergeByFieldId) {
|
|
123
|
+
return mergeItems(sourceItems, destinationItems, mergeByFieldId);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
mergeObjects(target, source, optionsArgument) {
|
|
127
|
+
return mergeObjects(target, source, optionsArgument);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
makeNestedList(arr, id, parent_id, children_property) {
|
|
131
|
+
return makeNestedList(arr, id, parent_id, children_property);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
mergeChunks(chunks) {
|
|
135
|
+
return mergeChunks(chunks);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
jsonConstructor(scheme, items, variables){
|
|
139
|
+
return compiler(scheme, items, this, variables)
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
compareAppsItemsLists(items_list1, items_list2, callback) {
|
|
143
|
+
const chunkWorkerBlob = new Blob([compare_items_lists_Worker()], {
|
|
144
|
+
type: "application/javascript",
|
|
145
|
+
});
|
|
146
|
+
this.worker = new Worker(URL.createObjectURL(chunkWorkerBlob));
|
|
147
|
+
this.worker.postMessage({ items_list1, items_list2 });
|
|
148
|
+
this.worker.addEventListener("message", (event) => {
|
|
149
|
+
const { diff } = event.data;
|
|
150
|
+
callback(diff);
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export function compare_items_lists_Worker() {
|
|
2
|
+
return `function compareItemsLists(items_list1 = [], items_list2 = []) {
|
|
3
|
+
const diff_fields_items = {};
|
|
4
|
+
const diff_fields_items_Ids = []
|
|
5
|
+
|
|
6
|
+
items_list1.forEach((item1) => {
|
|
7
|
+
const sameItem = items_list2.find(
|
|
8
|
+
(item2) => Number(item2.item_id) === Number(item1.item_id)
|
|
9
|
+
);
|
|
10
|
+
|
|
11
|
+
if (!sameItem) {
|
|
12
|
+
diff_fields_items_Ids.push(item1.item_id)
|
|
13
|
+
return diff_fields_items[item1.item_id] = [...item1.fields];
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
item1.fields.forEach((field1) => {
|
|
17
|
+
const sameField = sameItem.fields.find(
|
|
18
|
+
(field2) => Number(field2.field_id) === Number(field1.field_id)
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
if (!sameField) {
|
|
22
|
+
if (!diff_fields_items[item1.item_id]) {
|
|
23
|
+
diff_fields_items[item1.item_id] = []
|
|
24
|
+
diff_fields_items_Ids.push(item1.item_id)
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
return diff_fields_items[item1.item_id].push(field1);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
if (field1.field_value != sameField.field_value) {
|
|
31
|
+
if (!diff_fields_items[item1.item_id]) {
|
|
32
|
+
diff_fields_items[item1.item_id] = []
|
|
33
|
+
diff_fields_items_Ids.push(item1.item_id)
|
|
34
|
+
};
|
|
35
|
+
return diff_fields_items[item1.item_id].push(field1);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
return;
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
return {diff_fields_items,diff_fields_items_Ids, diff_items: items_list1.filter(item => diff_fields_items_Ids.includes(item.item_id)) };
|
|
43
|
+
}
|
|
44
|
+
self.addEventListener("message", (event) => {
|
|
45
|
+
const { items_list1, items_list2 } = event.data;
|
|
46
|
+
|
|
47
|
+
const diff = compareItemsLists(items_list1, items_list2);
|
|
48
|
+
self.postMessage({ diff });
|
|
49
|
+
});`;
|
|
50
|
+
}
|