integreat 0.8.0-beta.3 → 0.8.0-beta.5
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/handlers/run.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const map_transform_1 = require("map-transform");
|
|
4
4
|
const createError_1 = require("../utils/createError");
|
|
5
5
|
const is_1 = require("../utils/is");
|
|
6
|
+
const array_1 = require("../utils/array");
|
|
6
7
|
const validateFilters_1 = require("../utils/validateFilters");
|
|
7
8
|
const prepareAction = (action, meta) => ({
|
|
8
9
|
...action,
|
|
@@ -32,20 +33,26 @@ async function runAction(action, dispatch, meta) {
|
|
|
32
33
|
const prependResponseError = (response, message) => response?.error
|
|
33
34
|
? { ...response, error: `${message}${response.error}` }
|
|
34
35
|
: response;
|
|
35
|
-
const errorMessageFromResponses = (
|
|
36
|
-
.map((index) =>
|
|
36
|
+
const errorMessageFromResponses = (responses, ids) => responses
|
|
37
|
+
.map((response, index) => response.response?.error
|
|
38
|
+
? `'${ids[index]}' (${response.response?.status}: ${response.response?.error})`
|
|
39
|
+
: undefined)
|
|
40
|
+
.filter(Boolean)
|
|
37
41
|
.join(', ');
|
|
38
42
|
function responseFromResponses(responses, ids) {
|
|
39
43
|
const errorIndices = responses
|
|
40
44
|
.map((response, index) => isOkResponse(response?.response) ? undefined : index)
|
|
41
45
|
.filter((index) => index !== undefined);
|
|
46
|
+
const message = errorMessageFromResponses(responses, ids);
|
|
42
47
|
return {
|
|
43
48
|
response: errorIndices.length > 0
|
|
44
49
|
? {
|
|
45
50
|
status: 'error',
|
|
46
|
-
error:
|
|
51
|
+
error: message,
|
|
47
52
|
}
|
|
48
|
-
:
|
|
53
|
+
: message
|
|
54
|
+
? { status: 'ok', warning: `Message from steps: ${message}` }
|
|
55
|
+
: { status: 'ok' },
|
|
49
56
|
};
|
|
50
57
|
}
|
|
51
58
|
function getLastJobWithResponse(flow, responses) {
|
|
@@ -74,50 +81,87 @@ function isStepOk(steps, responses) {
|
|
|
74
81
|
return isOkResponse(responses[steps.id]?.response);
|
|
75
82
|
}
|
|
76
83
|
}
|
|
84
|
+
const messageFromValidationErrors = (vals) => vals
|
|
85
|
+
.map((val) => val.message)
|
|
86
|
+
.filter(Boolean)
|
|
87
|
+
.join(' | ');
|
|
88
|
+
function statusFromValidationErrors(vals) {
|
|
89
|
+
const statuses = vals.map((val) => val.status).filter(Boolean);
|
|
90
|
+
if (statuses.length === 0) {
|
|
91
|
+
return undefined;
|
|
92
|
+
}
|
|
93
|
+
return statuses[0];
|
|
94
|
+
}
|
|
77
95
|
async function runStep(step, responses, newResponses, dispatch, mapOptions, meta, prevStep) {
|
|
78
|
-
let response;
|
|
79
96
|
if (step.conditions) {
|
|
80
97
|
const validationErrors = (0, validateFilters_1.default)(step.conditions, true)(responses);
|
|
81
98
|
if (validationErrors.length > 0) {
|
|
82
|
-
response = setStepError(step.id, validationErrors
|
|
99
|
+
const response = setStepError(step.id, messageFromValidationErrors(validationErrors), statusFromValidationErrors(validationErrors));
|
|
100
|
+
setResponses(response, newResponses);
|
|
101
|
+
return validationErrors.some((val) => val.break);
|
|
83
102
|
}
|
|
84
103
|
}
|
|
85
104
|
else if (prevStep) {
|
|
86
105
|
if (!isStepOk(prevStep, responses)) {
|
|
87
|
-
|
|
106
|
+
return false;
|
|
88
107
|
}
|
|
89
108
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
}
|
|
109
|
+
let response;
|
|
110
|
+
try {
|
|
111
|
+
response = await runFlow(step, responses, dispatch, mapOptions, meta);
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
response = setStepError(step.id, error instanceof Error ? error.message : String(error), 'rejected');
|
|
97
115
|
}
|
|
98
116
|
setResponses(response, newResponses);
|
|
99
|
-
return
|
|
117
|
+
return false;
|
|
118
|
+
}
|
|
119
|
+
const isJobWithIteratePath = (step) => (0, is_1.isJobStep)(step) && typeof step.iteratePath === 'string';
|
|
120
|
+
const setData = (action, data) => ({
|
|
121
|
+
...action,
|
|
122
|
+
payload: { ...action.payload, data },
|
|
123
|
+
});
|
|
124
|
+
function unpackIterationSteps(step, responses, mapOptions) {
|
|
125
|
+
if (!isJobWithIteratePath(step)) {
|
|
126
|
+
return step;
|
|
127
|
+
}
|
|
128
|
+
const getter = (0, map_transform_1.mapTransform)(step.iteratePath, mapOptions);
|
|
129
|
+
const items = (0, array_1.ensureArray)(getter(responses));
|
|
130
|
+
return items.map((data, index) => ({
|
|
131
|
+
...step,
|
|
132
|
+
id: `${step.id}_${index}`,
|
|
133
|
+
action: setData(step.action, data),
|
|
134
|
+
}));
|
|
100
135
|
}
|
|
101
136
|
async function runFlow(job, prevResponses, dispatch, mapOptions, meta) {
|
|
102
137
|
const { id: parentId, mutation } = job;
|
|
103
138
|
if ((0, is_1.isJobWithFlow)(job)) {
|
|
104
139
|
const flow = job.flow;
|
|
105
140
|
const newResponses = {};
|
|
106
|
-
for (const [index,
|
|
141
|
+
for (const [index, rawStep] of flow.entries()) {
|
|
107
142
|
const responses = { ...prevResponses, ...newResponses };
|
|
108
143
|
const prevStep = index > 0 ? flow[index - 1] : undefined;
|
|
144
|
+
const step = unpackIterationSteps(rawStep, responses, mapOptions);
|
|
109
145
|
if ((0, is_1.isJobStep)(step)) {
|
|
110
|
-
await runStep(step, responses, newResponses, dispatch, mapOptions, meta, prevStep);
|
|
146
|
+
const doBreak = await runStep(step, responses, newResponses, dispatch, mapOptions, meta, prevStep);
|
|
147
|
+
if (doBreak) {
|
|
148
|
+
return newResponses;
|
|
149
|
+
}
|
|
111
150
|
}
|
|
112
151
|
else if (Array.isArray(step)) {
|
|
113
|
-
await Promise.all(step.map((step) => runStep(step, responses, newResponses, dispatch, mapOptions, meta, prevStep)));
|
|
152
|
+
const doBreak = await Promise.all(step.map((step) => runStep(step, responses, newResponses, dispatch, mapOptions, meta, prevStep)));
|
|
153
|
+
if (doBreak.includes(true)) {
|
|
154
|
+
return newResponses;
|
|
155
|
+
}
|
|
114
156
|
}
|
|
115
157
|
}
|
|
116
158
|
return newResponses;
|
|
117
159
|
}
|
|
118
160
|
else if ((0, is_1.isJobWithAction)(job) && parentId) {
|
|
161
|
+
const action = mutateAction(job.action, mutation, prevResponses, mapOptions);
|
|
162
|
+
const response = await runAction(action, dispatch, meta);
|
|
119
163
|
return {
|
|
120
|
-
[parentId]:
|
|
164
|
+
[parentId]: mutateResponse({ ...action, response: response.response }, job, prevResponses, mapOptions),
|
|
121
165
|
};
|
|
122
166
|
}
|
|
123
167
|
return {};
|
|
@@ -147,6 +191,9 @@ const cleanUpResponse = (action) => ({
|
|
|
147
191
|
}),
|
|
148
192
|
},
|
|
149
193
|
});
|
|
194
|
+
function mutateResponse(action, job, responses, mapOptions) {
|
|
195
|
+
return cleanUpResponse(mutateAction(action, job.responseMutation, { ...responses, action }, mapOptions));
|
|
196
|
+
}
|
|
150
197
|
exports.default = (jobs, mapOptions) => async function run(action, { dispatch }) {
|
|
151
198
|
const { payload: { jobId }, meta, } = action;
|
|
152
199
|
const job = typeof jobId === 'string' ? jobs[jobId] : undefined;
|
|
@@ -155,10 +202,9 @@ exports.default = (jobs, mapOptions) => async function run(action, { dispatch })
|
|
|
155
202
|
}
|
|
156
203
|
const prevResponses = { action };
|
|
157
204
|
const responses = await runFlow(job, prevResponses, dispatch, mapOptions, meta);
|
|
158
|
-
|
|
205
|
+
return mutateResponse({
|
|
159
206
|
...action,
|
|
160
207
|
response: getFlowResponse(job, responses),
|
|
161
|
-
};
|
|
162
|
-
return cleanUpResponse(mutateAction(actionWithResponse, job.responseMutation, { ...responses, action: actionWithResponse }, mapOptions));
|
|
208
|
+
}, job, responses, mapOptions);
|
|
163
209
|
};
|
|
164
210
|
//# sourceMappingURL=run.js.map
|
package/dist/handlers/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/handlers/run.ts"],"names":[],"mappings":";;AACA,iDAAgE;
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/handlers/run.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -15,7 +15,7 @@ Object.defineProperty(exports, "transformers", { enumerable: true, get: function
|
|
|
15
15
|
var middleware_1 = require("./middleware");
|
|
16
16
|
Object.defineProperty(exports, "middleware", { enumerable: true, get: function () { return middleware_1.default; } });
|
|
17
17
|
exports.default = {
|
|
18
|
-
version: '0.8.0-beta.
|
|
18
|
+
version: '0.8.0-beta.5',
|
|
19
19
|
create: create_1.default,
|
|
20
20
|
mergeDefinitions: mergeDefinitions_1.default,
|
|
21
21
|
mergeResources: mergeResources_1.default,
|
package/dist/types.d.ts
CHANGED
|
@@ -31,8 +31,13 @@ export declare type ScheduleObject = {
|
|
|
31
31
|
wm?: number[];
|
|
32
32
|
wy?: number[];
|
|
33
33
|
};
|
|
34
|
+
export interface ConditionFailObject extends Record<string, unknown> {
|
|
35
|
+
message?: string;
|
|
36
|
+
status?: string;
|
|
37
|
+
break?: boolean;
|
|
38
|
+
}
|
|
34
39
|
export interface Condition extends Record<string, unknown> {
|
|
35
|
-
|
|
40
|
+
onFail?: ConditionFailObject | string;
|
|
36
41
|
}
|
|
37
42
|
interface JobFields {
|
|
38
43
|
id: string;
|
|
@@ -44,6 +49,8 @@ export interface JobWithFlow extends JobFields {
|
|
|
44
49
|
}
|
|
45
50
|
export interface JobWithAction extends JobFields {
|
|
46
51
|
action: Action;
|
|
52
|
+
iteratePath?: string;
|
|
53
|
+
responseMutation?: MapObject | MapPipe;
|
|
47
54
|
}
|
|
48
55
|
export declare type Job = JobWithAction | JobWithFlow;
|
|
49
56
|
export interface JobDef {
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { Condition } from '../types';
|
|
1
|
+
import { Condition, ConditionFailObject } from '../types';
|
|
2
2
|
export declare type FilterFn = (data: unknown) => boolean;
|
|
3
|
-
export default function validateFilters(filters: Record<string, Condition | boolean | undefined>, useFriendlyMessages?: boolean): (data: unknown) =>
|
|
3
|
+
export default function validateFilters(filters: Record<string, Condition | boolean | undefined>, useFriendlyMessages?: boolean): (data: unknown) => ConditionFailObject[];
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const util = require("util");
|
|
4
4
|
const map_transform_1 = require("map-transform");
|
|
5
5
|
const is_1 = require("./is");
|
|
6
|
-
const cleanCondition = ({
|
|
6
|
+
const cleanCondition = ({ onFail, ...filter }) => filter;
|
|
7
7
|
const cleanFilter = (filter) => (0, is_1.isObject)(filter) ? cleanCondition(filter) : filter;
|
|
8
8
|
function prepareFilter(path, filter) {
|
|
9
9
|
if (path === '$or') {
|
|
@@ -19,10 +19,12 @@ function prepareFilter(path, filter) {
|
|
|
19
19
|
const prepareMessage = (path, filter, useFriendlyMessages) => !useFriendlyMessages
|
|
20
20
|
? () => path
|
|
21
21
|
: (0, is_1.isObject)(filter)
|
|
22
|
-
? filter.
|
|
23
|
-
? () => filter.
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
? filter.onFail
|
|
23
|
+
? () => typeof filter.onFail === 'string'
|
|
24
|
+
? { message: filter.onFail }
|
|
25
|
+
: filter.onFail
|
|
26
|
+
: () => ({ message: `'${path}' did not pass ${util.inspect(filter)}` })
|
|
27
|
+
: () => ({ message: `'${path}' did not pass its condition` });
|
|
26
28
|
function validateFilters(filters, useFriendlyMessages = false) {
|
|
27
29
|
const filterFns = Object.entries(filters)
|
|
28
30
|
.map(([path, filter]) => [
|
|
@@ -32,10 +34,12 @@ function validateFilters(filters, useFriendlyMessages = false) {
|
|
|
32
34
|
.filter(([filter]) => !!filter);
|
|
33
35
|
const isOrFilters = filters.$or === true;
|
|
34
36
|
return function validate(data) {
|
|
35
|
-
const
|
|
37
|
+
const failObjects = filterFns
|
|
36
38
|
.map(([filter, getMessage]) => (filter(data) ? undefined : getMessage()))
|
|
37
39
|
.filter(Boolean);
|
|
38
|
-
return isOrFilters &&
|
|
40
|
+
return isOrFilters && failObjects.length < filterFns.length
|
|
41
|
+
? []
|
|
42
|
+
: failObjects;
|
|
39
43
|
};
|
|
40
44
|
}
|
|
41
45
|
exports.default = validateFilters;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateFilters.js","sourceRoot":"","sources":["../../src/utils/validateFilters.ts"],"names":[],"mappings":";;AAAA,6BAA6B;AAC7B,iDAAwC;AAExC,6BAA+B;AAM/B,MAAM,cAAc,GAAG,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"validateFilters.js","sourceRoot":"","sources":["../../src/utils/validateFilters.ts"],"names":[],"mappings":";;AAAA,6BAA6B;AAC7B,iDAAwC;AAExC,6BAA+B;AAM/B,MAAM,cAAc,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAa,EAAE,EAAE,CAAC,MAAM,CAAA;AACnE,MAAM,WAAW,GAAG,CAAC,MAA2B,EAAE,EAAE,CAClD,IAAA,aAAQ,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;AAEpD,SAAS,aAAa,CACpB,IAAY,EACZ,MAA0C;IAE1C,IAAI,IAAI,KAAK,KAAK,EAAE;QAClB,IAAI,IAAA,aAAQ,EAAC,MAAM,CAAC,EAAE;YACpB,OAAO,eAAe,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,CAAA;SACjD;KACF;SAAM,IAAI,MAAM,EAAE;QACjB,OAAO,IAAA,wBAAQ,EAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;KAC3C;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,cAAc,GAAG,CACrB,IAAY,EACZ,MAAuC,EACvC,mBAA4B,EAC5B,EAAE,CACF,CAAC,mBAAmB;IAClB,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI;IACZ,CAAC,CAAC,IAAA,aAAQ,EAAC,MAAM,CAAC;QAClB,CAAC,CAAC,MAAM,CAAC,MAAM;YACb,CAAC,CAAC,GAAG,EAAE,CACH,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;gBAC/B,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;gBAC5B,CAAC,CAAC,MAAM,CAAC,MAAM;YACrB,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,IAAI,kBAAkB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACzE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,IAAI,8BAA8B,EAAE,CAAC,CAAA;AAEjE,SAAwB,eAAe,CACrC,OAAwD,EACxD,mBAAmB,GAAG,KAAK;IAE3B,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;SACtC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;QACvB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC;QAC3B,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,mBAAmB,CAAC;KAClD,CAAC;SACD,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAuB,CAAA;IACvD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,KAAK,IAAI,CAAA;IAExC,OAAO,SAAS,QAAQ,CAAC,IAAa;QACpC,MAAM,WAAW,GAAG,SAAS;aAC1B,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;aACxE,MAAM,CAAC,OAAO,CAA0B,CAAA;QAC3C,OAAO,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM;YACzD,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,WAAW,CAAA;IACjB,CAAC,CAAA;AACH,CAAC;AApBD,kCAoBC"}
|
package/package.json
CHANGED