pkg-readme.js 957 B

1234567891011121314151617181920212223242526272829303132333435
  1. const path = require('path')
  2. const handleBars = require('handlebars')
  3. const { readFile, writeFile, fileExists } = require('./util')
  4. const { pkgStructs } = require('./pkg-struct')
  5. exports.writePkgReadmes = writePkgReadmes
  6. async function writePkgReadmes() {
  7. let templateText = await readFile('packages/README.md.tpl')
  8. let template = handleBars.compile(templateText)
  9. return Promise.all(
  10. pkgStructs.map((pkgStruct) => (
  11. pkgStruct.isBundle ? Promise.resolve() : writePkgReadme(pkgStruct, template)
  12. ))
  13. )
  14. }
  15. async function writePkgReadme(pkgStruct, template) {
  16. let readmeDestPath = path.join(pkgStruct.distDir, 'README.md')
  17. let ownReadmePath = path.join(pkgStruct.dir, 'README.md')
  18. let hasOwnReadme = await fileExists(ownReadmePath)
  19. let readmeText
  20. if (hasOwnReadme) {
  21. readmeText = await readFile(ownReadmePath)
  22. } else {
  23. readmeText = template(pkgStruct.jsonObj)
  24. }
  25. return writeFile(readmeDestPath, readmeText)
  26. }