import documenter from './transform'; import imp from './import'; import { readFile, writeFile } from 'fs'; import path from 'path'; import frontmatter from 'front-matter'; var minify = require('html-minifier').minify; const readFileAsync = filename => new Promise((resolve, reject) => readFile(filename, 'utf8', (err, data) => { if (err) reject(err); else resolve(data); }) ); const writeFileAsync = (filename, data) => new Promise((resolve, reject) => writeFile(filename, data, err => { if (err) reject(err); else resolve(filename); }) ); const load = (filename, importHandler) => { const file = path.normalize(filename); return readFileAsync(file) .then(data => imp(data, file, importHandler)) .then(data => { const f = frontmatter(data); return `--- ${f.frontmatter} --- ${importHandler(f)}`; }) .then(documenter) .then(data => minify(data, { collapseWhitespace: true, //preserveLineBreaks: false, minifyJS: true, minifyCSS: true // removeAttributeQuotes: true }) ) .then(data => { console.log('\x1b[32m', '\n√ File converted'); return data; }) .catch(e => // console.log( // '\x1b[31m', // '\n⚠ Documenter Error\n ', // e.message.replace(',', '\n '), // '\x1b[0m' // ) console.error(e) ); }; export { readFileAsync, writeFileAsync }; export default load;