utils.js 749 B

12345678910111213141516171819202122232425262728293031
  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 && !pkg.buildOptions) {
  8. return false
  9. }
  10. return true
  11. }))
  12. exports.fuzzyMatchTarget = (partialTargets, includeAllMatching) => {
  13. const matched = []
  14. partialTargets.some(partialTarget => {
  15. for (const target of targets) {
  16. if (target.match(partialTarget)) {
  17. matched.push(target)
  18. if (!includeAllMatching) {
  19. break
  20. }
  21. }
  22. }
  23. })
  24. if (matched.length) {
  25. return matched
  26. } else {
  27. throw new Error(`Target ${partialTargets} not found!`)
  28. }
  29. }