const path = require('path') const { getMetadata } = require('./getMetadata') const { parseMetadata } = require('./parseMetadata') const { mkdirAndWriteFile, dataDir } = require('../paths') async function main() { const parsedData = [...parseMetadata(await getMetadata())] const tsvData = parsedData.map(entryToRow) mkdirAndWriteFile( path.join(dataDir, 'PG-meta.json'), JSON.stringify(parsedData, undefined, 2) ) mkdirAndWriteFile(path.join(dataDir, 'PG-meta.tsv'), formatTsv(tsvData)) } function entryToRow(entry) { return [ entry.id, (entry.title[0] || '').replace(/[\r\n]+/gm, ''), entry.author.join('|'), entry.language.join('|'), entry.subject.join('|'), entry.textUris.join('|'), entry.pictures.join('|') ] } function formatTsv(array2D) { return array2D .map(row => row.join('\t')) .join('\n') .replace(/"/gm, '\\"') } main()