vue3-yuanma/scripts/utils.js

41 lines
933 B
JavaScript
Raw Normal View History

2018-09-19 11:35:38 -04:00
const fs = require('fs')
const chalk = require('chalk')
2018-09-19 11:35:38 -04:00
const targets = (exports.targets = fs.readdirSync('packages').filter(f => {
2018-10-16 17:41:59 -04:00
if (!fs.statSync(`packages/${f}`).isDirectory()) {
return false
}
const pkg = require(`../packages/${f}/package.json`)
2019-10-04 13:08:06 -04:00
if (pkg.private && !pkg.buildOptions) {
2018-10-16 17:41:59 -04:00
return false
}
return true
}))
2018-09-19 11:35:38 -04:00
exports.fuzzyMatchTarget = (partialTargets, includeAllMatching) => {
2018-09-19 11:35:38 -04:00
const matched = []
2019-11-04 13:28:11 -06:00
partialTargets.forEach(partialTarget => {
for (const target of targets) {
if (target.match(partialTarget)) {
matched.push(target)
if (!includeAllMatching) {
break
}
2018-10-23 11:58:37 -04:00
}
2018-09-19 11:35:38 -04:00
}
})
2018-09-19 11:35:38 -04:00
if (matched.length) {
return matched
} else {
console.log()
console.error(
` ${chalk.bgRed.white(' ERROR ')} ${chalk.red(
`Target ${chalk.underline(partialTargets)} not found!`
)}`
)
console.log()
process.exit(1)
2018-09-19 11:35:38 -04:00
}
}