ts2workflows 0.10.0 → 0.12.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.
Files changed (53) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +36 -9
  3. package/dist/ast/expressions.d.ts +37 -41
  4. package/dist/ast/expressions.d.ts.map +1 -1
  5. package/dist/ast/expressions.js +124 -255
  6. package/dist/ast/statements.d.ts +132 -0
  7. package/dist/ast/statements.d.ts.map +1 -0
  8. package/dist/ast/statements.js +197 -0
  9. package/dist/ast/steps.d.ts +82 -194
  10. package/dist/ast/steps.d.ts.map +1 -1
  11. package/dist/ast/steps.js +862 -521
  12. package/dist/ast/workflows.d.ts +14 -12
  13. package/dist/ast/workflows.d.ts.map +1 -1
  14. package/dist/ast/workflows.js +20 -35
  15. package/dist/cli.js +45 -32
  16. package/dist/errors.d.ts +4 -0
  17. package/dist/errors.d.ts.map +1 -1
  18. package/dist/errors.js +7 -0
  19. package/dist/transpiler/index.d.ts +19 -1
  20. package/dist/transpiler/index.d.ts.map +1 -1
  21. package/dist/transpiler/index.js +158 -31
  22. package/dist/transpiler/linker.d.ts +3 -0
  23. package/dist/transpiler/linker.d.ts.map +1 -0
  24. package/dist/transpiler/linker.js +41 -0
  25. package/dist/transpiler/parseexpressions.d.ts +11 -0
  26. package/dist/transpiler/parseexpressions.d.ts.map +1 -0
  27. package/dist/transpiler/{expressions.js → parseexpressions.js} +90 -103
  28. package/dist/transpiler/parsestatement.d.ts +7 -0
  29. package/dist/transpiler/parsestatement.d.ts.map +1 -0
  30. package/dist/transpiler/parsestatement.js +862 -0
  31. package/dist/transpiler/stepnames.d.ts +3 -0
  32. package/dist/transpiler/stepnames.d.ts.map +1 -0
  33. package/dist/transpiler/stepnames.js +17 -0
  34. package/dist/transpiler/transformations.d.ts +3 -19
  35. package/dist/transpiler/transformations.d.ts.map +1 -1
  36. package/dist/transpiler/transformations.js +267 -322
  37. package/language_reference.md +53 -17
  38. package/package.json +15 -11
  39. package/types/workflowslib.d.ts +58 -74
  40. package/dist/ast/stepnames.d.ts +0 -9
  41. package/dist/ast/stepnames.d.ts.map +0 -1
  42. package/dist/ast/stepnames.js +0 -280
  43. package/dist/ast/validation.d.ts +0 -20
  44. package/dist/ast/validation.d.ts.map +0 -1
  45. package/dist/ast/validation.js +0 -214
  46. package/dist/transpiler/expressions.d.ts +0 -11
  47. package/dist/transpiler/expressions.d.ts.map +0 -1
  48. package/dist/transpiler/statements.d.ts +0 -10
  49. package/dist/transpiler/statements.d.ts.map +0 -1
  50. package/dist/transpiler/statements.js +0 -1100
  51. package/dist/utils.d.ts +0 -9
  52. package/dist/utils.d.ts.map +0 -1
  53. package/dist/utils.js +0 -13
