1- import { stat } from 'node:fs/promises'
21import { resolve } from 'node:path'
2+ import { stat } from 'node:fs/promises'
33import { isObject } from '@hypernym/utils'
44import { rollup } from 'rollup'
5+ import { getLogFilter } from 'rollup/getLogFilter'
56import _replace from '@rollup/plugin-replace'
67import _json from '@rollup/plugin-json'
78import _resolve from '@rollup/plugin-node-resolve'
89import { dts as dtsPlugin } from 'rollup-plugin-dts'
9- import { esbuild as esbuildPlugin } from './utils/plugins/esbuild.js'
10+ import { esbuild as esbuildPlugin } from '.. /utils/plugins/esbuild.js'
1011import type { Plugin } from 'rollup'
11- import type { Options , BuildStats } from './types/index.js'
12+ import type { Options } from '../types/options.js'
13+ import type { BuildStats , BuildLogs } from '../types/build.js'
1214
1315const replacePlugin = _replace . default ?? _replace
1416const jsonPlugin = _json . default ?? _json
@@ -37,6 +39,7 @@ export async function build(
3739 const { input, output, plugins, externals, banner, footer } = entry
3840 const entryStart = Date . now ( )
3941
42+ const logFilter = getLogFilter ( entry . logFilter || [ ] )
4043 const defaultPlugins : Plugin [ ] = [ esbuildPlugin ( plugins ?. esbuild ) ]
4144
4245 if ( plugins ?. json ) {
@@ -64,10 +67,14 @@ export async function build(
6467 )
6568
6669 if ( ! isTypesExt ) {
70+ const buildLogs : BuildLogs [ ] = [ ]
6771 const builder = await rollup ( {
6872 input : resolve ( cwd , input ) ,
6973 external : externals || options . externals ,
7074 plugins : defaultPlugins ,
75+ onLog : ( level , log ) => {
76+ if ( logFilter ( log ) ) buildLogs . push ( { level, log } )
77+ } ,
7178 } )
7279 await builder . write ( {
7380 file : resolve ( cwd , output ) ,
@@ -81,12 +88,18 @@ export async function build(
8188 path : output ,
8289 size : stats . size ,
8390 buildTime : Date . now ( ) - entryStart ,
91+ format : entry . format || 'esm' ,
92+ logs : buildLogs ,
8493 } )
8594 buildStats . size = buildStats . size + stats . size
8695 } else {
96+ const buildLogs : BuildLogs [ ] = [ ]
8797 const builder = await rollup ( {
8898 input : resolve ( cwd , input ) ,
8999 plugins : [ dtsPlugin ( plugins ?. dts ) ] ,
100+ onLog : ( level , log ) => {
101+ if ( logFilter ( log ) ) buildLogs . push ( { level, log } )
102+ } ,
90103 } )
91104 await builder . write ( {
92105 file : resolve ( cwd , output ) ,
@@ -100,6 +113,8 @@ export async function build(
100113 path : output ,
101114 size : stats . size ,
102115 buildTime : Date . now ( ) - entryStart ,
116+ format : entry . format || 'esm' ,
117+ logs : buildLogs ,
103118 } )
104119 buildStats . size = buildStats . size + stats . size
105120 }
0 commit comments