private _traverseAction()

in apps/vs-code-designer/src/app/commands/workflows/openDesigner/openDesignerForLocalProject.ts [380:440]


  private _traverseAction(action: any, migrationOptions: Record<string, any>): void {
    const type = action?.type;
    switch ((type || '').toLowerCase()) {
      case 'liquid': {
        if (migrationOptions['liquidJsonToJson']?.inputs?.properties?.map?.properties?.source) {
          const map = action?.inputs?.map;
          if (map && map.source === undefined) {
            map.source = 'LogicApp';
          }
        }
        break;
      }
      case 'xmlvalidation': {
        if (migrationOptions['xmlValidation']?.inputs?.properties?.schema?.properties?.source) {
          const schema = action?.inputs?.schema;
          if (schema && schema.source === undefined) {
            schema.source = 'LogicApp';
          }
        }
        break;
      }
      case 'xslt': {
        if (migrationOptions['xslt']?.inputs?.properties?.map?.properties?.source) {
          const map = action?.inputs?.map;
          if (map && map.source === undefined) {
            map.source = 'LogicApp';
          }
        }
        break;
      }
      case 'flatfileencoding':
      case 'flatfiledecoding': {
        if (migrationOptions['flatFileEncoding']?.inputs?.properties?.schema?.properties?.source) {
          const schema = action?.inputs?.schema;
          if (schema && schema.source === undefined) {
            schema.source = 'LogicApp';
          }
        }
        break;
      }
      case 'if': {
        this._traverseActions(action.else?.actions, migrationOptions);
        break;
      }
      case 'scope':
      case 'foreach':
      case 'changeset':
      case 'until': {
        this._traverseActions(action.actions, migrationOptions);
        break;
      }
      case 'switch': {
        for (const caseKey of Object.keys(action.cases || {})) {
          this._traverseActions(action.cases[caseKey]?.actions, migrationOptions);
        }
        this._traverseActions(action.default?.actions, migrationOptions);

        break;
      }
    }
  }