@@ -0,0 +1,132 @@
1
+ import { Expression, MemberExpression, VariableName, VariableReferenceExpression } from './expressions.js';
2
+ import { StepName } from './steps.js';
3
+ export type WorkflowParameters = Record<VariableName, Expression>;
4
+ export interface VariableAssignment {
5
+ name: VariableReferenceExpression | MemberExpression;
6
+ value: Expression;
7
+ }
8
+ export interface CustomRetryPolicy {
9
+ predicate?: string;
10
+ maxRetries: Expression;
11
+ backoff: {
12
+ initialDelay?: Expression;
13
+ maxDelay?: Expression;
14
+ multiplier?: Expression;
15
+ };
16
+ }
17
+ export declare class AssignStatement {
18
+ readonly assignments: VariableAssignment[];
19
+ readonly tag = "assign";
20
+ constructor(assignments: VariableAssignment[]);
21
+ }
22
+ export declare class BreakStatement {
23
+ readonly label?: string | undefined;
24
+ readonly tag = "break";
25
+ constructor(label?: string | undefined);
26
+ }
27
+ export declare class ContinueStatement {
28
+ readonly label?: string | undefined;
29
+ readonly tag = "continue";
30
+ constructor(label?: string | undefined);
31
+ }
32
+ export declare class ForStatement {
33
+ readonly body: WorkflowStatement[];
34
+ readonly loopVariableName: VariableName;
35
+ readonly listExpression: Expression;
36
+ readonly indexVariableName?: VariableName | undefined;
37
+ readonly tag = "for";
38
+ constructor(body: WorkflowStatement[], loopVariableName: VariableName, listExpression: Expression, indexVariableName?: VariableName | undefined);
39
+ }
40
+ export declare class ForRangeStatement {
41
+ readonly body: WorkflowStatement[];
42
+ readonly loopVariableName: VariableName;
43
+ readonly rangeStart: number | Expression;
44
+ readonly rangeEnd: number | Expression;
45
+ readonly tag = "for-range";
46
+ constructor(body: WorkflowStatement[], loopVariableName: VariableName, rangeStart: number | Expression, rangeEnd: number | Expression);
47
+ }
48
+ export declare class FunctionInvocationStatement {
49
+ readonly callee: string;
50
+ readonly args?: WorkflowParameters | undefined;
51
+ readonly result?: VariableName | undefined;
52
+ readonly tag = "function-invocation";
53
+ constructor(callee: string, args?: WorkflowParameters | undefined, result?: VariableName | undefined);
54
+ }
55
+ export interface IfBranch {
56
+ readonly condition: Expression;
57
+ readonly body: WorkflowStatement[];
58
+ }
59
+ export interface IfNextBranch {
60
+ readonly condition: Expression;
61
+ readonly next: StepName;
62
+ }
63
+ export declare class IfStatement {
64
+ readonly branches: (IfBranch | IfNextBranch)[];
65
+ readonly tag = "if";
66
+ constructor(branches: (IfBranch | IfNextBranch)[]);
67
+ }
68
+ export interface ParallelBranch {
69
+ readonly name: string;
70
+ readonly body: WorkflowStatement[];
71
+ }
72
+ export declare class ParallelStatement {
73
+ readonly branches: ParallelBranch[];
74
+ readonly shared?: VariableName[] | undefined;
75
+ readonly concurrencyLimit?: number | undefined;
76
+ readonly exceptionPolicy?: string | undefined;
77
+ readonly tag = "parallel";
78
+ constructor(branches: ParallelBranch[], shared?: VariableName[] | undefined, concurrencyLimit?: number | undefined, exceptionPolicy?: string | undefined);
79
+ }
80
+ export declare class ParallelForStatement {
81
+ readonly forStep: ForStatement | ForRangeStatement;
82
+ readonly shared?: VariableName[] | undefined;
83
+ readonly concurrencyLimit?: number | undefined;
84
+ readonly exceptionPolicy?: string | undefined;
85
+ readonly tag = "parallel-for";
86
+ constructor(forStep: ForStatement | ForRangeStatement, shared?: VariableName[] | undefined, concurrencyLimit?: number | undefined, exceptionPolicy?: string | undefined);
87
+ }
88
+ export declare class RaiseStatement {
89
+ readonly value: Expression;
90
+ readonly tag = "raise";
91
+ constructor(value: Expression);
92
+ }
93
+ export declare class ReturnStatement {
94
+ readonly value: Expression | undefined;
95
+ readonly tag = "return";
96
+ constructor(value: Expression | undefined);
97
+ }
98
+ export declare class SwitchStatement {
99
+ readonly branches: IfBranch[];
100
+ readonly tag = "switch";
101
+ constructor(branches: IfBranch[]);
102
+ }
103
+ export declare class TryStatement {
104
+ readonly tryBody: WorkflowStatement[];
105
+ readonly exceptBody?: WorkflowStatement[] | undefined;
106
+ readonly retryPolicy?: (string | CustomRetryPolicy) | undefined;
107
+ readonly errorMap?: VariableName | undefined;
108
+ readonly finalizerBody?: WorkflowStatement[] | undefined;
109
+ readonly tag = "try";
110
+ constructor(tryBody: WorkflowStatement[], exceptBody?: WorkflowStatement[] | undefined, retryPolicy?: (string | CustomRetryPolicy) | undefined, errorMap?: VariableName | undefined, finalizerBody?: WorkflowStatement[] | undefined);
111
+ }
112
+ export declare class WhileStatement {
113
+ readonly condition: Expression;
114
+ readonly body: WorkflowStatement[];
115
+ readonly tag = "while";
116
+ constructor(condition: Expression, body: WorkflowStatement[]);
117
+ }
118
+ export declare class DoWhileStatement {
119
+ readonly condition: Expression;
120
+ readonly body: WorkflowStatement[];
121
+ readonly tag = "do-while";
122
+ constructor(condition: Expression, body: WorkflowStatement[]);
123
+ }
124
+ export declare class LabelledStatement {
125
+ readonly label: string;
126
+ readonly statements: WorkflowStatement[];
127
+ readonly tag = "label";
128
+ constructor(label: string, statements: WorkflowStatement[]);
129
+ }
130
+ export type WorkflowStatement = AssignStatement | BreakStatement | ContinueStatement | DoWhileStatement | ForStatement | ForRangeStatement | FunctionInvocationStatement | IfStatement | LabelledStatement | ParallelForStatement | ParallelStatement | RaiseStatement | ReturnStatement | SwitchStatement | TryStatement | WhileStatement;
131
+ export declare function applyNested(fn: (x: WorkflowStatement[]) => WorkflowStatement[], s: WorkflowStatement): WorkflowStatement;
132
+ //# sourceMappingURL=statements.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statements.d.ts","sourceRoot":"","sources":["../../src/ast/statements.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,197 @@
1
+ export class AssignStatement {
2
+ assignments;
3
+ tag = 'assign';
4
+ constructor(assignments) {
5
+ this.assignments = assignments;
6
+ }
7
+ }
8
+ export class BreakStatement {
9
+ label;
10
+ tag = 'break';
11
+ constructor(label) {
12
+ this.label = label;
13
+ }
14
+ }
15
+ export class ContinueStatement {
16
+ label;
17
+ tag = 'continue';
18
+ constructor(label) {
19
+ this.label = label;
20
+ }
21
+ }
22
+ export class ForStatement {
23
+ body;
24
+ loopVariableName;
25
+ listExpression;
26
+ indexVariableName;
27
+ tag = 'for';
28
+ constructor(body, loopVariableName, listExpression, indexVariableName) {
29
+ this.body = body;
30
+ this.loopVariableName = loopVariableName;
31
+ this.listExpression = listExpression;
32
+ this.indexVariableName = indexVariableName;
33
+ }
34
+ }
35
+ export class ForRangeStatement {
36
+ body;
37
+ loopVariableName;
38
+ rangeStart;
39
+ rangeEnd;
40
+ tag = 'for-range';
41
+ constructor(body, loopVariableName, rangeStart, rangeEnd) {
42
+ this.body = body;
43
+ this.loopVariableName = loopVariableName;
44
+ this.rangeStart = rangeStart;
45
+ this.rangeEnd = rangeEnd;
46
+ }
47
+ }
48
+ export class FunctionInvocationStatement {
49
+ callee;
50
+ args;
51
+ result;
52
+ tag = 'function-invocation';
53
+ constructor(callee, args, result) {
54
+ this.callee = callee;
55
+ this.args = args;
56
+ this.result = result;
57
+ }
58
+ }
59
+ export class IfStatement {
60
+ branches;
61
+ tag = 'if';
62
+ constructor(branches) {
63
+ this.branches = branches;
64
+ }
65
+ }
66
+ export class ParallelStatement {
67
+ branches;
68
+ shared;
69
+ concurrencyLimit;
70
+ exceptionPolicy;
71
+ tag = 'parallel';
72
+ constructor(branches, shared, concurrencyLimit, exceptionPolicy) {
73
+ this.branches = branches;
74
+ this.shared = shared;
75
+ this.concurrencyLimit = concurrencyLimit;
76
+ this.exceptionPolicy = exceptionPolicy;
77
+ }
78
+ }
79
+ export class ParallelForStatement {
80
+ forStep;
81
+ shared;
82
+ concurrencyLimit;
83
+ exceptionPolicy;
84
+ tag = 'parallel-for';
85
+ constructor(forStep, shared, concurrencyLimit, exceptionPolicy) {
86
+ this.forStep = forStep;
87
+ this.shared = shared;
88
+ this.concurrencyLimit = concurrencyLimit;
89
+ this.exceptionPolicy = exceptionPolicy;
90
+ }
91
+ }
92
+ export class RaiseStatement {
93
+ value;
94
+ tag = 'raise';
95
+ constructor(value) {
96
+ this.value = value;
97
+ }
98
+ }
99
+ export class ReturnStatement {
100
+ value;
101
+ tag = 'return';
102
+ constructor(value) {
103
+ this.value = value;
104
+ }
105
+ }
106
+ export class SwitchStatement {
107
+ branches;
108
+ tag = 'switch';
109
+ constructor(branches) {
110
+ this.branches = branches;
111
+ }
112
+ }
113
+ export class TryStatement {
114
+ tryBody;
115
+ exceptBody;
116
+ retryPolicy;
117
+ errorMap;
118
+ finalizerBody;
119
+ tag = 'try';
120
+ constructor(tryBody, exceptBody, retryPolicy, errorMap, finalizerBody) {
121
+ this.tryBody = tryBody;
122
+ this.exceptBody = exceptBody;
123
+ this.retryPolicy = retryPolicy;
124
+ this.errorMap = errorMap;
125
+ this.finalizerBody = finalizerBody;
126
+ }
127
+ }
128
+ export class WhileStatement {
129
+ condition;
130
+ body;
131
+ tag = 'while';
132
+ constructor(condition, body) {
133
+ this.condition = condition;
134
+ this.body = body;
135
+ }
136
+ }
137
+ export class DoWhileStatement {
138
+ condition;
139
+ body;
140
+ tag = 'do-while';
141
+ constructor(condition, body) {
142
+ this.condition = condition;
143
+ this.body = body;
144
+ }
145
+ }
146
+ export class LabelledStatement {
147
+ label;
148
+ statements;
149
+ tag = 'label';
150
+ constructor(label, statements) {
151
+ this.label = label;
152
+ this.statements = statements;
153
+ }
154
+ }
155
+ export function applyNested(fn, s) {
156
+ switch (s.tag) {
157
+ case 'assign':
158
+ case 'break':
159
+ case 'continue':
160
+ case 'function-invocation':
161
+ case 'raise':
162
+ case 'return':
163
+ return s;
164
+ case 'do-while':
165
+ return new DoWhileStatement(s.condition, fn(s.body));
166
+ case 'for':
167
+ return new ForStatement(fn(s.body), s.loopVariableName, s.listExpression, s.indexVariableName);
168
+ case 'for-range':
169
+ return new ForRangeStatement(fn(s.body), s.loopVariableName, s.rangeStart, s.rangeEnd);
170
+ case 'if':
171
+ return new IfStatement(s.branches.map((b) => 'body' in b
172
+ ? {
173
+ condition: b.condition,
174
+ body: fn(b.body),
175
+ }
176
+ : b));
177
+ case 'label':
178
+ return new LabelledStatement(s.label, fn(s.statements));
179
+ case 'parallel-for':
180
+ return new ParallelForStatement(applyNested(fn, s.forStep), // FIXME typing
181
+ s.shared, s.concurrencyLimit, s.exceptionPolicy);
182
+ case 'parallel':
183
+ return new ParallelStatement(s.branches.map((b) => ({
184
+ name: b.name,
185
+ body: fn(b.body),
186
+ })), s.shared, s.concurrencyLimit, s.exceptionPolicy);
187
+ case 'switch':
188
+ return new SwitchStatement(s.branches.map((b) => ({
189
+ condition: b.condition,
190
+ body: fn(b.body),
191
+ })));
192
+ case 'try':
193
+ return new TryStatement(fn(s.tryBody), s.exceptBody ? fn(s.exceptBody) : undefined, s.retryPolicy, s.errorMap, s.finalizerBody ? fn(s.finalizerBody) : undefined);
194
+ case 'while':
195
+ return new WhileStatement(s.condition, fn(s.body));
196
+ }
197
+ }
@@ -1,210 +1,98 @@
1
- import { Expression, MemberExpression, VariableName, VariableReferenceExpression } from './expressions.js';
2
- import { Subworkflow, WorkflowParameter } from './workflows.js';
1
+ import { Expression, VariableName } from './expressions.js';
2
+ import { CustomRetryPolicy, VariableAssignment, WorkflowParameters } from './statements.js';
3
+ import { Subworkflow, SubworkflowStatements } from './workflows.js';
3
4
  export type StepName = string;
