( inputOptions: MergedRollupOptions, warnings: BatchWarnings, silent = false )
| 10 | import { printTimings } from './timings'; |
| 11 | |
| 12 | export default async function build( |
| 13 | inputOptions: MergedRollupOptions, |
| 14 | warnings: BatchWarnings, |
| 15 | silent = false |
| 16 | ): Promise<unknown> { |
| 17 | const outputOptions = inputOptions.output; |
| 18 | const useStdout = !outputOptions[0].file && !outputOptions[0].dir; |
| 19 | const start = Date.now(); |
| 20 | const files = useStdout ? ['stdout'] : outputOptions.map(t => relativeId(t.file || t.dir!)); |
| 21 | if (!silent) { |
| 22 | let inputFiles: string | undefined; |
| 23 | if (typeof inputOptions.input === 'string') { |
| 24 | inputFiles = inputOptions.input; |
| 25 | } else if (Array.isArray(inputOptions.input)) { |
| 26 | inputFiles = inputOptions.input.join(', '); |
| 27 | } else if (typeof inputOptions.input === 'object' && inputOptions.input !== null) { |
| 28 | inputFiles = Object.values(inputOptions.input).join(', '); |
| 29 | } |
| 30 | stderr(cyan(`\n${bold(inputFiles!)} → ${bold(files.join(', '))}...`)); |
| 31 | } |
| 32 | |
| 33 | await using bundle = await rollup(inputOptions as any); |
| 34 | if (useStdout) { |
| 35 | const output = outputOptions[0]; |
| 36 | if (output.sourcemap && output.sourcemap !== 'inline') { |
| 37 | handleError(logOnlyInlineSourcemapsForStdout()); |
| 38 | } |
| 39 | const { output: outputs } = await bundle.generate(output); |
| 40 | for (const file of outputs) { |
| 41 | if (outputs.length > 1) process.stdout.write(`\n${cyan(bold(`//→ ${file.fileName}:`))}\n`); |
| 42 | process.stdout.write(file.type === 'asset' ? file.source : file.code); |
| 43 | } |
| 44 | if (!silent) { |
| 45 | warnings.flush(); |
| 46 | } |
| 47 | return; |
| 48 | } |
| 49 | |
| 50 | await Promise.all(outputOptions.map(bundle.write)); |
| 51 | if (!silent) { |
| 52 | warnings.flush(); |
| 53 | stderr(green(`created ${bold(files.join(', '))} in ${bold(ms(Date.now() - start))}`)); |
| 54 | if (bundle && bundle.getTimings) { |
| 55 | printTimings(bundle.getTimings()); |
| 56 | } |
| 57 | } |
| 58 | } |
no test coverage detected
searching dependent graphs…