2022-03-17 09:21:02 +01:00
|
|
|
const path = require('path')
|
|
|
|
const colors = require('picocolors')
|
|
|
|
const fs = require('fs-extra')
|
|
|
|
const rollup = require('rollup')
|
|
|
|
const typescript = require('@rollup/plugin-typescript')
|
|
|
|
const { nodeResolve } = require('@rollup/plugin-node-resolve')
|
|
|
|
const { Extractor, ExtractorConfig } = require('@microsoft/api-extractor')
|
|
|
|
|
|
|
|
;(async () => {
|
|
|
|
const dist = path.resolve(__dirname, '../dist')
|
|
|
|
|
|
|
|
await fs.remove(dist)
|
|
|
|
|
|
|
|
console.log()
|
|
|
|
console.log(colors.bold(colors.yellow(`Rolling up ts code...`)))
|
|
|
|
|
|
|
|
const pkg = require('../package.json')
|
|
|
|
|
|
|
|
const external = ['esbuild', ...Object.keys(pkg.dependencies || {}), ...Object.keys(pkg.peerDependencies || {})]
|
|
|
|
|
|
|
|
const bundle = await rollup.rollup({
|
|
|
|
input: {
|
|
|
|
index: path.resolve(__dirname, '../src/index.ts'),
|
|
|
|
cli: path.resolve(__dirname, '../src/cli.ts')
|
|
|
|
},
|
|
|
|
external,
|
|
|
|
plugins: [
|
|
|
|
typescript({
|
2023-12-07 14:10:48 +01:00
|
|
|
tsconfig: path.resolve(__dirname, '../tsconfig.json'),
|
|
|
|
compilerOptions: { rootDir: 'src' }
|
2022-03-17 09:21:02 +01:00
|
|
|
}),
|
|
|
|
nodeResolve()
|
|
|
|
],
|
|
|
|
treeshake: {
|
|
|
|
moduleSideEffects: false
|
|
|
|
}
|
|
|
|
})
|
|
|
|
await bundle.write({
|
|
|
|
dir: dist,
|
|
|
|
entryFileNames: '[name].js',
|
|
|
|
chunkFileNames: 'chunks/lib-[hash].js',
|
|
|
|
format: 'cjs'
|
|
|
|
})
|
|
|
|
|
|
|
|
console.log(colors.bold(colors.yellow(`Rolling up type definitions...`)))
|
|
|
|
|
|
|
|
if (pkg.types) {
|
|
|
|
const extractorConfig = ExtractorConfig.loadFileAndPrepare(path.resolve(__dirname, '../api-extractor.json'))
|
|
|
|
const extractorResult = Extractor.invoke(extractorConfig, {
|
|
|
|
localBuild: true,
|
|
|
|
showVerboseMessages: true
|
|
|
|
})
|
|
|
|
|
|
|
|
if (extractorResult.succeeded) {
|
|
|
|
console.log(colors.green('API Extractor completed successfully'))
|
|
|
|
} else {
|
|
|
|
console.error(
|
|
|
|
`API Extractor completed with ${extractorResult.errorCount} errors` +
|
|
|
|
` and ${extractorResult.warningCount} warnings`
|
|
|
|
)
|
|
|
|
process.exitCode = 1
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
await fs.remove(path.resolve(dist, 'types'))
|
|
|
|
|
|
|
|
console.log(colors.green(`Build ${pkg.name}@${pkg.version} successfully`))
|
|
|
|
})()
|