@gudhub/core 1.1.56 → 1.1.58
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/Storage/ModulesList.js +2 -2
- package/GUDHUB/Utils/AppsTemplateService/AppsTemplateService.js +63 -60
- package/GUDHUB/Utils/Utils.js +5 -0
- package/GUDHUB/Utils/dynamicPromiseAll/dynamicPromiseAll.js +49 -0
- package/GUDHUB/Utils/json_constructor/json_constructor.js +3 -3
- package/package.json +1 -1
- package/umd/library.min.js +7 -5
- package/umd/library.min.js.map +1 -1
|
@@ -886,8 +886,8 @@ export default function generateModulesList(async_modules_path, file_server_url,
|
|
|
886
886
|
data_type: 'cron_picker',
|
|
887
887
|
name: 'Cron Picker',
|
|
888
888
|
icon: 'table',
|
|
889
|
-
js: 'https://gudhub.com/modules/Cron-Picker/dist/main.js',
|
|
890
|
-
css: 'https://gudhub.com/modules/Cron-Picker/dist/style.css',
|
|
889
|
+
js: 'https://gudhub.com/modules/Cron-Picker/dist/main.js?t=1',
|
|
890
|
+
css: 'https://gudhub.com/modules/Cron-Picker/dist/style.css?t=1',
|
|
891
891
|
type: 'gh_element',
|
|
892
892
|
technology: 'class'
|
|
893
893
|
},
|
|
@@ -17,26 +17,25 @@ export default class AppsTemplateService {
|
|
|
17
17
|
let currentStep = 0;
|
|
18
18
|
self.createApps(pack, (status) => {
|
|
19
19
|
currentStep += 1;
|
|
20
|
-
progressCallback.call(this, {
|
|
20
|
+
progressCallback ? progressCallback.call(this, {
|
|
21
21
|
percent: currentStep * stepPercents,
|
|
22
22
|
status
|
|
23
|
-
})
|
|
23
|
+
}) : null;
|
|
24
24
|
}).then(success => {
|
|
25
25
|
self.createItems(success, maxNumberOfInsstalledItems, (status) => {
|
|
26
26
|
if (typeof status === 'string') {
|
|
27
27
|
currentStep += 1;
|
|
28
|
-
progressCallback.call(this, {
|
|
28
|
+
progressCallback ? progressCallback.call(this, {
|
|
29
29
|
percent: currentStep * stepPercents,
|
|
30
30
|
status
|
|
31
|
-
})
|
|
31
|
+
}) : null;
|
|
32
32
|
} else if (typeof status === 'object') {
|
|
33
|
-
progressCallback.call(this, {
|
|
33
|
+
progressCallback ? progressCallback.call(this, {
|
|
34
34
|
status: 'Done',
|
|
35
35
|
apps: status
|
|
36
|
-
})
|
|
36
|
+
}) : null;
|
|
37
|
+
resolve();
|
|
37
38
|
}
|
|
38
|
-
}).then(() => {
|
|
39
|
-
resolve();
|
|
40
39
|
})
|
|
41
40
|
})
|
|
42
41
|
});
|
|
@@ -61,64 +60,64 @@ export default class AppsTemplateService {
|
|
|
61
60
|
fields: []
|
|
62
61
|
}
|
|
63
62
|
}).filter((item, index) => index <= MAX_NUMBER_OF_INSTALLED_ITEMS);
|
|
64
|
-
|
|
65
63
|
self.gudhub.addNewItems(app.app_id, items).then(items => {
|
|
66
64
|
callback ? callback.call(this, `ADD NEW ITEMS: ${result_app.app_name} (Items steps)`) : null;
|
|
67
65
|
|
|
68
|
-
if (items.length === 0) {
|
|
69
|
-
callback ? callback.call(this, `NO ITEMS TO REPLACE VALUE: ${result_app.app_name} (Items steps)`) : null;
|
|
70
|
-
app_resolve();
|
|
71
|
-
}
|
|
72
|
-
|
|
73
66
|
app.items_list = items;
|
|
74
67
|
self._updateMap(app.items_list, source_app.items_list);
|
|
75
68
|
self._addFieldValue(source_app.items_list, app.items_list, self.appsConnectingMap);
|
|
76
69
|
|
|
77
70
|
createsItems.push(app);
|
|
78
71
|
|
|
79
|
-
|
|
80
|
-
createsItems.forEach(app => {
|
|
81
|
-
app.items_list.forEach(item => {
|
|
82
|
-
item.fields.forEach(field_item => {
|
|
83
|
-
self.appsConnectingMap.fields.forEach(field_map => {
|
|
84
|
-
if (field_item.field_id === field_map.old_field_id) {
|
|
85
|
-
field_item.field_id = field_map.new_field_id;
|
|
86
|
-
field_item.element_id = field_map.new_field_id;
|
|
87
|
-
}
|
|
88
|
-
})
|
|
89
|
-
})
|
|
90
|
-
})
|
|
91
|
-
});
|
|
92
|
-
|
|
93
|
-
self.deleteField(createsItems);
|
|
94
|
-
|
|
95
|
-
self.replaceValue(createsItems, self.appsConnectingMap).then(() => {
|
|
96
|
-
callback ? callback.call(this, `REPLACE VALUE: ${result_app.app_name} (Items steps)`) : null;
|
|
97
|
-
createsItems.forEach(created_app => {
|
|
98
|
-
let newItems = created_app.items_list.map(item => {
|
|
99
|
-
item.fields.forEach(field => {
|
|
100
|
-
delete field.data_id;
|
|
101
|
-
});
|
|
102
|
-
return item;
|
|
103
|
-
});
|
|
104
|
-
|
|
105
|
-
self.gudhub.updateItems(created_app.app_id, newItems).then(() => {
|
|
106
|
-
app_resolve();
|
|
107
|
-
})
|
|
108
|
-
})
|
|
109
|
-
});
|
|
110
|
-
}
|
|
72
|
+
app_resolve();
|
|
111
73
|
});
|
|
112
74
|
});
|
|
113
75
|
}));
|
|
114
76
|
});
|
|
115
77
|
|
|
116
78
|
Promise.all(promises).then(() => {
|
|
117
|
-
|
|
118
|
-
|
|
79
|
+
|
|
80
|
+
createsItems.forEach(app => {
|
|
81
|
+
app.items_list.forEach(item => {
|
|
82
|
+
item.fields.forEach(field_item => {
|
|
83
|
+
self.appsConnectingMap.fields.forEach(field_map => {
|
|
84
|
+
if (field_item.field_id === field_map.old_field_id) {
|
|
85
|
+
field_item.field_id = field_map.new_field_id;
|
|
86
|
+
field_item.element_id = field_map.new_field_id;
|
|
87
|
+
}
|
|
88
|
+
})
|
|
89
|
+
})
|
|
90
|
+
})
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
self.deleteField(createsItems);
|
|
94
|
+
|
|
95
|
+
self.replaceValue(createsItems, self.appsConnectingMap).then(() => {
|
|
96
|
+
|
|
97
|
+
const promises = [];
|
|
98
|
+
|
|
99
|
+
createsItems.forEach(created_app => {
|
|
100
|
+
promises.push(new Promise(resolve => {
|
|
101
|
+
let newItems = created_app.items_list.map(item => {
|
|
102
|
+
item.fields.forEach(field => {
|
|
103
|
+
delete field.data_id;
|
|
104
|
+
});
|
|
105
|
+
return item;
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
self.gudhub.updateItems(created_app.app_id, newItems).then(() => {
|
|
109
|
+
callback ? callback.call(this, `REPLACE VALUE: ${created_app.app_name} (Items steps)`) : null;
|
|
110
|
+
resolve();
|
|
111
|
+
})
|
|
112
|
+
}));
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
Promise.all(promises).then(() => {
|
|
116
|
+
callback.call(this, createsItems);
|
|
117
|
+
resolve();
|
|
119
118
|
});
|
|
120
|
-
|
|
121
|
-
|
|
119
|
+
|
|
120
|
+
});
|
|
122
121
|
})
|
|
123
122
|
})
|
|
124
123
|
}
|
|
@@ -185,26 +184,30 @@ export default class AppsTemplateService {
|
|
|
185
184
|
documentInstallerHelper(appId, items, elementId) {
|
|
186
185
|
const self = this;
|
|
187
186
|
return new Promise(async (resolve) => {
|
|
188
|
-
|
|
187
|
+
for(const item of items) {
|
|
189
188
|
const itemId = item.item_id;
|
|
190
189
|
const field = item.fields.find(field => field.element_id === elementId);
|
|
191
190
|
|
|
192
191
|
if (field && field.field_value && field.field_value.length > 0) {
|
|
193
|
-
self.gudhub.getDocument({
|
|
192
|
+
const document = await self.gudhub.getDocument({
|
|
194
193
|
_id: field.field_value
|
|
195
|
-
})
|
|
196
|
-
|
|
194
|
+
});
|
|
195
|
+
|
|
196
|
+
if(document && document.data) {
|
|
197
|
+
|
|
198
|
+
const newDocument = await self.gudhub.createDocument({
|
|
197
199
|
app_id: appId,
|
|
198
200
|
item_id: itemId,
|
|
199
201
|
element_id: elementId,
|
|
200
202
|
data: document.data
|
|
201
|
-
})
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
}
|
|
203
|
+
});
|
|
204
|
+
|
|
205
|
+
field.field_value = newDocument._id;
|
|
206
|
+
|
|
207
|
+
}
|
|
206
208
|
}
|
|
207
|
-
}
|
|
209
|
+
}
|
|
210
|
+
resolve();
|
|
208
211
|
});
|
|
209
212
|
}
|
|
210
213
|
|
package/GUDHUB/Utils/Utils.js
CHANGED
|
@@ -21,6 +21,7 @@ import { compiler } from "./json_constructor/json_constructor.js";
|
|
|
21
21
|
import AppsTemplateService from "./AppsTemplateService/AppsTemplateService.js";
|
|
22
22
|
import { FileHelper } from "./FIleHelper/FileHelper.js";
|
|
23
23
|
import { compareObjects } from "./compareObjects/compareObjects.js";
|
|
24
|
+
import { dynamicPromiseAll } from "./dynamicPromiseAll/dynamicPromiseAll.js";
|
|
24
25
|
|
|
25
26
|
export class Utils {
|
|
26
27
|
constructor(gudhub) {
|
|
@@ -206,4 +207,8 @@ export class Utils {
|
|
|
206
207
|
callback(diff);
|
|
207
208
|
});
|
|
208
209
|
}
|
|
210
|
+
|
|
211
|
+
dynamicPromiseAll(promisesArray) {
|
|
212
|
+
return dynamicPromiseAll(promisesArray);
|
|
213
|
+
}
|
|
209
214
|
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export async function dynamicPromiseAll(promises) {
|
|
2
|
+
|
|
3
|
+
await Promise.all(promises);
|
|
4
|
+
|
|
5
|
+
let allDone = true;
|
|
6
|
+
|
|
7
|
+
for(const promise of promises) {
|
|
8
|
+
const result = await _checkPromiseStatus(promise);
|
|
9
|
+
if(result.state === 'pending') {
|
|
10
|
+
allDone = false;
|
|
11
|
+
break;
|
|
12
|
+
}
|
|
13
|
+
if(result.state === 'rejected') {
|
|
14
|
+
throw result.reason;
|
|
15
|
+
break;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
if(allDone) {
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return dynamicPromiseAll(promises);
|
|
24
|
+
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function _checkPromiseStatus(promise) {
|
|
28
|
+
|
|
29
|
+
const pending = {
|
|
30
|
+
state: 'pending',
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
return Promise.race([promise, pending]).then(
|
|
34
|
+
(value) => {
|
|
35
|
+
if (value === pending) {
|
|
36
|
+
return value;
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
state: 'resolved',
|
|
40
|
+
value
|
|
41
|
+
};
|
|
42
|
+
},
|
|
43
|
+
(reason) => ({
|
|
44
|
+
state: 'rejected',
|
|
45
|
+
reason
|
|
46
|
+
})
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
|
|
@@ -114,11 +114,11 @@ export function compiler(scheme, item, util, variables, appId) {
|
|
|
114
114
|
|
|
115
115
|
case "function":
|
|
116
116
|
if(typeof scheme.function === 'function') {
|
|
117
|
-
let result = scheme.function(item, appId, ...scheme.args);
|
|
117
|
+
let result = scheme.function(item, appId, util.gudhub, ...scheme.args);
|
|
118
118
|
return result;
|
|
119
119
|
} else {
|
|
120
|
-
const func = new Function('item, appId', 'return (async ' + scheme.function + ')(item, appId)');
|
|
121
|
-
let result = await func(item, appId);
|
|
120
|
+
const func = new Function('item, appId, gudhub', 'return (async ' + scheme.function + ')(item, appId, util.gudhub)');
|
|
121
|
+
let result = await func(item, appId, util.gudhub);
|
|
122
122
|
return result;
|
|
123
123
|
}
|
|
124
124
|
|