process.exit(1)
}
-export default readdirSync('temp/packages').map(pkg => {
+const packages = readdirSync('temp/packages')
+const targets = process.env.TARGETS ? process.env.TARGETS.split(',') : null
+const targetPackages = targets
+ ? packages.filter(pkg => targets.includes(pkg))
+ : packages
+
+export default targetPackages.map(pkg => {
return {
input: `./temp/packages/${pkg}/src/index.d.ts`,
output: {
const formats = args.formats || args.f
const devOnly = args.devOnly || args.d
const prodOnly = !devOnly && (args.prodOnly || args.p)
+const buildTypes = args.withTypes || args.t
const sourceMap = args.sourcemap || args.s
const isRelease = args.release
const buildAllMatching = args.all || args.a
async function run() {
const removeCache = scanEnums()
try {
- if (!targets.length) {
- await buildAll(allTargets)
- checkAllSizes(allTargets)
- } else {
- await buildAll(fuzzyMatchTarget(targets, buildAllMatching))
- checkAllSizes(fuzzyMatchTarget(targets, buildAllMatching))
+ const resolvedTargets = targets.length
+ ? fuzzyMatchTarget(targets, buildAllMatching)
+ : allTargets
+ await buildAll(resolvedTargets)
+ checkAllSizes(resolvedTargets)
+ if (buildTypes) {
+ await execa(
+ 'pnpm',
+ [
+ 'run',
+ 'build-dts',
+ ...(targets.length
+ ? ['--environment', `TARGETS:${resolvedTargets.join(',')}`]
+ : [])
+ ],
+ {
+ stdio: 'inherit'
+ }
+ )
}
} finally {
removeCache()
// build all packages with types
step('\nBuilding all packages...')
if (!skipBuild && !isDryRun) {
- await run('pnpm', ['run', 'build'])
- step('\nBuilding and testing types...')
- await run('pnpm', ['test-dts'])
+ await run('pnpm', ['run', 'build', '--withTypes'])
+ step('\nTesting built types...')
+ await run('pnpm', ['test-dts-only'])
} else {
console.log(`(skipped)`)
}