-
Notifications
You must be signed in to change notification settings - Fork 28
/
WorkflowJob.ts
47 lines (41 loc) · 1.22 KB
/
WorkflowJob.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import { OrbRef } from '../../../Orb/exports/OrbRef';
import { Job } from '../../Job';
import { JobParameterLiteral } from '../../Parameters/types/CustomParameterLiterals.types';
import {
WorkflowJobContentsShape,
WorkflowJobParameters,
WorkflowJobShape,
} from '../types/WorkflowJob.types';
import { WorkflowJobAbstract } from './WorkflowJobAbstract';
/**
* Assign Parameters and Filters to a Job within a Workflow.
* Utility class for assigning parameters to a job.
* Should only be instantiated for specific use cases.
* @see {@link Workflow.addJob} for general use.
*/
export class WorkflowJob extends WorkflowJobAbstract {
job: Job | OrbRef<JobParameterLiteral>;
constructor(
job: Job | OrbRef<JobParameterLiteral>,
parameters?: Exclude<WorkflowJobParameters, 'type'>,
) {
super(parameters);
this.job = job;
}
generateContents(flatten?: boolean): WorkflowJobContentsShape {
return {
...super.generateContents(flatten),
};
}
generate(flatten?: boolean): WorkflowJobShape {
if (this.parameters === undefined) {
return this.job.name;
}
return {
[this.job.name]: this.generateContents(flatten),
};
}
get name(): string {
return this.job.name;
}
}