in src/connectors/sheets-connector.js [316:349]
appendDataListExec(tabId, items, rowIndexFunc) {
if (!items || items.length === 0) return;
let tabConfig = this.tabs[tabId];
let propertyLookup = this.getPropertyLookup(tabId);
let firstRowIndex, allValues = [];
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('');
}
});
if (!firstRowIndex) {
firstRowIndex = rowIndexFunc ? rowIndexFunc(item, rowIndex) : rowIndex;
}
allValues.push(values);
rowIndex++;
});
// Update in batch.
let range = this.getRowRange(tabId, firstRowIndex, items.length);
range.setValues(allValues);
}