UNPKG

specpress

Version:

Export PDF and/or DOCX files from a subset of Markdown, ASN.1 and JSON files

48 lines (40 loc) 1.28 kB
import { promises as fs } from "fs"; import { normalize, resolve } from "path"; import { getAllFiles, getFileExtension, rewriteFiguresPathsInBuffer, } from "./index.mjs"; export async function concatenateFilesToBuffer(folderPath) { const fileTypesToMark = [".md", ".asn", ".json"]; const fileTypesToMarkAsCodeBlock = [".asn", ".json"]; const newlineBuffer = Buffer.from("\n"); const files = await getAllFiles(folderPath); const buffers = await Promise.all( files .filter((file) => fileTypesToMark.includes(getFileExtension(file))) .map(async (file) => { const fileBuffer = await readFileAsBuffer(file); if ( fileTypesToMarkAsCodeBlock.includes(getFileExtension(file)) ) { return Buffer.concat([ Buffer.from("```\n"), fileBuffer, Buffer.from("\n```"), newlineBuffer, ]); } else { return Buffer.concat([fileBuffer, newlineBuffer]); } }) ); const rewrtittenBuffers = buffers.map((buffer) => { const baseDir = normalize(`${resolve(folderPath, "src")}/src/`); return rewriteFiguresPathsInBuffer(buffer, baseDir); }); return Buffer.concat(rewrtittenBuffers); } async function readFileAsBuffer(pathFiile) { return await fs.readFile(pathFiile); }