ts2workflows 0.8.0 → 0.10.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 CHANGED
@@ -61,10 +61,6 @@ npm run build
61
61
  npm run test
62
62
  ```
63
63
 
64
- ## Publishing the package to npmjs.com
65
-
66
- 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.
67
-
68
64
  ## Architecture
69
65
 
70
66
  A transpilation using ts2workflows consists of five phases:
@@ -14,6 +14,9 @@ export declare class PrimitiveExpression {
14
14
  constructor(value: Primitive);
15
15
  toString(): string;
16
16
  }
17
+ export declare const nullEx: PrimitiveExpression;
18
+ export declare const trueEx: PrimitiveExpression;
19
+ export declare const falseEx: PrimitiveExpression;
17
20
  export declare class BinaryExpression {
18
21
  readonly expressionType = "binary";
19
22
  readonly binaryOperator: BinaryOperator;
@@ -51,7 +54,13 @@ export declare class UnaryExpression {
51
54
  toString(): string;
52
55
  }
53
56
  export declare function isExpression(val: Primitive | Expression): val is Expression;
57
+ export declare function asExpression(x: Primitive | Expression): Expression;
58
+ export declare function safeAsExpression(x: Primitive | Expression | undefined): Expression | undefined;
54
59
  export declare function expressionToLiteralValueOrLiteralExpression(ex: Expression): LiteralValueOrLiteralExpression;
55
60
  export declare function isLiteral(ex: Expression): boolean;
56
61
  export declare function isFullyQualifiedName(ex: Expression): boolean;
62
+ /**
63
+ * Returns true if ex is pure expression (can't have side-effects)
64
+ */
65
+ export declare function isPure(ex: Expression): boolean;
57
66
  //# sourceMappingURL=expressions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../src/ast/expressions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../src/ast/expressions.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { isRecord, mapRecordValues } from '../utils.js';
1
+ import * as R from 'ramda';
2
+ import { isRecord } from '../utils.js';
2
3
  // Operator precendence for unary and binary operators in the Workflows language.
3
4
  // Note that these differ somewhat from Javascript.
4
5
  // https://cloud.google.com/workflows/docs/reference/syntax/datatypes
@@ -24,7 +25,6 @@ const operatorPrecedenceValue = new Map([
24
25
  ['or', 1],
25
26
  ]);
26
27
  // A primitive (string, number, list, etc) value
27
- // TODO: Is this needed? Use unboxed Primitive instead?
28
28
  export class PrimitiveExpression {
29
29
  expressionType = 'primitive';
30
30
  value;
@@ -52,6 +52,9 @@ export class PrimitiveExpression {
52
52
  }
53
53
  }
54
54
  }
55
+ export const nullEx = new PrimitiveExpression(null);
56
+ export const trueEx = new PrimitiveExpression(true);
57
+ export const falseEx = new PrimitiveExpression(false);
55
58
  // expr OPERATOR expr
56
59
  export class BinaryExpression {
57
60
  expressionType = 'binary';
@@ -146,20 +149,18 @@ export class UnaryExpression {
146
149
  return `${this.operator}${separator}${valueString}`;
147
150
  }
148
151
  }
152
+ // Convert an Expression or Primitive to a string representation.
153
+ // Does not add ${}.
154
+ const expressionOrPrimitiveToString = R.ifElse(isExpression, (x) => x.toString(), primitiveToString);
149
155
  // Convert a Primitive to a string representation.
150
156
  // Does not add ${}.
151
157
  function primitiveToString(val) {
158
+ const valuesToString = R.map(expressionOrPrimitiveToString);
152
159
  if (Array.isArray(val)) {
153
- const elements = val.map((x) => {
154
- return isExpression(x) ? x.toString() : primitiveToString(x);
155
- });
156
- return `[${elements.join(', ')}]`;
160
+ return `[${valuesToString(val).join(', ')}]`;
157
161
  }
158
162
  else if (val !== null && typeof val === 'object') {
159
- const items = Object.entries(val).map(([k, v]) => {
160
- return [k, isExpression(v) ? v.toString() : primitiveToString(v)];
161
- });
162
- const elements = items.map(([k, v]) => `"${k}":${v}`);
163
+ const elements = Object.values(valuesToString(val)).map(([k, v]) => `"${k}":${v}`);
163
164
  return `{${elements.join(',')}}`;
164
165
  }
165
166
  else {
@@ -169,6 +170,12 @@ function primitiveToString(val) {
169
170
  export function isExpression(val) {
170
171
  return val instanceof Object && 'expressionType' in val && !isRecord(val);
171
172
  }
173
+ export function asExpression(x) {
174
+ return isExpression(x) ? x : new PrimitiveExpression(x);
175
+ }
176
+ export function safeAsExpression(x) {
177
+ return x === undefined ? undefined : asExpression(x);
178
+ }
172
179
  // Returns a literal for simple terms and a literal expression enclosed in ${} for complex terms.
173
180
  export function expressionToLiteralValueOrLiteralExpression(ex) {
174
181
  switch (ex.expressionType) {
@@ -224,7 +231,7 @@ function primitiveExpressionToLiteralValueOrLiteralExpression(ex) {
224
231
  });
225
232
  }
226
233
  else if (isRecord(ex.value)) {
227
- return mapRecordValues(ex.value, (v) => {
234
+ const mapRecord = R.map((v) => {
228
235
  if (isExpression(v)) {
229
236
  return expressionToLiteralValueOrLiteralExpression(v);
230
237
  }
@@ -241,6 +248,7 @@ function primitiveExpressionToLiteralValueOrLiteralExpression(ex) {
241
248
  return `\${${primitiveToString(v)}}`;
242
249
  }
243
250
  });
251
+ return mapRecord(ex.value);
244
252
  }
245
253
  else {
246
254
  return `\${${ex.toString()}}`;
@@ -262,16 +270,13 @@ export function isLiteral(ex) {
262
270
  return false;
263
271
  }
264
272
  }
273
+ const expressionOrPrimitiveIsLiteral = R.ifElse(isExpression, isLiteral, primitiveIsLiteral);
265
274
  function primitiveIsLiteral(value) {
266
275
  if (Array.isArray(value)) {
267
- return value.every((x) => {
268
- return isExpression(x) ? isLiteral(x) : primitiveIsLiteral(x);
269
- });
276
+ return value.every(expressionOrPrimitiveIsLiteral);
270
277
  }
271
278
  else if (isRecord(value)) {
272
- return Object.values(value).every((x) => {
273
- return isExpression(x) ? isLiteral(x) : primitiveIsLiteral(x);
274
- });
279
+ return Object.values(value).every(expressionOrPrimitiveIsLiteral);
275
280
  }
276
281
  else {
277
282
  return (typeof value === 'string' ||
@@ -285,13 +290,32 @@ export function isFullyQualifiedName(ex) {
285
290
  case 'primitive':
286
291
  case 'binary':
287
292
  case 'functionInvocation':
293
+ case 'unary':
288
294
  return false;
289
295
  case 'variableReference':
290
296
  return true;
291
297
  case 'member':
292
298
  return (isFullyQualifiedName(ex.object) &&
293
- (ex.computed || isFullyQualifiedName(ex.property)));
299
+ (isFullyQualifiedName(ex.property) ||
300
+ (ex.computed && ex.property.expressionType === 'primitive')));
301
+ }
302
+ }
303
+ /**
304
+ * Returns true if ex is pure expression (can't have side-effects)
305
+ */
306
+ export function isPure(ex) {
307
+ switch (ex.expressionType) {
308
+ case 'primitive':
309
+ return true;
310
+ case 'binary':
311
+ return isPure(ex.left) && isPure(ex.right);
312
+ case 'functionInvocation':
313
+ return false;
314
+ case 'variableReference':
315
+ return true;
316
+ case 'member':
317
+ return isPure(ex.object) && isPure(ex.property);
294
318
  case 'unary':
295
- return isFullyQualifiedName(ex.value);
319
+ return isPure(ex.value);
296
320
  }
297
321
  }
@@ -1,7 +1,10 @@
1
- import { Expression, VariableName } from './expressions.js';
1
+ import { Expression, MemberExpression, VariableName, VariableReferenceExpression } from './expressions.js';
2
2
  import { Subworkflow, WorkflowParameter } from './workflows.js';
3
3
  export type StepName = string;
4
- export type VariableAssignment = readonly [VariableName, Expression];
4
+ export interface VariableAssignment {
5
+ name: VariableReferenceExpression | MemberExpression;
6
+ value: Expression;
7
+ }
5
8
  export type WorkflowParameters = Record<VariableName, Expression>;
6
9
  export interface CustomRetryPolicy {
7
10
  predicate?: string;
@@ -25,7 +28,7 @@ export declare class SubworkflowAST {
25
28
  /**
26
29
  * A workflow step before step names have been assigned.
27
30
  */
28
- export type WorkflowStepAST = AssignStepAST | CallStepAST | ForStepAST | NextStepAST | ParallelStepAST | RaiseStepAST | ReturnStepAST | StepsStepAST | SwitchStepAST | TryStepAST | JumpTargetAST;
31
+ export type WorkflowStepAST = AssignStepAST | CallStepAST | ForStepAST | ForRangeStepAST | NextStepAST | ParallelStepAST | RaiseStepAST | ReturnStepAST | StepsStepAST | SwitchStepAST | TryStepAST | JumpTargetAST;
29
32
  /**
30
33
  * A workflow step after names have been generated for the nested steps.
31
34
  */
@@ -42,6 +45,7 @@ export declare class AssignStepAST {
42
45
  constructor(assignments: VariableAssignment[], next?: string, label?: string);
43
46
  withNext(newNext?: string): AssignStepAST;
44
47
  withLabel(newLabel?: string): AssignStepAST;
48
+ applyNestedSteps(): AssignStepAST;
45
49
  }
46
50
  export declare class CallStepAST {
47
51
  readonly tag = "call";
@@ -52,6 +56,7 @@ export declare class CallStepAST {
52
56
  constructor(call: string, args?: WorkflowParameters, result?: VariableName, label?: string);
53
57
  labelPrefix(): string;
54
58
  withLabel(newLabel?: string): CallStepAST;
59
+ applyNestedSteps(): CallStepAST;
55
60
  }
56
61
  export declare class ForStepAST {
57
62
  readonly tag = "for";
@@ -59,11 +64,21 @@ export declare class ForStepAST {
59
64
  readonly loopVariableName: VariableName;
60
65
  readonly indexVariableName?: VariableName;
61
66
  readonly listExpression: Expression;
62
- readonly rangeStart?: number;
63
- readonly rangeEnd?: number;
64
67
  readonly label?: string;
65
- constructor(steps: WorkflowStepAST[], loopVariableName: VariableName, listExpression: Expression, indexVariable?: VariableName, rangeStart?: number, rangeEnd?: number, label?: string);
68
+ constructor(steps: WorkflowStepAST[], loopVariableName: VariableName, listExpression: Expression, indexVariable?: VariableName, label?: string);
66
69
  withLabel(newLabel?: string): ForStepAST;
70
+ applyNestedSteps(fn: (steps: WorkflowStepAST[]) => WorkflowStepAST[]): ForStepAST;
71
+ }
72
+ export declare class ForRangeStepAST {
73
+ readonly tag = "forrange";
74
+ readonly steps: WorkflowStepAST[];
75
+ readonly loopVariableName: VariableName;
76
+ readonly rangeStart: number | Expression;
77
+ readonly rangeEnd: number | Expression;
78
+ readonly label?: string;
79
+ constructor(steps: WorkflowStepAST[], loopVariableName: VariableName, rangeStart: number | Expression, rangeEnd: number | Expression, label?: string);
80
+ withLabel(newLabel?: string): ForRangeStepAST;
81
+ applyNestedSteps(fn: (steps: WorkflowStepAST[]) => WorkflowStepAST[]): ForRangeStepAST;
67
82
  }
68
83
  export declare class ForStepASTNamed {
69
84
  readonly tag = "for";
@@ -71,9 +86,9 @@ export declare class ForStepASTNamed {
71
86
  readonly loopVariableName: VariableName;
72
87
  readonly indexVariableName?: VariableName;
73
88
  readonly listExpression?: Expression;
74
- readonly rangeStart?: number;
75
- readonly rangeEnd?: number;
76
- constructor(steps: NamedWorkflowStep[], loopVariableName: VariableName, listExpression?: Expression, indexVariable?: VariableName, rangeStart?: number, rangeEnd?: number);
89
+ readonly rangeStart?: number | Expression;
90
+ readonly rangeEnd?: number | Expression;
91
+ constructor(steps: NamedWorkflowStep[], loopVariableName: VariableName, listExpression?: Expression, indexVariable?: VariableName, rangeStart?: number | Expression, rangeEnd?: number | Expression);
77
92
  }
78
93
  export declare class NextStepAST {
79
94
  readonly tag = "next";
@@ -81,6 +96,7 @@ export declare class NextStepAST {
81
96
  readonly label?: string;
82
97
  constructor(target: string, label?: string);
83
98
  withLabel(newLabel?: string): NextStepAST;
99
+ applyNestedSteps(): NextStepAST;
84
100
  }
85
101
  export declare class ParallelStepAST {
86
102
  readonly tag = "parallel";
@@ -91,6 +107,7 @@ export declare class ParallelStepAST {
91
107
  readonly label?: string;
92
108
  constructor(steps: Record<StepName, StepsStepAST> | ForStepAST, shared?: VariableName[], concurrencyLimit?: number, exceptionPolicy?: string, label?: string);
93
109
  withLabel(newLabel?: string): ParallelStepAST;
110
+ applyNestedSteps(fn: (steps: WorkflowStepAST[]) => WorkflowStepAST[]): ParallelStepAST;
94
111
  }
95
112
  export declare class ParallelStepASTNamed {
96
113
  readonly tag = "parallel";
@@ -107,6 +124,7 @@ export declare class RaiseStepAST {
107
124
  readonly label?: string;
108
125
  constructor(value: Expression, label?: string);
109
126
  withLabel(newLabel?: string): RaiseStepAST;
127
+ applyNestedSteps(): RaiseStepAST;
110
128
  }
111
129
  export declare class ReturnStepAST {
112
130
  readonly tag = "return";
@@ -114,6 +132,7 @@ export declare class ReturnStepAST {
114
132
  readonly label?: string;
115
133
  constructor(value: Expression | undefined, label?: string);
116
134
  withLabel(newLabel?: string): ReturnStepAST;
135
+ applyNestedSteps(): ReturnStepAST;
117
136
  }
118
137
  export declare class StepsStepAST {
119
138
  readonly tag = "steps";
@@ -121,6 +140,7 @@ export declare class StepsStepAST {
121
140
  readonly label?: string;
122
141
  constructor(steps: WorkflowStepAST[], label?: string);
123
142
  withLabel(newLabel?: string): StepsStepAST;
143
+ applyNestedSteps(fn: (steps: WorkflowStepAST[]) => WorkflowStepAST[]): StepsStepAST;
124
144
  }
125
145
  export declare class StepsStepASTNamed {
126
146
  readonly tag = "steps";
@@ -133,6 +153,7 @@ export declare class SwitchStepAST {
133
153
  readonly label?: string;
134
154
  constructor(branches: SwitchConditionAST<WorkflowStepAST>[], label?: string);
135
155
  withLabel(newLabel?: string): SwitchStepAST;
156
+ applyNestedSteps(fn: (steps: WorkflowStepAST[]) => WorkflowStepAST[]): SwitchStepAST;
136
157
  }
137
158
  export declare class SwitchStepASTNamed {
138
159
  readonly tag = "switch";
@@ -154,6 +175,7 @@ export declare class TryStepAST {
154
175
  readonly label?: string;
155
176
  constructor(trySteps: WorkflowStepAST[], exceptSteps?: WorkflowStepAST[], retryPolicy?: string | CustomRetryPolicy, errorMap?: VariableName, label?: string);
156
177
  withLabel(newLabel?: string): TryStepAST;
178
+ applyNestedSteps(fn: (steps: WorkflowStepAST[]) => WorkflowStepAST[]): TryStepAST;
157
179
  }
158
180
  export declare class TryStepASTNamed {
159
181
  readonly tag = "try";
@@ -167,6 +189,7 @@ export declare class JumpTargetAST {
167
189
  readonly tag = "jumptarget";
168
190
  readonly label: string;
169
191
  constructor();
192
+ applyNestedSteps(): JumpTargetAST;
170
193
  }
171
194
  /**
172
195
  * Assign a name for this step and its child steps.
@@ -1 +1 @@
1
- {"version":3,"file":"steps.d.ts","sourceRoot":"","sources":["../../src/ast/steps.ts"],"names":[],"mappings":"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"}
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,5 @@
1
- import { isRecord, mapRecordValues } from '../utils.js';
1
+ import * as R from 'ramda';
2
+ import { isRecord } from '../utils.js';
2
3
  import { expressionToLiteralValueOrLiteralExpression, } from './expressions.js';
3
4
  import { Subworkflow } from './workflows.js';
4
5
  export class SubworkflowAST {
@@ -37,6 +38,9 @@ export class AssignStepAST {
37
38
  withLabel(newLabel) {
38
39
  return new AssignStepAST(this.assignments, this.next, newLabel);
39
40
  }
41
+ applyNestedSteps() {
42
+ return this;
43
+ }
40
44
  }
41
45
  // https://cloud.google.com/workflows/docs/reference/syntax/calls
42
46
  export class CallStepAST {
@@ -57,6 +61,9 @@ export class CallStepAST {
57
61
  withLabel(newLabel) {
58
62
  return new CallStepAST(this.call, this.args, this.result, newLabel);
59
63
  }
64
+ applyNestedSteps() {
65
+ return this;
66
+ }
60
67
  }
61
68
  // https://cloud.google.com/workflows/docs/reference/syntax/iteration
62
69
  export class ForStepAST {
@@ -65,20 +72,40 @@ export class ForStepAST {
65
72
  loopVariableName;
66
73
  indexVariableName;
67
74
  listExpression;
68
- rangeStart;
69
- rangeEnd;
70
75
  label;
71
- constructor(steps, loopVariableName, listExpression, indexVariable, rangeStart, rangeEnd, label) {
76
+ constructor(steps, loopVariableName, listExpression, indexVariable, label) {
72
77
  this.steps = steps;
73
78
  this.loopVariableName = loopVariableName;
74
79
  this.listExpression = listExpression;
75
80
  this.indexVariableName = indexVariable;
81
+ this.label = label;
82
+ }
83
+ withLabel(newLabel) {
84
+ return new ForStepAST(this.steps, this.loopVariableName, this.listExpression, this.indexVariableName, newLabel);
85
+ }
86
+ applyNestedSteps(fn) {
87
+ return new ForStepAST(fn(this.steps), this.loopVariableName, this.listExpression, this.indexVariableName, this.label);
88
+ }
89
+ }
90
+ export class ForRangeStepAST {
91
+ tag = 'forrange';
92
+ steps;
93
+ loopVariableName;
94
+ rangeStart;
95
+ rangeEnd;
96
+ label;
97
+ constructor(steps, loopVariableName, rangeStart, rangeEnd, label) {
98
+ this.steps = steps;
99
+ this.loopVariableName = loopVariableName;
76
100
  this.rangeStart = rangeStart;
77
101
  this.rangeEnd = rangeEnd;
78
102
  this.label = label;
79
103
  }
80
104
  withLabel(newLabel) {
81
- return new ForStepAST(this.steps, this.loopVariableName, this.listExpression, this.indexVariableName, this.rangeStart, this.rangeEnd, newLabel);
105
+ return new ForRangeStepAST(this.steps, this.loopVariableName, this.rangeStart, this.rangeEnd, newLabel);
106
+ }
107
+ applyNestedSteps(fn) {
108
+ return new ForRangeStepAST(fn(this.steps), this.loopVariableName, this.rangeStart, this.rangeEnd, this.label);
82
109
  }
83
110
  }
84
111
  export class ForStepASTNamed {
@@ -109,6 +136,9 @@ export class NextStepAST {
109
136
  withLabel(newLabel) {
110
137
  return new NextStepAST(this.target, newLabel);
111
138
  }
139
+ applyNestedSteps() {
140
+ return this;
141
+ }
112
142
  }
113
143
  // https://cloud.google.com/workflows/docs/reference/syntax/parallel-steps
114
144
  export class ParallelStepAST {
@@ -128,6 +158,16 @@ export class ParallelStepAST {
128
158
  withLabel(newLabel) {
129
159
  return new ParallelStepAST(this.steps, this.shared, this.concurrencyLimit, this.exceptionPolicy, newLabel);
130
160
  }
161
+ applyNestedSteps(fn) {
162
+ let transformedSteps;
163
+ if (this.steps instanceof ForStepAST) {
164
+ transformedSteps = this.steps.applyNestedSteps(fn);
165
+ }
166
+ else {
167
+ transformedSteps = R.map((s) => new StepsStepAST(fn(s.steps), s.label), this.steps);
168
+ }
169
+ return new ParallelStepAST(transformedSteps, this.shared, this.concurrencyLimit, this.exceptionPolicy, this.label);
170
+ }
131
171
  }
132
172
  export class ParallelStepASTNamed {
133
173
  tag = 'parallel';
@@ -162,6 +202,9 @@ export class RaiseStepAST {
162
202
  withLabel(newLabel) {
163
203
  return new RaiseStepAST(this.value, newLabel);
164
204
  }
205
+ applyNestedSteps() {
206
+ return this;
207
+ }
165
208
  }
166
209
  // https://cloud.google.com/workflows/docs/reference/syntax/completing
167
210
  export class ReturnStepAST {
@@ -175,6 +218,9 @@ export class ReturnStepAST {
175
218
  withLabel(newLabel) {
176
219
  return new ReturnStepAST(this.value, newLabel);
177
220
  }
221
+ applyNestedSteps() {
222
+ return this;
223
+ }
178
224
  }
179
225
  // https://cloud.google.com/workflows/docs/reference/syntax/steps#embedded-steps
180
226
  export class StepsStepAST {
@@ -188,6 +234,9 @@ export class StepsStepAST {
188
234
  withLabel(newLabel) {
189
235
  return new StepsStepAST(this.steps, newLabel);
190
236
  }
237
+ applyNestedSteps(fn) {
238
+ return new StepsStepAST(fn(this.steps), this.label);
239
+ }
191
240
  }
192
241
  export class StepsStepASTNamed {
193
242
  tag = 'steps';
@@ -208,6 +257,13 @@ export class SwitchStepAST {
208
257
  withLabel(newLabel) {
209
258
  return new SwitchStepAST(this.branches, newLabel);
210
259
  }
260
+ applyNestedSteps(fn) {
261
+ return new SwitchStepAST(this.branches.map((branch) => ({
262
+ condition: branch.condition,
263
+ steps: fn(branch.steps),
264
+ next: branch.next,
265
+ })), this.label);
266
+ }
211
267
  }
212
268
  export class SwitchStepASTNamed {
213
269
  tag = 'switch';
@@ -236,6 +292,9 @@ export class TryStepAST {
236
292
  withLabel(newLabel) {
237
293
  return new TryStepAST(this.trySteps, this.exceptSteps, this.retryPolicy, this.errorMap, newLabel);
238
294
  }
295
+ applyNestedSteps(fn) {
296
+ return new TryStepAST(fn(this.trySteps), this.exceptSteps ? fn(this.exceptSteps) : undefined, this.retryPolicy, this.errorMap, this.label);
297
+ }
239
298
  }
240
299
  export class TryStepASTNamed {
241
300
  tag = 'try';
@@ -261,6 +320,9 @@ export class JumpTargetAST {
261
320
  constructor() {
262
321
  this.label = `jumptarget_${Math.floor(Math.random() * 2 ** 32).toString(16)}`;
263
322
  }
323
+ applyNestedSteps() {
324
+ return this;
325
+ }
264
326
  }
265
327
  /**
266
328
  * Assign a name for this step and its child steps.
@@ -284,6 +346,8 @@ export function namedSteps(step, generateName) {
284
346
  };
285
347
  case 'for':
286
348
  return namedStepsFor(step, generateName);
349
+ case 'forrange':
350
+ return namedStepsForRange(step, generateName);
287
351
  case 'parallel':
288
352
  return namedStepsParallel(step, generateName);
289
353
  case 'steps':
@@ -302,7 +366,13 @@ export function namedSteps(step, generateName) {
302
366
  function namedStepsFor(step, generateName) {
303
367
  return {
304
368
  name: step.label ?? generateName('for'),
305
- step: new ForStepASTNamed(step.steps.map((nestedStep) => namedSteps(nestedStep, generateName)), step.loopVariableName, step.listExpression),
369
+ step: new ForStepASTNamed(step.steps.map((nestedStep) => namedSteps(nestedStep, generateName)), step.loopVariableName, step.listExpression, step.indexVariableName),
370
+ };
371
+ }
372
+ function namedStepsForRange(step, generateName) {
373
+ return {
374
+ name: step.label ?? generateName('for'),
375
+ step: new ForStepASTNamed(step.steps.map((nestedStep) => namedSteps(nestedStep, generateName)), step.loopVariableName, undefined, undefined, step.rangeStart, step.rangeEnd),
306
376
  };
307
377
  }
308
378
  function namedStepsParallel(step, generateName) {
@@ -316,10 +386,10 @@ function namedStepsParallel(step, generateName) {
316
386
  steps = forStep;
317
387
  }
318
388
  else {
319
- steps = mapRecordValues(step.steps, (step) => {
389
+ steps = R.map((step) => {
320
390
  const named = step.steps.map((x) => namedSteps(x, generateName));
321
391
  return new StepsStepASTNamed(named);
322
- });
392
+ }, step.steps);
323
393
  }
324
394
  return {
325
395
  name: mainLabel,
@@ -406,8 +476,10 @@ export function renderStep(step) {
406
476
  switch (step.tag) {
407
477
  case 'assign':
408
478
  return {
409
- assign: step.assignments.map(([key, val]) => {
410
- return { [key]: expressionToLiteralValueOrLiteralExpression(val) };
479
+ assign: step.assignments.map(({ name, value }) => {
480
+ return {
481
+ [name.toString()]: expressionToLiteralValueOrLiteralExpression(value),
482
+ };
411
483
  }),
412
484
  ...(step.next && { next: step.next }),
413
485
  };
@@ -421,10 +493,10 @@ export function renderStep(step) {
421
493
  return {
422
494
  parallel: {
423
495
  ...(step.shared && { shared: step.shared }),
424
- ...(step.concurrenceLimit && {
496
+ ...(step.concurrenceLimit !== undefined && {
425
497
  concurrency_limit: step.concurrenceLimit,
426
498
  }),
427
- ...(step.exceptionPolicy && {
499
+ ...(step.exceptionPolicy !== undefined && {
428
500
  exception_policy: step.exceptionPolicy,
429
501
  }),
430
502
  ...(step.branches && { branches: renderSteps(step.branches) }),
@@ -466,20 +538,23 @@ function renderSwitchCondition(cond) {
466
538
  function renderCallStep(step) {
467
539
  let args = undefined;
468
540
  if (step.args) {
469
- args = mapRecordValues(step.args, (v) => expressionToLiteralValueOrLiteralExpression(v));
541
+ args = R.map(expressionToLiteralValueOrLiteralExpression, step.args);
470
542
  }
471
543
  return {
472
544
  call: step.call,
473
- ...(args && { args }),
474
- ...(step.result && { result: step.result }),
545
+ ...(args && Object.keys(args).length > 0 && { args }),
546
+ ...(step.result !== undefined && { result: step.result }),
475
547
  };
476
548
  }
477
549
  function renderForBody(step) {
478
550
  let range;
479
551
  let inValue;
480
552
  if (typeof step.listExpression === 'undefined') {
481
- range = [step.rangeStart, step.rangeEnd];
482
553
  inValue = undefined;
554
+ range = [
555
+ renderForRangeLimit(step.rangeStart),
556
+ renderForRangeLimit(step.rangeEnd),
557
+ ];
483
558
  }
484
559
  else {
485
560
  inValue = expressionToLiteralValueOrLiteralExpression(step.listExpression);
@@ -487,12 +562,22 @@ function renderForBody(step) {
487
562
  }
488
563
  return {
489
564
  value: step.loopVariableName,
490
- ...(step.indexVariableName && { index: step.indexVariableName }),
491
- ...(inValue && { in: inValue }),
492
- ...(range && { range }),
565
+ ...(step.indexVariableName !== undefined && {
566
+ index: step.indexVariableName,
567
+ }),
568
+ ...(inValue !== undefined && { in: inValue }),
569
+ ...(range !== undefined && { range }),
493
570
  steps: renderSteps(step.steps),
494
571
  };
495
572
  }
573
+ function renderForRangeLimit(value) {
574
+ if (value === undefined || typeof value === 'number') {
575
+ return value ?? null;
576
+ }
577
+ else {
578
+ return expressionToLiteralValueOrLiteralExpression(value);
579
+ }
580
+ }
496
581
  function renderReturnStep(step) {
497
582
  if (step.value) {
498
583
  return {
@@ -519,17 +604,17 @@ function renderTryStep(step) {
519
604
  ...(predicateName ? { predicate: `\${${predicateName}}` } : {}),
520
605
  max_retries: expressionToLiteralValueOrLiteralExpression(step.retryPolicy.maxRetries),
521
606
  backoff: {
522
- ...(step.retryPolicy.backoff.initialDelay
607
+ ...(step.retryPolicy.backoff.initialDelay !== undefined
523
608
  ? {
524
609
  initial_delay: expressionToLiteralValueOrLiteralExpression(step.retryPolicy.backoff.initialDelay),
525
610
  }
526
611
  : {}),
527
- ...(step.retryPolicy.backoff.maxDelay
612
+ ...(step.retryPolicy.backoff.maxDelay !== undefined
528
613
  ? {
529
614
  max_delay: expressionToLiteralValueOrLiteralExpression(step.retryPolicy.backoff.maxDelay),
530
615
  }
531
616
  : {}),
532
- ...(step.retryPolicy.backoff.multiplier
617
+ ...(step.retryPolicy.backoff.multiplier !== undefined
533
618
  ? {
534
619
  multiplier: expressionToLiteralValueOrLiteralExpression(step.retryPolicy.backoff.multiplier),
535
620
  }
@@ -551,7 +636,7 @@ function renderTryStep(step) {
551
636
  try: {
552
637
  steps: renderSteps(step.trySteps),
553
638
  },
554
- ...(retry && { retry }),
639
+ ...(retry !== undefined && { retry }),
555
640
  ...(except && { except }),
556
641
  };
557
642
  }
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IACvC,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CACtC;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,EAAE,kBAAkB,CAAA;gBAEhB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB;CAI1D;AAED,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,OAAO,EAAE,MAAM;CAG5B"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IACvC,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CACtC;AAID,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,EAAE,kBAAkB,CAAA;gBAEhB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB;CAI1D;AAID,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,OAAO,EAAE,MAAM;CAG5B"}