src/connectors/appscript-connector.js
/**
   * updateList - The helper function to update arbitrary items, like Tests,
   * Results, or Config items.
   * @param  {string} tabId The keys of tabConfigs. E.g. "testsTab"
   * @param  {Array<object>} items Array of new items.
   * @param  {Function} rowIndexFunc The function that returns rowIndex for each item.
   */
The helper function to update arbitrary items, like Tests,
Results, or Config items.
@param  {string} tabId The keys of tabConfigs.
The helper function to update arbitrary items like Tests Results or Config items . @param { string } tabId The keys of tabConfigs .
updateList(tabId, items, rowIndexFunc) {
    if (!items || items.length === 0) return;
    let tabConfig = this.tabConfigs[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++;
    });
  }
updateList ( tabId , items , rowIndexFunc ) { if ( ! items || items . length === 0 ) return ; let tabConfig = this . tabConfigs [ 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 } ${ lookup } ` ) ; } try { let value = lookup ? eval ( ` ${ 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 ++ ; } ) ; }
updateList - The helper function to update arbitrary items, like Tests,
 Results, or Config items.
updateList - The helper function to update arbitrary items like Tests Results or Config items .