From db2672b630157324441cd9d167eaf2cbd791df60 Mon Sep 17 00:00:00 2001 From: Lachlan Kermode Date: Mon, 17 May 2021 16:18:07 +1200 Subject: [PATCH] export as deeprowsWithSchema --- src/lib/blueprinters.js | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/lib/blueprinters.js b/src/lib/blueprinters.js index e02600b..758d7aa 100644 --- a/src/lib/blueprinters.js +++ b/src/lib/blueprinters.js @@ -50,15 +50,18 @@ fs.readdirSync(normalizedPath).forEach(file => { allBps[bpName] = buildBlueprinter(bpName, datafier) }) -function transformerFromSchema (datafierName, schema) { - // TODO: enact schema - const datafier = data => data +function deeprowsWithSchema (datafierName, schema) { + const datafier = data => { + const transformedData = allBps.deeprows('', '', '', data).resources.deeprows.data + return transformedData.map(row => { + Object.keys(schema).forEach(key => { + row[key] = schema[key](row[key]) + }) + return row + }) + } - return buildBlueprinter(datafierName, datafier) -} - -function blueprinterWithSchema (name, blueprinter, schema) { - return transformerFromSchema(name, schema) + return buildBlueprinter(`deeprows_${datafierName}`, datafier) } // NB: revert to ES5 'module.exports' required to make blueprinters from @@ -67,5 +70,5 @@ module.exports = Object.assign({ defaultBlueprint, defaultResource, buildDesaturated, - blueprinterWithSchema + deeprowsWithSchema }, allBps)