FileCommandInputParameter |
DirectoryCommandInputParameter |
StringArrayCommandInputParameter |
+ IntArrayCommandInputParameter |
+ FloatArrayCommandInputParameter |
FileArrayCommandInputParameter |
DirectoryArrayCommandInputParameter |
EnumCommandInputParameter;
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 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 WorkflowInputsData = {
+ [key: string]: boolean | number | string | File | Directory;
+};
export const parseWorkflowDefinition = (workflow: WorkflowResource): WorkflowResoruceDefinition => {
const definition = safeLoad(workflow.definition);
return definition;
? mainWorkflow.inputs
: undefined;
};
+export const getInputLabel = (input: CommandInputParameter) => {
+ return `${input.label || input.id}`;
+};
+
+export const isRequiredInput = ({ type }: CommandInputParameter) => {
+ if (type instanceof Array) {
+ for (const t of type) {
+ if (t === CWLType.NULL) {
+ return false;
+ }
+ }
+ }
+ return true;
+};
+
+export const isPrimitiveOfType = (input: GenericCommandInputParameter<any, any>, type: CWLType) =>
+ input.type instanceof Array
+ ? 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') {