static findStepInStructureRecursively()

in src/parser/WDL/entities/WDLWorkflow.js [493:520]


  static findStepInStructureRecursively(step, name) {
    let result = null;
    if (step.declarations && Object.keys(step.declarations).indexOf(name) >= 0) {
      result = step.declarations[name];
    }
    if (!result && step instanceof Group && step.i && Object.keys(step.i).indexOf(name) >= 0) {
      result = step.i[name];
    }

    if (!result) {
      _.forEach(step.children, (item, key) => {
        if (key === name) {
          result = item;
          return false;
        }

        result = WDLWorkflow.findStepInStructureRecursively(item, name);

        if (result) {
          return false;
        }

        return undefined;
      });
    }

    return result;
  }