@algotech-ce/interpretor 4.1.46 → 4.1.48
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/dist/interpretor.d.ts +13 -13
- package/dist/interpretor.js +121 -142
- package/dist/interpretor.js.map +1 -1
- package/package.json +1 -1
package/dist/interpretor.d.ts
CHANGED
|
@@ -15,34 +15,34 @@ export declare class Interpretor {
|
|
|
15
15
|
protected workflowSave: InterpretorSave;
|
|
16
16
|
protected workflowMetrics: InterpretorMetrics;
|
|
17
17
|
constructor(workflowSo: InterpretorSo, workflowReader: InterpretorReader, workflowUtils: InterpretorUtils, workflowData: InterpretorData, workflowSave: InterpretorSave, workflowMetrics: InterpretorMetrics);
|
|
18
|
-
startWorkflow(modelKey: string, settings: WorkflowSettingsDto, context: WorkflowInstanceContextDto, inputs?: PairDto[], instanceCreated?: (instance: WorkflowInstanceDto) => void):
|
|
19
|
-
runInstance(instanceUUID: string, context: WorkflowInstanceContextDto, instanceRetrieved?: (instance: WorkflowInstanceDto) => void):
|
|
20
|
-
taskValidate(instance: WorkflowInstanceDto, validate: InterpretorValidateDto):
|
|
21
|
-
taskJump(instance: WorkflowInstanceDto, jump: InterpretorJumpDto):
|
|
18
|
+
startWorkflow(modelKey: string, settings: WorkflowSettingsDto, context: WorkflowInstanceContextDto, inputs?: PairDto[], instanceCreated?: (instance: WorkflowInstanceDto) => void): Promise<InterpretorTaskDto>;
|
|
19
|
+
runInstance(instanceUUID: string, context: WorkflowInstanceContextDto, instanceRetrieved?: (instance: WorkflowInstanceDto) => void): Promise<InterpretorTaskDto>;
|
|
20
|
+
taskValidate(instance: WorkflowInstanceDto, validate: InterpretorValidateDto): Promise<InterpretorTaskDto | InterpretorFinisherDto>;
|
|
21
|
+
taskJump(instance: WorkflowInstanceDto, jump: InterpretorJumpDto): Promise<InterpretorTaskDto>;
|
|
22
22
|
/** public for test */
|
|
23
|
-
_decoreResponse(action
|
|
23
|
+
_decoreResponse(action: () => Promise<any>, instance: WorkflowInstanceDto): Promise<any>;
|
|
24
24
|
/** public for test */
|
|
25
|
-
_initializeData(inputs: PairDto[], model: WorkflowModelDto, context: WorkflowInstanceContextDto):
|
|
25
|
+
_initializeData(inputs: PairDto[], model: WorkflowModelDto, context: WorkflowInstanceContextDto): Promise<{
|
|
26
26
|
smartobjects: SmartObjectDto[];
|
|
27
27
|
data: WorkflowDataDto[];
|
|
28
28
|
}>;
|
|
29
29
|
/** public for test */
|
|
30
|
-
_newInstance(model: WorkflowModelDto, settings: WorkflowSettingsDto, inputs: PairDto[], context: WorkflowInstanceContextDto):
|
|
30
|
+
_newInstance(model: WorkflowModelDto, settings: WorkflowSettingsDto, inputs: PairDto[], context: WorkflowInstanceContextDto): Promise<WorkflowInstanceDto>;
|
|
31
31
|
/** public for test */
|
|
32
|
-
_execute(instance: WorkflowInstanceDto):
|
|
33
|
-
_toAsync(observable: Observable<any>): Observable<any>;
|
|
32
|
+
_execute(instance: WorkflowInstanceDto): Promise<InterpretorTaskDto | any>;
|
|
34
33
|
/** public for test */
|
|
35
|
-
_jump(instance: WorkflowInstanceDto, jump: InterpretorJumpDto):
|
|
34
|
+
_jump(instance: WorkflowInstanceDto, jump: InterpretorJumpDto): Promise<InterpretorTaskDto>;
|
|
36
35
|
/** public for test */
|
|
37
|
-
_validate(instance: WorkflowInstanceDto, validate: InterpretorValidateDto):
|
|
36
|
+
_validate(instance: WorkflowInstanceDto, validate: InterpretorValidateDto): Promise<InterpretorTaskDto | InterpretorFinisherDto>;
|
|
38
37
|
/** public for test */
|
|
39
|
-
_finish(instance: WorkflowInstanceDto, finish: InterpretorFinisherDto):
|
|
38
|
+
_finish(instance: WorkflowInstanceDto, finish: InterpretorFinisherDto): Promise<InterpretorFinisherDto>;
|
|
40
39
|
/** public for test */
|
|
41
|
-
_loadInstance(instance: WorkflowInstanceDto):
|
|
40
|
+
_loadInstance(instance: WorkflowInstanceDto): Promise<InterpretorTaskDto>;
|
|
42
41
|
/** public for test */
|
|
43
42
|
_checkScheduled(rangeDate: string[]): boolean;
|
|
44
43
|
/** public for test */
|
|
45
44
|
_isJsonStringify(data: any): boolean;
|
|
46
45
|
/** public for test */
|
|
47
46
|
_formatData(inputs: any): any;
|
|
47
|
+
toPromise<T>(observable: Observable<T>): Promise<T>;
|
|
48
48
|
}
|
package/dist/interpretor.js
CHANGED
|
@@ -29,7 +29,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
29
29
|
exports.Interpretor = void 0;
|
|
30
30
|
const dto_1 = require("./dto");
|
|
31
31
|
const rxjs_1 = require("rxjs");
|
|
32
|
-
const operators_1 = require("rxjs/operators");
|
|
33
32
|
const angular2_uuid_1 = require("angular2-uuid");
|
|
34
33
|
const interpretor_error_1 = require("./error/interpretor-error");
|
|
35
34
|
const _ = __importStar(require("lodash"));
|
|
@@ -43,199 +42,176 @@ class Interpretor {
|
|
|
43
42
|
this.workflowSave = workflowSave;
|
|
44
43
|
this.workflowMetrics = workflowMetrics;
|
|
45
44
|
}
|
|
46
|
-
startWorkflow(modelKey, settings, context, inputs = [], instanceCreated) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
45
|
+
async startWorkflow(modelKey, settings, context, inputs = [], instanceCreated) {
|
|
46
|
+
this.workflowMetrics.start(context.metrics, 'InterpretorOther');
|
|
47
|
+
const formatedInputs = this._formatData(inputs);
|
|
48
|
+
try {
|
|
49
|
+
const workflow = await this.toPromise(this.workflowData.getModel(modelKey, context));
|
|
50
|
+
const instance = await this._newInstance(workflow, settings, formatedInputs, context);
|
|
51
|
+
if (instanceCreated) {
|
|
52
|
+
instanceCreated(instance);
|
|
53
|
+
}
|
|
54
|
+
const result = await this._loadInstance(instance);
|
|
55
|
+
this.workflowMetrics.stop(context.metrics, 'InterpretorOther');
|
|
56
|
+
this.workflowMetrics.stopRunning(context.metrics, 'tasks');
|
|
57
|
+
console.log(this.workflowMetrics.getMetrics(context.metrics, 'process'));
|
|
58
|
+
return result;
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
throw error;
|
|
62
|
+
}
|
|
61
63
|
}
|
|
62
|
-
runInstance(instanceUUID, context, instanceRetrieved) {
|
|
63
|
-
|
|
64
|
+
async runInstance(instanceUUID, context, instanceRetrieved) {
|
|
65
|
+
try {
|
|
66
|
+
const instance = await this.toPromise(this.workflowData.getInstance(instanceUUID, context));
|
|
64
67
|
if (instanceRetrieved) {
|
|
65
68
|
instanceRetrieved(instance);
|
|
66
69
|
}
|
|
67
|
-
return this._loadInstance(instance);
|
|
68
|
-
}
|
|
70
|
+
return await this._loadInstance(instance);
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
throw error;
|
|
74
|
+
}
|
|
69
75
|
}
|
|
70
|
-
taskValidate(instance, validate) {
|
|
71
|
-
return this._decoreResponse(this._validate(instance, validate), instance);
|
|
76
|
+
async taskValidate(instance, validate) {
|
|
77
|
+
return await this._decoreResponse(() => this._validate(instance, validate), instance);
|
|
72
78
|
}
|
|
73
|
-
taskJump(instance, jump) {
|
|
74
|
-
return this._decoreResponse(this._jump(instance, jump), instance);
|
|
79
|
+
async taskJump(instance, jump) {
|
|
80
|
+
return await this._decoreResponse(() => this._jump(instance, jump), instance);
|
|
75
81
|
}
|
|
76
82
|
/** public for test */
|
|
77
|
-
_decoreResponse(action
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
83
|
+
async _decoreResponse(action, instance) {
|
|
84
|
+
try {
|
|
85
|
+
const result = await action();
|
|
86
|
+
await this.toPromise(this.workflowSave.save(instance));
|
|
87
|
+
return result;
|
|
88
|
+
}
|
|
89
|
+
catch (e) {
|
|
90
|
+
await this.toPromise(this.workflowSave.save(instance));
|
|
91
|
+
throw e;
|
|
92
|
+
}
|
|
81
93
|
}
|
|
82
94
|
/** public for test */
|
|
83
|
-
_initializeData(inputs, model, context) {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
...inputs.map((input) => {
|
|
95
|
+
async _initializeData(inputs, model, context) {
|
|
96
|
+
const collect = await Promise.all(_.compact([
|
|
97
|
+
...inputs.map(async (input) => {
|
|
87
98
|
const variable = model.variables.find((v) => v.key === input.key);
|
|
88
|
-
if (!variable)
|
|
99
|
+
if (!variable)
|
|
89
100
|
return null;
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
}
|
|
95
|
-
return (0, rxjs_1.of)({
|
|
101
|
+
const dataSmartObjects = await this.toPromise(this.workflowSo.initializeData(input, variable, context));
|
|
102
|
+
if (dataSmartObjects)
|
|
103
|
+
return dataSmartObjects;
|
|
104
|
+
return {
|
|
96
105
|
smartobjects: [],
|
|
97
|
-
data: {
|
|
98
|
-
|
|
99
|
-
value: input.value,
|
|
100
|
-
type: variable.type,
|
|
101
|
-
}
|
|
102
|
-
});
|
|
106
|
+
data: { key: input.key, value: input.value, type: variable.type }
|
|
107
|
+
};
|
|
103
108
|
}),
|
|
104
|
-
// undefined input
|
|
105
109
|
...model.variables.map((variable) => {
|
|
106
110
|
const input = inputs.find((input) => variable.key === input.key);
|
|
107
|
-
if (input)
|
|
111
|
+
if (input)
|
|
108
112
|
return null;
|
|
109
|
-
|
|
110
|
-
return (0, rxjs_1.of)({
|
|
113
|
+
return {
|
|
111
114
|
smartobjects: [],
|
|
112
|
-
data: {
|
|
113
|
-
|
|
114
|
-
type: variable.type,
|
|
115
|
-
value: null,
|
|
116
|
-
}
|
|
117
|
-
});
|
|
115
|
+
data: { key: variable.key, type: variable.type, value: null }
|
|
116
|
+
};
|
|
118
117
|
})
|
|
119
|
-
]);
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
data: _.flatMap(res, 'data'),
|
|
124
|
-
})));
|
|
118
|
+
]));
|
|
119
|
+
const smartobjects = _.uniqBy(_.flatMapDeep(collect, 'smartobjects'), 'uuid');
|
|
120
|
+
const data = _.flatMap(collect, 'data');
|
|
121
|
+
return { smartobjects, data };
|
|
125
122
|
}
|
|
126
123
|
/** public for test */
|
|
127
|
-
_newInstance(model, settings, inputs, context) {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
return this.workflowSo.downloadData(instance.data, instance.smartobjects, instance.documents, instance.context.smartmodels, instance.context)
|
|
151
|
-
.pipe((0, operators_1.map)((download) => {
|
|
152
|
-
instance.data = download.datas;
|
|
153
|
-
return instance;
|
|
154
|
-
}));
|
|
155
|
-
}));
|
|
124
|
+
async _newInstance(model, settings, inputs, context) {
|
|
125
|
+
const data = await this._initializeData(inputs, model, context);
|
|
126
|
+
const instance = {
|
|
127
|
+
uuid: angular2_uuid_1.UUID.UUID(),
|
|
128
|
+
createdDate: (0, moment_1.default)().format(),
|
|
129
|
+
finishDate: null,
|
|
130
|
+
startDate: null,
|
|
131
|
+
updateDate: new Date().toDateString(),
|
|
132
|
+
data: data.data,
|
|
133
|
+
participants: [],
|
|
134
|
+
settings,
|
|
135
|
+
smartobjects: data.smartobjects,
|
|
136
|
+
documents: [],
|
|
137
|
+
stackTasks: [],
|
|
138
|
+
stackData: [],
|
|
139
|
+
state: 'todo',
|
|
140
|
+
workflowModel: model,
|
|
141
|
+
context
|
|
142
|
+
};
|
|
143
|
+
await this.toPromise(this.workflowSo.downloadDocuments(instance.data, instance.documents, instance.context));
|
|
144
|
+
const download = await this.toPromise(this.workflowSo.downloadData(instance.data, instance.smartobjects, instance.documents, instance.context.smartmodels, instance.context));
|
|
145
|
+
instance.data = download.datas;
|
|
146
|
+
return instance;
|
|
156
147
|
}
|
|
157
148
|
/** public for test */
|
|
158
|
-
_execute(instance) {
|
|
159
|
-
|
|
160
|
-
const
|
|
149
|
+
async _execute(instance) {
|
|
150
|
+
try {
|
|
151
|
+
const taskDto = await this.toPromise(this.workflowReader.execute(instance));
|
|
152
|
+
let newTask = this.workflowUtils.createBackgroundTaskInstance(taskDto.type);
|
|
161
153
|
this.workflowMetrics.stopRunning(instance.context.metrics, 'tasks');
|
|
162
154
|
if (newTask) {
|
|
163
155
|
this.workflowMetrics.start(instance.context.metrics, taskDto.type, 'tasks');
|
|
164
156
|
this.workflowMetrics.start(instance.context.metrics, taskDto.type, 'process');
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
if (result instanceof dto_1.InterpretorFinisherDto) {
|
|
170
|
-
return this._finish(instance, result);
|
|
171
|
-
}
|
|
172
|
-
else if (result instanceof dto_1.InterpretorJumpDto) {
|
|
173
|
-
return this._jump(instance, result);
|
|
174
|
-
}
|
|
175
|
-
else {
|
|
176
|
-
return this._toAsync(this._validate(instance, result));
|
|
177
|
-
}
|
|
178
|
-
}));
|
|
179
|
-
}
|
|
180
|
-
return (0, rxjs_1.of)(taskDto);
|
|
181
|
-
}));
|
|
182
|
-
}
|
|
183
|
-
_toAsync(observable) {
|
|
184
|
-
return new rxjs_1.Observable((observer) => {
|
|
185
|
-
(async () => {
|
|
186
|
-
try {
|
|
187
|
-
const res = await (0, rxjs_1.lastValueFrom)(observable.pipe((0, operators_1.first)()));
|
|
188
|
-
observer.next(res);
|
|
189
|
-
observer.complete();
|
|
157
|
+
const result = await this.toPromise(newTask.execute(taskDto));
|
|
158
|
+
this.workflowMetrics.stop(instance.context.metrics, taskDto.type, 'process');
|
|
159
|
+
if (result instanceof dto_1.InterpretorFinisherDto) {
|
|
160
|
+
return this._finish(instance, result);
|
|
190
161
|
}
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
observer.complete();
|
|
162
|
+
else if (result instanceof dto_1.InterpretorJumpDto) {
|
|
163
|
+
return this._jump(instance, result);
|
|
194
164
|
}
|
|
195
|
-
|
|
196
|
-
|
|
165
|
+
else {
|
|
166
|
+
return this._validate(instance, result);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
return taskDto;
|
|
170
|
+
}
|
|
171
|
+
catch (e) {
|
|
172
|
+
throw e;
|
|
173
|
+
}
|
|
197
174
|
}
|
|
198
175
|
/** public for test */
|
|
199
|
-
_jump(instance, jump) {
|
|
176
|
+
async _jump(instance, jump) {
|
|
200
177
|
try {
|
|
201
178
|
this.workflowReader.jump(instance, jump);
|
|
179
|
+
return await this._execute(instance);
|
|
202
180
|
}
|
|
203
181
|
catch (e) {
|
|
204
|
-
|
|
182
|
+
throw e;
|
|
205
183
|
}
|
|
206
|
-
return this._execute(instance);
|
|
207
184
|
}
|
|
208
185
|
/** public for test */
|
|
209
|
-
_validate(instance, validate) {
|
|
186
|
+
async _validate(instance, validate) {
|
|
210
187
|
try {
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
}));
|
|
188
|
+
await this.toPromise(this.workflowReader.validate(instance, validate));
|
|
189
|
+
if (this.workflowUtils.isFinished(instance)) {
|
|
190
|
+
return new dto_1.InterpretorFinisherDto(instance);
|
|
191
|
+
}
|
|
192
|
+
return this._execute(instance);
|
|
217
193
|
}
|
|
218
194
|
catch (e) {
|
|
219
|
-
|
|
195
|
+
throw e;
|
|
220
196
|
}
|
|
221
197
|
}
|
|
222
198
|
/** public for test */
|
|
223
|
-
_finish(instance, finish) {
|
|
199
|
+
async _finish(instance, finish) {
|
|
224
200
|
try {
|
|
225
201
|
this.workflowReader.finish(instance, finish.save);
|
|
202
|
+
return finish;
|
|
226
203
|
}
|
|
227
204
|
catch (e) {
|
|
228
|
-
|
|
205
|
+
throw e;
|
|
229
206
|
}
|
|
230
|
-
return (0, rxjs_1.of)(finish);
|
|
231
207
|
}
|
|
232
208
|
/** public for test */
|
|
233
|
-
_loadInstance(instance) {
|
|
209
|
+
async _loadInstance(instance) {
|
|
234
210
|
if (!this._checkScheduled(instance.rangeDate)) {
|
|
235
|
-
|
|
211
|
+
throw new interpretor_error_1.WorkflowErrorScheduled('ERR-137', '{{DATE-DOESNT-MATCH}}');
|
|
236
212
|
}
|
|
237
213
|
if (this.workflowUtils.isFinished(instance)) {
|
|
238
|
-
|
|
214
|
+
throw new interpretor_error_1.WorkflowErrorOldInstance(instance, 'ERR-098', '{{INSTANCE-ALREADY-PLAYED}}');
|
|
239
215
|
}
|
|
240
216
|
try {
|
|
241
217
|
if (instance.state === 'todo') {
|
|
@@ -243,9 +219,9 @@ class Interpretor {
|
|
|
243
219
|
}
|
|
244
220
|
}
|
|
245
221
|
catch (e) {
|
|
246
|
-
|
|
222
|
+
throw e;
|
|
247
223
|
}
|
|
248
|
-
return this._decoreResponse(this._execute(instance), instance);
|
|
224
|
+
return await this._decoreResponse(() => this._execute(instance), instance);
|
|
249
225
|
}
|
|
250
226
|
/** public for test */
|
|
251
227
|
_checkScheduled(rangeDate) {
|
|
@@ -287,6 +263,9 @@ class Interpretor {
|
|
|
287
263
|
}
|
|
288
264
|
});
|
|
289
265
|
}
|
|
266
|
+
async toPromise(observable) {
|
|
267
|
+
return (0, rxjs_1.lastValueFrom)(observable.pipe((0, rxjs_1.first)()));
|
|
268
|
+
}
|
|
290
269
|
}
|
|
291
270
|
exports.Interpretor = Interpretor;
|
|
292
271
|
//# sourceMappingURL=interpretor.js.map
|
package/dist/interpretor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interpretor.js","sourceRoot":"","sources":["../src/interpretor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,+
|
|
1
|
+
{"version":3,"file":"interpretor.js","sourceRoot":"","sources":["../src/interpretor.ts"],"names":[],"mappings":"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"}
|