4
- export interface VariableAssignment {
5
- name: VariableReferenceExpression | MemberExpression;
5
+ interface AssignStep {
6
+ tag: 'assign';
7
+ label: StepName;
8
+ assignments: VariableAssignment[];
9
+ next?: StepName;
10
+ }
11
+ interface CallStep {
12
+ tag: 'call';
13
+ label: StepName;
14
+ call: string;
15
+ args?: WorkflowParameters;
16
+ result?: VariableName;
17
+ }
18
+ interface ForStep {
19
+ tag: 'for';
20
+ label: StepName;
21
+ steps: WorkflowStep[];
22
+ loopVariableName: VariableName;
23
+ listExpression?: Expression;
24
+ indexVariableName?: VariableName;
25
+ rangeStart?: number | Expression;
26
+ rangeEnd?: number | Expression;
27
+ }
28
+ interface NextStep {
29
+ tag: 'next';
30
+ label: StepName;
31
+ next: StepName;
32
+ }
33
+ interface ParallelStep {
34
+ tag: 'parallel';
35
+ label: StepName;
36
+ branches: ParallelBranch[];
37
+ shared?: VariableName[];
38
+ concurrencyLimit?: number;
39
+ exceptionPolicy?: string;
40
+ }
41
+ interface ParallelBranch {
42
+ readonly name: StepName;
43
+ readonly steps: WorkflowStep[];
44
+ }
45
+ interface ParallelIterationStep {
46
+ tag: 'parallel-for';
47
+ label: StepName;
48
+ forStep: ForStep;
49
+ shared?: VariableName[];
50
+ concurrencyLimit?: number;
51
+ exceptionPolicy?: string;
52
+ }
53
+ interface RaiseStep {
54
+ tag: 'raise';
55
+ label: string;
6
56
  value: Expression;
7
57
  }
8
- export type WorkflowParameters = Record<VariableName, Expression>;
9
- export interface CustomRetryPolicy {
10
- predicate?: string;
11
- maxRetries: Expression;
12
- backoff: {
13
- initialDelay?: Expression;
14
- maxDelay?: Expression;
15
- multiplier?: Expression;
16
- };
58
+ interface ReturnStep {
59
+ tag: 'return';
60
+ label: string;
61
+ value: Expression | undefined;
17
62
  }
18
- export interface WorkflowAST {
19
- readonly subworkflows: SubworkflowAST[];
63
+ interface SwitchStep {
64
+ tag: 'switch';
65
+ label: StepName;
66
+ branches: SwitchBranch[];
67
+ next?: StepName;
20
68
  }
21
- export declare class SubworkflowAST {
22
- readonly name: string;
23
- readonly steps: WorkflowStepAST[];
24
- readonly params?: WorkflowParameter[];
25
- constructor(name: string, steps: WorkflowStepAST[], params?: WorkflowParameter[]);
26
- withStepNames(generate: (prefix: string) => string): Subworkflow;
27
- }
28
- /**
29
- * A workflow step before step names have been assigned.
30
- */
31
- export type WorkflowStepAST = AssignStepAST | CallStepAST | ForStepAST | ForRangeStepAST | NextStepAST | ParallelStepAST | RaiseStepAST | ReturnStepAST | StepsStepAST | SwitchStepAST | TryStepAST | JumpTargetAST;
32
- /**
33
- * A workflow step after names have been generated for the nested steps.
34
- */
35
- export type WorkflowStepASTWithNamedNested = AssignStepAST | CallStepAST | ForStepASTNamed | NextStepAST | ParallelStepASTNamed | RaiseStepAST | ReturnStepAST | StepsStepASTNamed | SwitchStepASTNamed | TryStepASTNamed | JumpTargetAST;
36
- export interface NamedWorkflowStep {
37
- name: StepName;
38
- step: WorkflowStepASTWithNamedNested;
39
- }
40
- export declare class AssignStepAST {
41
- readonly tag = "assign";
42
- readonly assignments: VariableAssignment[];
43
- readonly label?: string;
44
- readonly next?: string;
45
- constructor(assignments: VariableAssignment[], next?: string, label?: string);
46
- withNext(newNext?: string): AssignStepAST;
47
- withLabel(newLabel?: string): AssignStepAST;
48
- applyNestedSteps(): AssignStepAST;
49
- }
50
- export declare class CallStepAST {
51
- readonly tag = "call";
52
- readonly call: string;
53
- readonly args?: WorkflowParameters;
54
- readonly result?: VariableName;
55
- readonly label?: string;
56
- constructor(call: string, args?: WorkflowParameters, result?: VariableName, label?: string);
57
- labelPrefix(): string;
58
- withLabel(newLabel?: string): CallStepAST;
59
- applyNestedSteps(): CallStepAST;
60
- }
61
- export declare class ForStepAST {
62
- readonly tag = "for";
63
- readonly steps: WorkflowStepAST[];
64
- readonly loopVariableName: VariableName;
65
- readonly indexVariableName?: VariableName;
66
- readonly listExpression: Expression;
67
- readonly label?: string;
68
- constructor(steps: WorkflowStepAST[], loopVariableName: VariableName, listExpression: Expression, indexVariable?: VariableName, label?: string);
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;
82
- }
83
- export declare class ForStepASTNamed {
84
- readonly tag = "for";
85
- readonly steps: NamedWorkflowStep[];
86
- readonly loopVariableName: VariableName;
87
- readonly indexVariableName?: VariableName;
88
- readonly listExpression?: Expression;
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);
92
- }
93
- export declare class NextStepAST {
94
- readonly tag = "next";
95
- readonly target: string;
96
- readonly label?: string;
97
- constructor(target: string, label?: string);
98
- withLabel(newLabel?: string): NextStepAST;
99
- applyNestedSteps(): NextStepAST;
100
- }
101
- export declare class ParallelStepAST {
102
- readonly tag = "parallel";
103
- readonly steps: Record<StepName, StepsStepAST> | ForStepAST;
104
- readonly shared?: VariableName[];
105
- readonly concurrencyLimit?: number;
106
- readonly exceptionPolicy?: string;
107
- readonly label?: string;
108
- constructor(steps: Record<StepName, StepsStepAST> | ForStepAST, shared?: VariableName[], concurrencyLimit?: number, exceptionPolicy?: string, label?: string);
109
- withLabel(newLabel?: string): ParallelStepAST;
110
- applyNestedSteps(fn: (steps: WorkflowStepAST[]) => WorkflowStepAST[]): ParallelStepAST;
111
- }
112
- export declare class ParallelStepASTNamed {
113
- readonly tag = "parallel";
114
- readonly branches?: NamedWorkflowStep[];
115
- readonly forStep?: ForStepASTNamed;
116
- readonly shared?: VariableName[];
117
- readonly concurrenceLimit?: number;
118
- readonly exceptionPolicy?: string;
119
- constructor(steps: Record<StepName, StepsStepASTNamed> | ForStepASTNamed, shared?: VariableName[], concurrencyLimit?: number, exceptionPolicy?: string);
120
- }
121
- export declare class RaiseStepAST {
122
- readonly tag = "raise";
123
- readonly value: Expression;
124
- readonly label?: string;
125
- constructor(value: Expression, label?: string);
126
- withLabel(newLabel?: string): RaiseStepAST;
127
- applyNestedSteps(): RaiseStepAST;
128
- }
129
- export declare class ReturnStepAST {
130
- readonly tag = "return";
131
- readonly value?: Expression;
132
- readonly label?: string;
133
- constructor(value: Expression | undefined, label?: string);
134
- withLabel(newLabel?: string): ReturnStepAST;
135
- applyNestedSteps(): ReturnStepAST;
136
- }
137
- export declare class StepsStepAST {
138
- readonly tag = "steps";
139
- readonly steps: WorkflowStepAST[];
140
- readonly label?: string;
141
- constructor(steps: WorkflowStepAST[], label?: string);
142
- withLabel(newLabel?: string): StepsStepAST;
143
- applyNestedSteps(fn: (steps: WorkflowStepAST[]) => WorkflowStepAST[]): StepsStepAST;
144
- }
145
- export declare class StepsStepASTNamed {
146
- readonly tag = "steps";
147
- readonly steps: NamedWorkflowStep[];
148
- constructor(steps: NamedWorkflowStep[]);
149
- }
150
- export declare class SwitchStepAST {
151
- readonly tag = "switch";
152
- readonly branches: SwitchConditionAST<WorkflowStepAST>[];
153
- readonly label?: string;
154
- constructor(branches: SwitchConditionAST<WorkflowStepAST>[], label?: string);
155
- withLabel(newLabel?: string): SwitchStepAST;
156
- applyNestedSteps(fn: (steps: WorkflowStepAST[]) => WorkflowStepAST[]): SwitchStepAST;
157
- }
158
- export declare class SwitchStepASTNamed {
159
- readonly tag = "switch";
160
- readonly conditions: SwitchConditionAST<NamedWorkflowStep>[];
161
- readonly next?: StepName;
162
- constructor(conditions: SwitchConditionAST<NamedWorkflowStep>[], next?: StepName);
163
- }
164
- export interface SwitchConditionAST<T extends WorkflowStepAST | NamedWorkflowStep> {
69
+ interface SwitchBranch {
165
70
  readonly condition: Expression;
166
- readonly steps: T[];
71
+ readonly steps?: WorkflowStep[];
167
72
  readonly next?: StepName;
168
73
  }
169
- export declare class TryStepAST {
170
- readonly tag = "try";
171
- readonly trySteps: WorkflowStepAST[];
172
- readonly exceptSteps?: WorkflowStepAST[];
173
- readonly retryPolicy?: string | CustomRetryPolicy;
174
- readonly errorMap?: VariableName;
175
- readonly label?: string;
176
- constructor(trySteps: WorkflowStepAST[], exceptSteps?: WorkflowStepAST[], retryPolicy?: string | CustomRetryPolicy, errorMap?: VariableName, label?: string);
177
- withLabel(newLabel?: string): TryStepAST;
178
- applyNestedSteps(fn: (steps: WorkflowStepAST[]) => WorkflowStepAST[]): TryStepAST;
74
+ interface TryStep {
75
+ tag: 'try';
76
+ label: StepName;
77
+ trySteps: WorkflowStep[];
78
+ exceptSteps?: WorkflowStep[];
79
+ retryPolicy?: string | CustomRetryPolicy;
80
+ errorMap?: VariableName;
179
81
  }
180
- export declare class TryStepASTNamed {
181
- readonly tag = "try";
182
- readonly retryPolicy?: string | CustomRetryPolicy;
183
- readonly errorMap?: VariableName;
184
- readonly trySteps: NamedWorkflowStep[];
185
- readonly exceptSteps?: NamedWorkflowStep[];
186
- constructor(steps: NamedWorkflowStep[], exceptSteps?: NamedWorkflowStep[], retryPolicy?: string | CustomRetryPolicy, errorMap?: VariableName);
187
- }
188
- export declare class JumpTargetAST {
189
- readonly tag = "jumptarget";
190
- readonly label: string;
191
- constructor();
192
- applyNestedSteps(): JumpTargetAST;
82
+ interface JumpTargetStep {
83
+ tag: 'jump-target';
84
+ label: StepName;
193
85
  }
86
+ export type WorkflowStep = AssignStep | CallStep | ForStep | NextStep | ParallelStep | ParallelIterationStep | RaiseStep | ReturnStep | SwitchStep | TryStep | JumpTargetStep;
194
87
  /**
195
- * Assign a name for this step and its child steps.
196
- *
197
- * The name is generated by calling generateName with a prefix identifying the step type.
88
+ * Returns an GCP Workflows object representation of a step.
198
89
  */
199
- export declare function namedSteps(step: WorkflowStepAST, generateName: (prefix: string) => string): NamedWorkflowStep;
90
+ export declare function renderStep(step: WorkflowStep): Record<string, unknown>;
200
91
  /**
201
- * Returns the nested steps in contained in this step.
92
+ * Convert a IR subworkflow to WorkflowSteps.
202
93
  *
203
- * Used in iterating the AST tree.
204
- */
205
- export declare function nestedSteps(step: WorkflowStepASTWithNamedNested): NamedWorkflowStep[][];
206
- /**
207
- * Returns an GCP Workflows object representation of a step.
94
+ * This function also assigns step labels.
208
95
  */
209
- export declare function renderStep(step: WorkflowStepASTWithNamedNested): Record<string, unknown>;
96
+ export declare function toStepSubworkflow(ast: SubworkflowStatements, generateLabel: (prefix: string) => string): Subworkflow;
97
+ export {};
210
98
  //# sourceMappingURL=steps.d.ts.map
@@ -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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"}