projects
/
arvados-workbench2.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch '16111-ssh-help' refs #16111
[arvados-workbench2.git]
/
src
/
models
/
workflow.ts
diff --git
a/src/models/workflow.ts
b/src/models/workflow.ts
index 88ceb6ed5400714e26a35d523181c5fabe041c4f..abc92c624d97ea72e84daef51d854af9f12d1009 100644
(file)
--- a/
src/models/workflow.ts
+++ b/
src/models/workflow.ts
@@
-11,9
+11,9
@@
export interface WorkflowResource extends Resource {
description: string;
definition: string;
}
description: string;
definition: string;
}
-export interface WorkflowReso
ru
ceDefinition {
+export interface WorkflowReso
ur
ceDefinition {
cwlVersion: string;
cwlVersion: string;
- $graph: Array<Workflow | CommandLineTool>;
+ $graph
?
: Array<Workflow | CommandLineTool>;
}
export interface Workflow {
class: 'Workflow';
}
export interface Workflow {
class: 'Workflow';
@@
-41,6
+41,8
@@
export type CommandInputParameter =
FileCommandInputParameter |
DirectoryCommandInputParameter |
StringArrayCommandInputParameter |
FileCommandInputParameter |
DirectoryCommandInputParameter |
StringArrayCommandInputParameter |
+ IntArrayCommandInputParameter |
+ FloatArrayCommandInputParameter |
FileArrayCommandInputParameter |
DirectoryArrayCommandInputParameter |
EnumCommandInputParameter;
FileArrayCommandInputParameter |
DirectoryArrayCommandInputParameter |
EnumCommandInputParameter;
@@
-90,6
+92,8
@@
export interface GenericCommandInputParameter<Type, Value> {
doc?: string | string[];
default?: Value;
type?: Type | Array<Type | CWLType.NULL>;
doc?: string | string[];
default?: Value;
type?: Type | Array<Type | CWLType.NULL>;
+ value?: Value;
+ disabled?: boolean;
}
export type GenericArrayCommandInputParameter<Type, Value> = GenericCommandInputParameter<CommandInputArraySchema<Type>, Value[]>;
}
export type GenericArrayCommandInputParameter<Type, Value> = GenericCommandInputParameter<CommandInputArraySchema<Type>, Value[]>;
@@
-104,20
+108,34
@@
export type DirectoryCommandInputParameter = GenericCommandInputParameter<CWLTyp
export type EnumCommandInputParameter = GenericCommandInputParameter<CommandInputEnumSchema, string>;
export type StringArrayCommandInputParameter = GenericArrayCommandInputParameter<CWLType.STRING, string>;
export type EnumCommandInputParameter = GenericCommandInputParameter<CommandInputEnumSchema, string>;
export type StringArrayCommandInputParameter = GenericArrayCommandInputParameter<CWLType.STRING, string>;
+export type IntArrayCommandInputParameter = GenericArrayCommandInputParameter<CWLType.INT, string>;
+export type FloatArrayCommandInputParameter = GenericArrayCommandInputParameter<CWLType.FLOAT, string>;
export type FileArrayCommandInputParameter = GenericArrayCommandInputParameter<CWLType.FILE, File>;
export type DirectoryArrayCommandInputParameter = GenericArrayCommandInputParameter<CWLType.DIRECTORY, Directory>;
export type FileArrayCommandInputParameter = GenericArrayCommandInputParameter<CWLType.FILE, File>;
export type DirectoryArrayCommandInputParameter = GenericArrayCommandInputParameter<CWLType.DIRECTORY, Directory>;
-export const parseWorkflowDefinition = (workflow: WorkflowResource): WorkflowResoruceDefinition => {
+export type WorkflowInputsData = {
+ [key: string]: boolean | number | string | File | Directory;
+};
+export const parseWorkflowDefinition = (workflow: WorkflowResource): WorkflowResourceDefinition => {
const definition = safeLoad(workflow.definition);
return definition;
};
const definition = safeLoad(workflow.definition);
return definition;
};
-export const getWorkflowInputs = (workflowDefinition: WorkflowResoruceDefinition) => {
+export const getWorkflow = (workflowDefinition: WorkflowResourceDefinition) => {
+ if (!workflowDefinition.$graph) { return undefined; }
const mainWorkflow = workflowDefinition.$graph.find(item => item.class === 'Workflow' && item.id === '#main');
return mainWorkflow
const mainWorkflow = workflowDefinition.$graph.find(item => item.class === 'Workflow' && item.id === '#main');
return mainWorkflow
- ? mainWorkflow.inputs
+ ? mainWorkflow
+ : undefined;
+};
+
+export const getWorkflowInputs = (workflowDefinition: WorkflowResourceDefinition) => {
+ if (!workflowDefinition) { return undefined; }
+ return getWorkflow(workflowDefinition)
+ ? getWorkflow(workflowDefinition)!.inputs
: undefined;
};
: undefined;
};
+
export const getInputLabel = (input: CommandInputParameter) => {
return `${input.label || input.id}`;
};
export const getInputLabel = (input: CommandInputParameter) => {
return `${input.label || input.id}`;
};
@@
-138,6
+156,12
@@
export const isPrimitiveOfType = (input: GenericCommandInputParameter<any, any>,
? input.type.indexOf(type) > -1
: input.type === type;
? input.type.indexOf(type) > -1
: input.type === type;
+export const isArrayOfType = (input: GenericCommandInputParameter<any, any>, type: CWLType) =>
+ typeof input.type === 'object' &&
+ input.type.type === 'array'
+ ? input.type.items === type
+ : false;
+
export const stringifyInputType = ({ type }: CommandInputParameter) => {
if (typeof type === 'string') {
return type;
export const stringifyInputType = ({ type }: CommandInputParameter) => {
if (typeof type === 'string') {
return type;