ts2workflows 0.3.0 → 0.5.0
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/README.md +6 -2
- package/dist/ast/expressions.d.ts.map +1 -1
- package/dist/ast/expressions.js +7 -10
- package/dist/ast/stepnames.d.ts.map +1 -1
- package/dist/ast/stepnames.js +11 -1
- package/dist/ast/steps.d.ts +24 -13
- package/dist/ast/steps.d.ts.map +1 -1
- package/dist/ast/steps.js +54 -38
- package/dist/transpiler/expressions.d.ts +8 -4
- package/dist/transpiler/expressions.d.ts.map +1 -1
- package/dist/transpiler/expressions.js +162 -42
- package/dist/transpiler/index.d.ts.map +1 -1
- package/dist/transpiler/index.js +29 -28
- package/dist/transpiler/statements.d.ts +2 -1
- package/dist/transpiler/statements.d.ts.map +1 -1
- package/dist/transpiler/statements.js +137 -155
- package/dist/transpiler/transformations.d.ts.map +1 -1
- package/dist/transpiler/transformations.js +216 -110
- package/dist/utils.d.ts +4 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +6 -0
- package/language_reference.md +55 -33
- package/package.json +11 -4
- package/types/global.d.ts +124 -0
- package/dist/transpiler/asserts.d.ts +0 -7
- package/dist/transpiler/asserts.d.ts.map +0 -1
- package/dist/transpiler/asserts.js +0 -11
package/README.md
CHANGED
|
@@ -29,10 +29,10 @@ One benefit of writing the workflow programs in Typescript is that the sources c
|
|
|
29
29
|
This example command shows how to type check source files in the [samples](samples) directory using the standard Typescript compiler `tsc`. The command prints typing errors or finishes silently, if there are no errors.
|
|
30
30
|
|
|
31
31
|
```sh
|
|
32
|
-
npx tsc --project
|
|
32
|
+
npx tsc --project tsconfig.workflows.json
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
-
The file [
|
|
35
|
+
The file [tsconfig.workflows.json](tsconfig.workflows.json) contains a sample configuration for type checking workflow sources.
|
|
36
36
|
|
|
37
37
|
Type annotations for [Workflows standard library functions and expression helpers](https://cloud.google.com/workflows/docs/reference/stdlib/overview) and for some [connectors](https://cloud.google.com/workflows/docs/reference/googleapis) are provided in [types/workflowslib.d.ts](types/workflowslib.d.ts). They are also included in the published npm module. To import type annotations in a project that has ts2workflows module as a dependency, use the following import command:
|
|
38
38
|
|
|
@@ -55,6 +55,10 @@ npm run build
|
|
|
55
55
|
npm run test
|
|
56
56
|
```
|
|
57
57
|
|
|
58
|
+
## Publishing the package to npmjs.com
|
|
59
|
+
|
|
60
|
+
Update CHANGELOG.md, the version number in package.json, npm install, commit, tag with v1.2.3 and push. A Github Actions worklfow will build the package and publish it on tag pushes.
|
|
61
|
+
|
|
58
62
|
## Architecture
|
|
59
63
|
|
|
60
64
|
A transpilation using ts2workflows consists of five phases:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../src/ast/expressions.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GAAG,MAAM,CAAA;AACjC,MAAM,MAAM,cAAc,GACtB,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,IAAI,GACJ,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,GAAG,GACH,IAAI,GACJ,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,KAAK,GACL,IAAI,CAAA;AACR,MAAM,MAAM,aAAa,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,CAAA;AA2B7C,MAAM,MAAM,SAAS,GACjB,IAAI,GACJ,MAAM,GACN,MAAM,GACN,OAAO,GACP,CAAC,SAAS,GAAG,UAAU,CAAC,EAAE,GAC1B;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAAA;CAAE,CAAA;AAE7C,MAAM,MAAM,+BAA+B,GACvC,IAAI,GACJ,MAAM,GACN,MAAM,GACN,OAAO,GACP,+BAA+B,EAAE,GACjC;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,+BAA+B,CAAA;CAAE,CAAA;AAEtD,MAAM,MAAM,UAAU,GAClB,mBAAmB,GACnB,gBAAgB,GAChB,2BAA2B,GAC3B,4BAA4B,GAC5B,gBAAgB,GAChB,eAAe,CAAA;AAInB,qBAAa,mBAAmB;IAC9B,QAAQ,CAAC,cAAc,eAAc;IACrC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;gBAEb,KAAK,EAAE,SAAS;IAM5B,QAAQ,IAAI,MAAM;CAgBnB;AAGD,qBAAa,gBAAgB;IAC3B,QAAQ,CAAC,cAAc,YAAW;IAClC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAA;IACvC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;gBAGxB,IAAI,EAAE,UAAU,EAChB,cAAc,EAAE,cAAc,EAC9B,KAAK,EAAE,UAAU;IAOnB,QAAQ,IAAI,MAAM;CAwBnB;AAID,qBAAa,2BAA2B;IACtC,QAAQ,CAAC,cAAc,uBAAsB;IAC7C,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAA;gBAEvB,YAAY,EAAE,YAAY;IAItC,QAAQ,IAAI,MAAM;CAGnB;AAGD,qBAAa,4BAA4B;IACvC,QAAQ,CAAC,cAAc,wBAAuB;IAC9C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,SAAS,EAAE,UAAU,EAAE,CAAA;gBAEpB,YAAY,EAAE,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE;IAKnE,QAAQ,IAAI,MAAM;CAInB;AAGD,qBAAa,gBAAgB;IAC3B,QAAQ,CAAC,cAAc,YAAW;IAClC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAA;IAC7B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;gBAEd,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO;IAMvE,QAAQ,IAAI,MAAM;CAOnB;AAED,qBAAa,eAAe;IAC1B,QAAQ,CAAC,cAAc,WAAU;IACjC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAA;IAChC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;gBAEd,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU;IAKtD,QAAQ,IAAI,MAAM;CAQnB;AAuBD,wBAAgB,YAAY,CAAC,GAAG,EAAE,SAAS,GAAG,UAAU,GAAG,GAAG,IAAI,UAAU,CAE3E;AAGD,wBAAgB,2CAA2C,CACzD,EAAE,EAAE,UAAU,GACb,+BAA+B,CA2BjC;
|
|
1
|
+
{"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../src/ast/expressions.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GAAG,MAAM,CAAA;AACjC,MAAM,MAAM,cAAc,GACtB,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,IAAI,GACJ,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,GAAG,GACH,IAAI,GACJ,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,KAAK,GACL,IAAI,CAAA;AACR,MAAM,MAAM,aAAa,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,CAAA;AA2B7C,MAAM,MAAM,SAAS,GACjB,IAAI,GACJ,MAAM,GACN,MAAM,GACN,OAAO,GACP,CAAC,SAAS,GAAG,UAAU,CAAC,EAAE,GAC1B;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAAA;CAAE,CAAA;AAE7C,MAAM,MAAM,+BAA+B,GACvC,IAAI,GACJ,MAAM,GACN,MAAM,GACN,OAAO,GACP,+BAA+B,EAAE,GACjC;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,+BAA+B,CAAA;CAAE,CAAA;AAEtD,MAAM,MAAM,UAAU,GAClB,mBAAmB,GACnB,gBAAgB,GAChB,2BAA2B,GAC3B,4BAA4B,GAC5B,gBAAgB,GAChB,eAAe,CAAA;AAInB,qBAAa,mBAAmB;IAC9B,QAAQ,CAAC,cAAc,eAAc;IACrC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;gBAEb,KAAK,EAAE,SAAS;IAM5B,QAAQ,IAAI,MAAM;CAgBnB;AAGD,qBAAa,gBAAgB;IAC3B,QAAQ,CAAC,cAAc,YAAW;IAClC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAA;IACvC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;gBAGxB,IAAI,EAAE,UAAU,EAChB,cAAc,EAAE,cAAc,EAC9B,KAAK,EAAE,UAAU;IAOnB,QAAQ,IAAI,MAAM;CAwBnB;AAID,qBAAa,2BAA2B;IACtC,QAAQ,CAAC,cAAc,uBAAsB;IAC7C,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAA;gBAEvB,YAAY,EAAE,YAAY;IAItC,QAAQ,IAAI,MAAM;CAGnB;AAGD,qBAAa,4BAA4B;IACvC,QAAQ,CAAC,cAAc,wBAAuB;IAC9C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,SAAS,EAAE,UAAU,EAAE,CAAA;gBAEpB,YAAY,EAAE,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE;IAKnE,QAAQ,IAAI,MAAM;CAInB;AAGD,qBAAa,gBAAgB;IAC3B,QAAQ,CAAC,cAAc,YAAW;IAClC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAA;IAC7B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;gBAEd,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO;IAMvE,QAAQ,IAAI,MAAM;CAOnB;AAED,qBAAa,eAAe;IAC1B,QAAQ,CAAC,cAAc,WAAU;IACjC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAA;IAChC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;gBAEd,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU;IAKtD,QAAQ,IAAI,MAAM;CAQnB;AAuBD,wBAAgB,YAAY,CAAC,GAAG,EAAE,SAAS,GAAG,UAAU,GAAG,GAAG,IAAI,UAAU,CAE3E;AAGD,wBAAgB,2CAA2C,CACzD,EAAE,EAAE,UAAU,GACb,+BAA+B,CA2BjC;AA0DD,wBAAgB,SAAS,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO,CAcjD;AAqBD,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO,CAmB5D"}
|
package/dist/ast/expressions.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isRecord } from '../utils.js';
|
|
1
|
+
import { isRecord, mapRecordValues } from '../utils.js';
|
|
2
2
|
// Operator precendence for unary and binary operators in the Workflows language.
|
|
3
3
|
// Note that these differ somewhat from Javascript.
|
|
4
4
|
// https://cloud.google.com/workflows/docs/reference/syntax/datatypes
|
|
@@ -224,26 +224,23 @@ function primitiveExpressionToLiteralValueOrLiteralExpression(ex) {
|
|
|
224
224
|
});
|
|
225
225
|
}
|
|
226
226
|
else if (isRecord(ex.value)) {
|
|
227
|
-
return
|
|
227
|
+
return mapRecordValues(ex.value, (v) => {
|
|
228
228
|
if (isExpression(v)) {
|
|
229
|
-
return
|
|
229
|
+
return expressionToLiteralValueOrLiteralExpression(v);
|
|
230
230
|
}
|
|
231
231
|
else if (Array.isArray(v) || isRecord(v)) {
|
|
232
|
-
return
|
|
233
|
-
k,
|
|
234
|
-
primitiveExpressionToLiteralValueOrLiteralExpression(new PrimitiveExpression(v)),
|
|
235
|
-
];
|
|
232
|
+
return primitiveExpressionToLiteralValueOrLiteralExpression(new PrimitiveExpression(v));
|
|
236
233
|
}
|
|
237
234
|
else if (v === null ||
|
|
238
235
|
typeof v === 'string' ||
|
|
239
236
|
typeof v === 'number' ||
|
|
240
237
|
typeof v === 'boolean') {
|
|
241
|
-
return
|
|
238
|
+
return v;
|
|
242
239
|
}
|
|
243
240
|
else {
|
|
244
|
-
return
|
|
241
|
+
return `\${${primitiveToString(v)}}`;
|
|
245
242
|
}
|
|
246
|
-
})
|
|
243
|
+
});
|
|
247
244
|
}
|
|
248
245
|
else {
|
|
249
246
|
return `\${${ex.toString()}}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stepnames.d.ts","sourceRoot":"","sources":["../../src/ast/stepnames.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"stepnames.d.ts","sourceRoot":"","sources":["../../src/ast/stepnames.ts"],"names":[],"mappings":"AAAA,OAAO,EAUL,WAAW,EAGZ,MAAM,YAAY,CAAA;AACnB,OAAO,EAAe,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAQzD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAqB;;IAMrC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CAMjC;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,WAAW,GAAG,WAAW,CAS/D"}
|
package/dist/ast/stepnames.js
CHANGED
|
@@ -168,12 +168,13 @@ function relabelNextLabels(steps, replacements) {
|
|
|
168
168
|
*/
|
|
169
169
|
function renameJumpTargets(step, replaceLabels) {
|
|
170
170
|
switch (step.tag) {
|
|
171
|
-
case 'assign':
|
|
172
171
|
case 'call':
|
|
173
172
|
case 'raise':
|
|
174
173
|
case 'return':
|
|
175
174
|
case 'jumptarget':
|
|
176
175
|
return step;
|
|
176
|
+
case 'assign':
|
|
177
|
+
return renameJumpTargetsAssign(step, replaceLabels);
|
|
177
178
|
case 'next':
|
|
178
179
|
return renameJumpTargetsNext(step, replaceLabels);
|
|
179
180
|
case 'for':
|
|
@@ -188,6 +189,15 @@ function renameJumpTargets(step, replaceLabels) {
|
|
|
188
189
|
return renameJumpTargetsTry(step, replaceLabels);
|
|
189
190
|
}
|
|
190
191
|
}
|
|
192
|
+
function renameJumpTargetsAssign(step, replaceLabels) {
|
|
193
|
+
if (step.next) {
|
|
194
|
+
const newLabel = replaceLabels.get(step.next);
|
|
195
|
+
if (newLabel) {
|
|
196
|
+
return step.withNext(newLabel);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
return step;
|
|
200
|
+
}
|
|
191
201
|
function renameJumpTargetsFor(step, replaceLabels) {
|
|
192
202
|
const transformedSteps = step.steps.map(({ name, step: nested }) => ({
|
|
193
203
|
name,
|
package/dist/ast/steps.d.ts
CHANGED
|
@@ -37,17 +37,21 @@ export interface NamedWorkflowStep {
|
|
|
37
37
|
export declare class AssignStepAST {
|
|
38
38
|
readonly tag = "assign";
|
|
39
39
|
readonly assignments: VariableAssignment[];
|
|
40
|
-
readonly label
|
|
41
|
-
|
|
40
|
+
readonly label?: string;
|
|
41
|
+
readonly next?: string;
|
|
42
|
+
constructor(assignments: VariableAssignment[], next?: string, label?: string);
|
|
43
|
+
withNext(newNext?: string): AssignStepAST;
|
|
44
|
+
withLabel(newLabel?: string): AssignStepAST;
|
|
42
45
|
}
|
|
43
46
|
export declare class CallStepAST {
|
|
44
47
|
readonly tag = "call";
|
|
45
48
|
readonly call: string;
|
|
46
49
|
readonly args?: WorkflowParameters;
|
|
47
50
|
readonly result?: VariableName;
|
|
48
|
-
readonly label
|
|
51
|
+
readonly label?: string;
|
|
49
52
|
constructor(call: string, args?: WorkflowParameters, result?: VariableName, label?: string);
|
|
50
53
|
labelPrefix(): string;
|
|
54
|
+
withLabel(newLabel?: string): CallStepAST;
|
|
51
55
|
}
|
|
52
56
|
export declare class ForStepAST {
|
|
53
57
|
readonly tag = "for";
|
|
@@ -57,8 +61,9 @@ export declare class ForStepAST {
|
|
|
57
61
|
readonly listExpression: Expression;
|
|
58
62
|
readonly rangeStart?: number;
|
|
59
63
|
readonly rangeEnd?: number;
|
|
60
|
-
readonly label
|
|
64
|
+
readonly label?: string;
|
|
61
65
|
constructor(steps: WorkflowStepAST[], loopVariableName: VariableName, listExpression: Expression, indexVariable?: VariableName, rangeStart?: number, rangeEnd?: number, label?: string);
|
|
66
|
+
withLabel(newLabel?: string): ForStepAST;
|
|
62
67
|
}
|
|
63
68
|
export declare class ForStepASTNamed {
|
|
64
69
|
readonly tag = "for";
|
|
@@ -73,8 +78,9 @@ export declare class ForStepASTNamed {
|
|
|
73
78
|
export declare class NextStepAST {
|
|
74
79
|
readonly tag = "next";
|
|
75
80
|
readonly target: string;
|
|
76
|
-
readonly label
|
|
81
|
+
readonly label?: string;
|
|
77
82
|
constructor(target: string, label?: string);
|
|
83
|
+
withLabel(newLabel?: string): NextStepAST;
|
|
78
84
|
}
|
|
79
85
|
export declare class ParallelStepAST {
|
|
80
86
|
readonly tag = "parallel";
|
|
@@ -82,8 +88,9 @@ export declare class ParallelStepAST {
|
|
|
82
88
|
readonly shared?: VariableName[];
|
|
83
89
|
readonly concurrencyLimit?: number;
|
|
84
90
|
readonly exceptionPolicy?: string;
|
|
85
|
-
readonly label
|
|
91
|
+
readonly label?: string;
|
|
86
92
|
constructor(steps: Record<StepName, StepsStepAST> | ForStepAST, shared?: VariableName[], concurrencyLimit?: number, exceptionPolicy?: string, label?: string);
|
|
93
|
+
withLabel(newLabel?: string): ParallelStepAST;
|
|
87
94
|
}
|
|
88
95
|
export declare class ParallelStepASTNamed {
|
|
89
96
|
readonly tag = "parallel";
|
|
@@ -97,20 +104,23 @@ export declare class ParallelStepASTNamed {
|
|
|
97
104
|
export declare class RaiseStepAST {
|
|
98
105
|
readonly tag = "raise";
|
|
99
106
|
readonly value: Expression;
|
|
100
|
-
readonly label
|
|
107
|
+
readonly label?: string;
|
|
101
108
|
constructor(value: Expression, label?: string);
|
|
109
|
+
withLabel(newLabel?: string): RaiseStepAST;
|
|
102
110
|
}
|
|
103
111
|
export declare class ReturnStepAST {
|
|
104
112
|
readonly tag = "return";
|
|
105
|
-
readonly value
|
|
106
|
-
readonly label
|
|
113
|
+
readonly value?: Expression;
|
|
114
|
+
readonly label?: string;
|
|
107
115
|
constructor(value: Expression | undefined, label?: string);
|
|
116
|
+
withLabel(newLabel?: string): ReturnStepAST;
|
|
108
117
|
}
|
|
109
118
|
export declare class StepsStepAST {
|
|
110
119
|
readonly tag = "steps";
|
|
111
120
|
readonly steps: WorkflowStepAST[];
|
|
112
|
-
readonly label
|
|
121
|
+
readonly label?: string;
|
|
113
122
|
constructor(steps: WorkflowStepAST[], label?: string);
|
|
123
|
+
withLabel(newLabel?: string): StepsStepAST;
|
|
114
124
|
}
|
|
115
125
|
export declare class StepsStepASTNamed {
|
|
116
126
|
readonly tag = "steps";
|
|
@@ -120,8 +130,9 @@ export declare class StepsStepASTNamed {
|
|
|
120
130
|
export declare class SwitchStepAST {
|
|
121
131
|
readonly tag = "switch";
|
|
122
132
|
readonly branches: SwitchConditionAST<WorkflowStepAST>[];
|
|
123
|
-
readonly label
|
|
133
|
+
readonly label?: string;
|
|
124
134
|
constructor(branches: SwitchConditionAST<WorkflowStepAST>[], label?: string);
|
|
135
|
+
withLabel(newLabel?: string): SwitchStepAST;
|
|
125
136
|
}
|
|
126
137
|
export declare class SwitchStepASTNamed {
|
|
127
138
|
readonly tag = "switch";
|
|
@@ -140,8 +151,9 @@ export declare class TryStepAST {
|
|
|
140
151
|
readonly exceptSteps: WorkflowStepAST[];
|
|
141
152
|
readonly retryPolicy?: string | CustomRetryPolicy;
|
|
142
153
|
readonly errorMap?: VariableName;
|
|
143
|
-
readonly label
|
|
154
|
+
readonly label?: string;
|
|
144
155
|
constructor(trySteps: WorkflowStepAST[], exceptSteps: WorkflowStepAST[], retryPolicy?: string | CustomRetryPolicy, errorMap?: VariableName, label?: string);
|
|
156
|
+
withLabel(newLabel?: string): TryStepAST;
|
|
145
157
|
}
|
|
146
158
|
export declare class TryStepASTNamed {
|
|
147
159
|
readonly tag = "try";
|
|
@@ -172,5 +184,4 @@ export declare function nestedSteps(step: WorkflowStepASTWithNamedNested): Named
|
|
|
172
184
|
* Returns an GCP Workflows object representation of a step.
|
|
173
185
|
*/
|
|
174
186
|
export declare function renderStep(step: WorkflowStepASTWithNamedNested): Record<string, unknown>;
|
|
175
|
-
export declare function stepWithLabel(step: WorkflowStepAST, label: string): WorkflowStepAST;
|
|
176
187
|
//# sourceMappingURL=steps.d.ts.map
|
package/dist/ast/steps.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"steps.d.ts","sourceRoot":"","sources":["../../src/ast/steps.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,YAAY,EAEb,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAE/D,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAA;AAC7B,MAAM,MAAM,kBAAkB,GAAG,SAAS,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;AACpE,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;AAEjE,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE;QACP,YAAY,EAAE,MAAM,CAAA;QACpB,QAAQ,EAAE,MAAM,CAAA;QAChB,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;CACF;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,YAAY,EAAE,cAAc,EAAE,CAAA;CACxC;AAED,qBAAa,cAAc;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,eAAe,EAAE,CAAA;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,EAAE,CAAA;gBAGnC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,eAAe,EAAE,EACxB,MAAM,CAAC,EAAE,iBAAiB,EAAE;IAO9B,aAAa,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,WAAW;CAIjE;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB,aAAa,GACb,WAAW,GACX,UAAU,GACV,WAAW,GACX,eAAe,GACf,YAAY,GACZ,aAAa,GACb,YAAY,GACZ,aAAa,GACb,UAAU,GACV,aAAa,CAAA;AAEjB;;GAEG;AACH,MAAM,MAAM,8BAA8B,GACtC,aAAa,GACb,WAAW,GACX,eAAe,GACf,WAAW,GACX,oBAAoB,GACpB,YAAY,GACZ,aAAa,GACb,iBAAiB,GACjB,kBAAkB,GAClB,eAAe,GACf,aAAa,CAAA;AAEjB,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,QAAQ,CAAA;IACd,IAAI,EAAE,8BAA8B,CAAA;CACrC;AAGD,qBAAa,aAAa;IACxB,QAAQ,CAAC,GAAG,YAAW;IACvB,QAAQ,CAAC,WAAW,EAAE,kBAAkB,EAAE,CAAA;IAC1C,QAAQ,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"steps.d.ts","sourceRoot":"","sources":["../../src/ast/steps.ts"],"names":[],"mappings":"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"}
|
package/dist/ast/steps.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isRecord } from '../utils.js';
|
|
1
|
+
import { isRecord, mapRecordValues } from '../utils.js';
|
|
2
2
|
import { expressionToLiteralValueOrLiteralExpression, } from './expressions.js';
|
|
3
3
|
import { Subworkflow } from './workflows.js';
|
|
4
4
|
export class SubworkflowAST {
|
|
@@ -20,10 +20,23 @@ export class AssignStepAST {
|
|
|
20
20
|
tag = 'assign';
|
|
21
21
|
assignments;
|
|
22
22
|
label;
|
|
23
|
-
|
|
23
|
+
next;
|
|
24
|
+
constructor(assignments, next, label) {
|
|
24
25
|
this.assignments = assignments;
|
|
26
|
+
this.next = next;
|
|
25
27
|
this.label = label;
|
|
26
28
|
}
|
|
29
|
+
withNext(newNext) {
|
|
30
|
+
if (newNext === this.next) {
|
|
31
|
+
return this;
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
return new AssignStepAST(this.assignments, newNext, this.label);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
withLabel(newLabel) {
|
|
38
|
+
return new AssignStepAST(this.assignments, this.next, newLabel);
|
|
39
|
+
}
|
|
27
40
|
}
|
|
28
41
|
// https://cloud.google.com/workflows/docs/reference/syntax/calls
|
|
29
42
|
export class CallStepAST {
|
|
@@ -41,6 +54,9 @@ export class CallStepAST {
|
|
|
41
54
|
labelPrefix() {
|
|
42
55
|
return 'call_' + this.call.replaceAll(/[^a-zA-Z0-9]/g, '_') + '_';
|
|
43
56
|
}
|
|
57
|
+
withLabel(newLabel) {
|
|
58
|
+
return new CallStepAST(this.call, this.args, this.result, newLabel);
|
|
59
|
+
}
|
|
44
60
|
}
|
|
45
61
|
// https://cloud.google.com/workflows/docs/reference/syntax/iteration
|
|
46
62
|
export class ForStepAST {
|
|
@@ -61,6 +77,9 @@ export class ForStepAST {
|
|
|
61
77
|
this.rangeEnd = rangeEnd;
|
|
62
78
|
this.label = label;
|
|
63
79
|
}
|
|
80
|
+
withLabel(newLabel) {
|
|
81
|
+
return new ForStepAST(this.steps, this.loopVariableName, this.listExpression, this.indexVariableName, this.rangeStart, this.rangeEnd, newLabel);
|
|
82
|
+
}
|
|
64
83
|
}
|
|
65
84
|
export class ForStepASTNamed {
|
|
66
85
|
tag = 'for';
|
|
@@ -87,6 +106,9 @@ export class NextStepAST {
|
|
|
87
106
|
this.target = target;
|
|
88
107
|
this.label = label;
|
|
89
108
|
}
|
|
109
|
+
withLabel(newLabel) {
|
|
110
|
+
return new NextStepAST(this.target, newLabel);
|
|
111
|
+
}
|
|
90
112
|
}
|
|
91
113
|
// https://cloud.google.com/workflows/docs/reference/syntax/parallel-steps
|
|
92
114
|
export class ParallelStepAST {
|
|
@@ -103,6 +125,9 @@ export class ParallelStepAST {
|
|
|
103
125
|
this.exceptionPolicy = exceptionPolicy;
|
|
104
126
|
this.label = label;
|
|
105
127
|
}
|
|
128
|
+
withLabel(newLabel) {
|
|
129
|
+
return new ParallelStepAST(this.steps, this.shared, this.concurrencyLimit, this.exceptionPolicy, newLabel);
|
|
130
|
+
}
|
|
106
131
|
}
|
|
107
132
|
export class ParallelStepASTNamed {
|
|
108
133
|
tag = 'parallel';
|
|
@@ -134,6 +159,9 @@ export class RaiseStepAST {
|
|
|
134
159
|
this.value = value;
|
|
135
160
|
this.label = label;
|
|
136
161
|
}
|
|
162
|
+
withLabel(newLabel) {
|
|
163
|
+
return new RaiseStepAST(this.value, newLabel);
|
|
164
|
+
}
|
|
137
165
|
}
|
|
138
166
|
// https://cloud.google.com/workflows/docs/reference/syntax/completing
|
|
139
167
|
export class ReturnStepAST {
|
|
@@ -144,6 +172,9 @@ export class ReturnStepAST {
|
|
|
144
172
|
this.value = value;
|
|
145
173
|
this.label = label;
|
|
146
174
|
}
|
|
175
|
+
withLabel(newLabel) {
|
|
176
|
+
return new ReturnStepAST(this.value, newLabel);
|
|
177
|
+
}
|
|
147
178
|
}
|
|
148
179
|
// https://cloud.google.com/workflows/docs/reference/syntax/steps#embedded-steps
|
|
149
180
|
export class StepsStepAST {
|
|
@@ -154,6 +185,9 @@ export class StepsStepAST {
|
|
|
154
185
|
this.steps = steps;
|
|
155
186
|
this.label = label;
|
|
156
187
|
}
|
|
188
|
+
withLabel(newLabel) {
|
|
189
|
+
return new StepsStepAST(this.steps, newLabel);
|
|
190
|
+
}
|
|
157
191
|
}
|
|
158
192
|
export class StepsStepASTNamed {
|
|
159
193
|
tag = 'steps';
|
|
@@ -171,6 +205,9 @@ export class SwitchStepAST {
|
|
|
171
205
|
this.branches = branches;
|
|
172
206
|
this.label = label;
|
|
173
207
|
}
|
|
208
|
+
withLabel(newLabel) {
|
|
209
|
+
return new SwitchStepAST(this.branches, newLabel);
|
|
210
|
+
}
|
|
174
211
|
}
|
|
175
212
|
export class SwitchStepASTNamed {
|
|
176
213
|
tag = 'switch';
|
|
@@ -196,6 +233,9 @@ export class TryStepAST {
|
|
|
196
233
|
this.errorMap = errorMap;
|
|
197
234
|
this.label = label;
|
|
198
235
|
}
|
|
236
|
+
withLabel(newLabel) {
|
|
237
|
+
return new TryStepAST(this.trySteps, this.exceptSteps, this.retryPolicy, this.errorMap, newLabel);
|
|
238
|
+
}
|
|
199
239
|
}
|
|
200
240
|
export class TryStepASTNamed {
|
|
201
241
|
tag = 'try';
|
|
@@ -267,6 +307,7 @@ function namedStepsFor(step, generateName) {
|
|
|
267
307
|
}
|
|
268
308
|
function namedStepsParallel(step, generateName) {
|
|
269
309
|
let steps;
|
|
310
|
+
const mainLabel = step.label ?? generateName('parallel');
|
|
270
311
|
if (!isRecord(step.steps)) {
|
|
271
312
|
const forStep = namedSteps(step.steps, generateName).step;
|
|
272
313
|
if (forStep.tag !== 'for') {
|
|
@@ -275,13 +316,13 @@ function namedStepsParallel(step, generateName) {
|
|
|
275
316
|
steps = forStep;
|
|
276
317
|
}
|
|
277
318
|
else {
|
|
278
|
-
steps =
|
|
279
|
-
const named =
|
|
280
|
-
return
|
|
281
|
-
})
|
|
319
|
+
steps = mapRecordValues(step.steps, (step) => {
|
|
320
|
+
const named = step.steps.map((x) => namedSteps(x, generateName));
|
|
321
|
+
return new StepsStepASTNamed(named);
|
|
322
|
+
});
|
|
282
323
|
}
|
|
283
324
|
return {
|
|
284
|
-
name:
|
|
325
|
+
name: mainLabel,
|
|
285
326
|
step: new ParallelStepASTNamed(steps, step.shared, step.concurrencyLimit, step.exceptionPolicy),
|
|
286
327
|
};
|
|
287
328
|
}
|
|
@@ -292,21 +333,23 @@ function namedStepsSteps(step, generateName) {
|
|
|
292
333
|
};
|
|
293
334
|
}
|
|
294
335
|
function namedStepsSwitch(step, generateName) {
|
|
336
|
+
const mainLabel = step.label ?? generateName('switch');
|
|
295
337
|
const namedBranches = step.branches.map((branch) => ({
|
|
296
338
|
condition: branch.condition,
|
|
297
339
|
steps: branch.steps.map((nested) => namedSteps(nested, generateName)),
|
|
298
340
|
next: branch.next,
|
|
299
341
|
}));
|
|
300
342
|
return {
|
|
301
|
-
name:
|
|
343
|
+
name: mainLabel,
|
|
302
344
|
step: new SwitchStepASTNamed(namedBranches),
|
|
303
345
|
};
|
|
304
346
|
}
|
|
305
347
|
function namedStepsTry(step, generateName) {
|
|
348
|
+
const mainLabel = step.label ?? generateName('try');
|
|
306
349
|
const namedTrySteps = step.trySteps.map((nested) => namedSteps(nested, generateName));
|
|
307
350
|
const namedExceptSteps = step.exceptSteps.map((nested) => namedSteps(nested, generateName));
|
|
308
351
|
return {
|
|
309
|
-
name:
|
|
352
|
+
name: mainLabel,
|
|
310
353
|
step: new TryStepASTNamed(namedTrySteps, namedExceptSteps, step.retryPolicy, step.errorMap),
|
|
311
354
|
};
|
|
312
355
|
}
|
|
@@ -366,6 +409,7 @@ export function renderStep(step) {
|
|
|
366
409
|
assign: step.assignments.map(([key, val]) => {
|
|
367
410
|
return { [key]: expressionToLiteralValueOrLiteralExpression(val) };
|
|
368
411
|
}),
|
|
412
|
+
...(step.next && { next: step.next }),
|
|
369
413
|
};
|
|
370
414
|
case 'call':
|
|
371
415
|
return renderCallStep(step);
|
|
@@ -422,9 +466,7 @@ function renderSwitchCondition(cond) {
|
|
|
422
466
|
function renderCallStep(step) {
|
|
423
467
|
let args = undefined;
|
|
424
468
|
if (step.args) {
|
|
425
|
-
args =
|
|
426
|
-
return [k, expressionToLiteralValueOrLiteralExpression(v)];
|
|
427
|
-
}));
|
|
469
|
+
args = mapRecordValues(step.args, (v) => expressionToLiteralValueOrLiteralExpression(v));
|
|
428
470
|
}
|
|
429
471
|
return {
|
|
430
472
|
call: step.call,
|
|
@@ -506,29 +548,3 @@ function renderSteps(steps) {
|
|
|
506
548
|
return { [x.name]: renderStep(x.step) };
|
|
507
549
|
});
|
|
508
550
|
}
|
|
509
|
-
export function stepWithLabel(step, label) {
|
|
510
|
-
switch (step.tag) {
|
|
511
|
-
case 'assign':
|
|
512
|
-
return new AssignStepAST(step.assignments, label);
|
|
513
|
-
case 'call':
|
|
514
|
-
return new CallStepAST(step.call, step.args, step.result, label);
|
|
515
|
-
case 'for':
|
|
516
|
-
return new ForStepAST(step.steps, step.loopVariableName, step.listExpression, step.indexVariableName, step.rangeStart, step.rangeEnd, label);
|
|
517
|
-
case 'next':
|
|
518
|
-
return new NextStepAST(step.target, label);
|
|
519
|
-
case 'parallel':
|
|
520
|
-
return new ParallelStepAST(step.steps, step.shared, step.concurrencyLimit, step.exceptionPolicy, label);
|
|
521
|
-
case 'raise':
|
|
522
|
-
return new RaiseStepAST(step.value, label);
|
|
523
|
-
case 'return':
|
|
524
|
-
return new ReturnStepAST(step.value, label);
|
|
525
|
-
case 'steps':
|
|
526
|
-
return new StepsStepAST(step.steps, label);
|
|
527
|
-
case 'switch':
|
|
528
|
-
return new SwitchStepAST(step.branches, label);
|
|
529
|
-
case 'try':
|
|
530
|
-
return new TryStepAST(step.trySteps, step.exceptSteps, step.retryPolicy, step.errorMap, label);
|
|
531
|
-
case 'jumptarget':
|
|
532
|
-
return step;
|
|
533
|
-
}
|
|
534
|
-
}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
+
import { TSESTree } from '@typescript-eslint/typescript-estree';
|
|
1
2
|
import { Expression, Primitive } from '../ast/expressions.js';
|
|
2
|
-
export declare function convertExpression(instance:
|
|
3
|
-
export declare function convertObjectExpression(node:
|
|
4
|
-
export declare function convertObjectAsExpressionValues(node:
|
|
5
|
-
export declare function convertMemberExpression(node:
|
|
3
|
+
export declare function convertExpression(instance: TSESTree.Expression): Expression;
|
|
4
|
+
export declare function convertObjectExpression(node: TSESTree.ObjectExpression): Record<string, Primitive | Expression>;
|
|
5
|
+
export declare function convertObjectAsExpressionValues(node: TSESTree.ObjectExpression): Record<string, Expression>;
|
|
6
|
+
export declare function convertMemberExpression(node: TSESTree.MemberExpression): Expression;
|
|
7
|
+
export declare function isMagicFunction(calleeName: string): boolean;
|
|
8
|
+
export declare function isMagicFunctionStatmentOnly(calleeName: string): boolean;
|
|
9
|
+
export declare function throwIfSpread<T extends TSESTree.Expression | TSESTree.Property | TSESTree.SpreadElement | null>(nodes: T[]): Exclude<T, TSESTree.SpreadElement>[];
|
|
6
10
|
//# sourceMappingURL=expressions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../src/transpiler/expressions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../src/transpiler/expressions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAkB,MAAM,sCAAsC,CAAA;AAC/E,OAAO,EAGL,UAAU,EAGV,SAAS,EAMV,MAAM,uBAAuB,CAAA;AAI9B,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,GAAG,UAAU,CAO3E;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,GAC9B,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU,CAAC,CAgCxC;AAED,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,QAAQ,CAAC,gBAAgB,GAC9B,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAK5B;AAsMD,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,GAC9B,UAAU,CAcZ;AA0JD,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAG3D;AAED,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAGvE;AA8CD,wBAAgB,aAAa,CAC3B,CAAC,SACG,QAAQ,CAAC,UAAU,GACnB,QAAQ,CAAC,QAAQ,GACjB,QAAQ,CAAC,aAAa,GACtB,IAAI,EACR,KAAK,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,CAgBlD"}
|