@@ -6,6 +6,7 @@ const path = require('path')
66const transformDependencies = require ( './transform-dependencies' )
77const installDependencies = require ( './install-dependencies' )
88const detectDependencies = require ( './detect-dependencies' )
9+ const timeSpan = require ( '@kikobeats/time-span' ) ( )
910const { debug, duration } = require ( '../debug' )
1011const template = require ( '../template' )
1112const build = require ( './build' )
@@ -26,22 +27,27 @@ const enqueueInstall = (tmpdir, dependencies, allow) => {
2627
2728module . exports = async ( snippet , { tmpdir = DEFAULT_TMPDIR , allow = { } } = { } ) => {
2829 let content = template ( snippet )
30+ const phases = { install : 0 }
2931
3032 const dependencies = detectDependencies ( content )
3133 if ( dependencies . length ) {
3234 content = transformDependencies ( content )
3335 mkdirSync ( tmpdir , { recursive : true } )
36+ const elapsed = timeSpan ( )
3437 await duration ( 'npm:install' , ( ) => enqueueInstall ( tmpdir , dependencies , allow ) , {
3538 dependencies
3639 } )
40+ phases . install = elapsed ( )
3741 }
3842
3943 const cwd = dependencies . length ? tmpdir : process . cwd ( )
44+ const elapsed = timeSpan ( )
4045 const result = await duration ( 'esbuild' , ( ) => build ( { content, cwd } ) )
46+ phases . build = elapsed ( )
4147 debug ( 'esbuild:output' , { content : result . outputFiles [ 0 ] . text . length } )
4248 content = result . outputFiles [ 0 ] . text
4349
44- return content
50+ return { content, phases }
4551}
4652
4753module . exports . DEFAULT_TMPDIR = DEFAULT_TMPDIR
0 commit comments