updateDataListExec()

in src/connectors/sheets-connector.js [280:307]


  updateDataListExec(tabId, items, rowIndexFunc) {
    if (!items || items.length === 0) return;

    let tabConfig = this.tabs[tabId];
    let propertyLookup = this.getPropertyLookup(tabId);

    let rowIndex = tabConfig.skipRows + 1;
    items.forEach(item => {
      let values = [];
      propertyLookup.forEach(lookup => {
        if (typeof lookup !== 'string') {
          throw new Error(
            `${tabId} Tab: Property lookup ${lookup} is not a string`);
        }
        try {
          let value = lookup ? eval(`item.${lookup}`) : '';
          values.push(value);
        } catch (error) {
          values.push('');
        }
      });

      let targetRowIndex = rowIndexFunc ? rowIndexFunc(item, rowIndex) : rowIndex;
      let range = this.getRowRange(tabId, targetRowIndex);
      range.setValues([values]);
      rowIndex++;
    });
  }