diff --git a/.env.enc b/.env.enc index 1ff6a3d..8074cb9 100644 Binary files a/.env.enc and b/.env.enc differ diff --git a/src/blueprinters/columns.js b/src/blueprinters/columns.js new file mode 100644 index 0000000..879e399 --- /dev/null +++ b/src/blueprinters/columns.js @@ -0,0 +1,27 @@ +/** + * Each resource item is an object with values labelled according + * to column names specified in the sheet's first row. If two or more + * column names are the same except for a different integer at the end + * (e.g. 'tag1', and 'tag2'), then the values of those two columns are + * aggregated into a list, which is the value of the prefix's key ('tag'). + * Any values in those columns that are empty will NOT be added to the list. + * + * @param {type} data list of lists representing sheet data. + * @return {type} Array the structured data. + */ +export default (data) => { + const columnNames = data[0] + const columns = columnNames.map(name => ([])) + + data.forEach((row, idx) => { + if (idx === 0) return + row.forEach((item, idx) => { + columns[idx].push(item) + }) + }) + + return columns.map((column, idx) => ({ + name: columnNames[idx], + items: column + })) +} diff --git a/src/blueprinters/tree.js b/src/blueprinters/tree.js index 2e4dd21..b71c309 100644 --- a/src/blueprinters/tree.js +++ b/src/blueprinters/tree.js @@ -6,7 +6,7 @@ */ export default (data) => { const tree = { - key: 'tags', + key: '_root', children: {} }