in src/connectors/sheets-connector.js [79:119]
getDataList(tabId, options) {
options = options || {};
let tabConfig = this.tabs[tabId];
let data = this.getSheet(tabId).getDataRange().getValues();
let skipRows = tabConfig.skipRows || 0;
let skipColumns = tabConfig.skipColumns || 0;
if (tabConfig.dataAxis === DataAxis.COLUMN) {
data = transpose(data);
skipRows = tabConfig.skipColumns;
skipColumns = tabConfig.skipRows;
}
let propertyLookup = data[tabConfig.propertyLookup - 1];
data = data.slice(skipRows, data.length);
let items = [];
for (let i = 0; i < data.length; i++) {
let newItem = {};
for (let j = skipColumns; j < data[i].length; j++) {
if (propertyLookup[j]) {
if (typeof propertyLookup[j] !== 'string') {
throw new Error(
`${tabId} Tab: Property lookup ${propertyLookup[j]} is not a string`);
}
setObject(newItem, propertyLookup[j], data[i][j]);
}
}
// Add metadata for GoogleSheets.
newItem.sheets = {
rowIndex: i + tabConfig.skipRows + 1,
};
items.push(newItem);
}
items = patternFilter(items, options.filters);
return items;
}