utils.js 673 B

1234567891011121314151617181920212223242526272829
  1. const fs = require('fs')
  2. const targets = (exports.targets = fs.readdirSync('packages').filter(f => {
  3. if (!fs.statSync(`packages/${f}`).isDirectory()) {
  4. return false
  5. }
  6. const pkg = require(`../packages/${f}/package.json`)
  7. if (pkg.private) {
  8. return false
  9. }
  10. return true
  11. }))
  12. exports.fuzzyMatchTarget = (partialTarget, includeAllMatching) => {
  13. const matched = []
  14. for (const target of targets) {
  15. if (target.match(partialTarget)) {
  16. matched.push(target)
  17. if (!includeAllMatching) {
  18. return matched
  19. }
  20. }
  21. }
  22. if (matched.length) {
  23. return matched
  24. } else {
  25. throw new Error(`Target ${partialTarget} not found!`)
  26. }
  27. }