X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/340b992768b4460ef27b1102f7065381be96f2ea..c354d605e3a09baa791be57443c2a0ea32d5bd67:/src/models/workflow.ts diff --git a/src/models/workflow.ts b/src/models/workflow.ts index a858c0d7..abc92c62 100644 --- a/src/models/workflow.ts +++ b/src/models/workflow.ts @@ -11,9 +11,8 @@ export interface WorkflowResource extends Resource { description: string; definition: string; } -export interface WorkflowResoruceDefinition { +export interface WorkflowResourceDefinition { cwlVersion: string; - graph?: Array; $graph?: Array; } export interface Workflow { @@ -117,23 +116,24 @@ export type DirectoryArrayCommandInputParameter = GenericArrayCommandInputParame export type WorkflowInputsData = { [key: string]: boolean | number | string | File | Directory; }; -export const parseWorkflowDefinition = (workflow: WorkflowResource): WorkflowResoruceDefinition => { +export const parseWorkflowDefinition = (workflow: WorkflowResource): WorkflowResourceDefinition => { const definition = safeLoad(workflow.definition); return definition; }; -export const getWorkflowInputs = (workflowDefinition: WorkflowResoruceDefinition) => { - if (workflowDefinition.graph) { - const mainWorkflow = workflowDefinition.graph.find(item => item.class === 'Workflow' && item.id === '#main'); - return mainWorkflow - ? mainWorkflow.inputs - : undefined; - } else { - const mainWorkflow = workflowDefinition.$graph!.find(item => item.class === 'Workflow' && item.id === '#main'); - return mainWorkflow - ? mainWorkflow.inputs - : undefined; - } +export const getWorkflow = (workflowDefinition: WorkflowResourceDefinition) => { + if (!workflowDefinition.$graph) { return undefined; } + const mainWorkflow = workflowDefinition.$graph.find(item => item.class === 'Workflow' && item.id === '#main'); + return mainWorkflow + ? mainWorkflow + : undefined; +}; + +export const getWorkflowInputs = (workflowDefinition: WorkflowResourceDefinition) => { + if (!workflowDefinition) { return undefined; } + return getWorkflow(workflowDefinition) + ? getWorkflow(workflowDefinition)!.inputs + : undefined; }; export const getInputLabel = (input: CommandInputParameter) => {