extractAll.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. const fs = require('fs');
  2. const path = require('path');
  3. const { promisify } = require('util');
  4. const extract = require('./extract');
  5. // Promisified fs functions
  6. const readdirAsync = promisify(fs.readdir);
  7. const readFileAsync = promisify(fs.readFile);
  8. const writeFileAsync = promisify(fs.writeFile);
  9. // Source and destination paths
  10. const markdownPath = path.resolve(__dirname, '../markdown');
  11. const jsonPath = path.resolve(__dirname, '../../front/src/resources/markdown.json');
  12. async function run(filterFunc) {
  13. const allFiles = await readdirAsync(markdownPath);
  14. const tutoFiles = allFiles.filter(filterFunc);
  15. const promises = tutoFiles.map(async tuto => {
  16. const tutoPath = path.join(markdownPath, tuto);
  17. const buf = await readFileAsync(tutoPath);
  18. const md = buf.toString();
  19. console.log(md.split('\n').shift());
  20. try {
  21. return extract(md);
  22. } catch (err) {
  23. console.log(err.message);
  24. }
  25. });
  26. const tutos = await Promise.all(promises);
  27. const json = JSON.stringify(tutos);
  28. await writeFileAsync(jsonPath, json);
  29. process.exit();
  30. }
  31. const filterFunc = f => f.startsWith('tutor');
  32. run(filterFunc);