@@ -71,8 +71,7 @@ export async function buildAction(actionContext: BuildActionContext): Promise<Ex
7171 return result ;
7272 }
7373
74- let collectedAssetsPromise : CollectedAssets | Promise < CollectedAssets > | undefined =
75- actionContext . collectedAssets ;
74+ let collectedAssets = actionContext . collectedAssets ;
7675 const filesToEmit : OutputFile [ ] = [ ] ;
7776
7877 if ( shouldCompileEntryPoints ) {
@@ -101,23 +100,17 @@ export async function buildAction(actionContext: BuildActionContext): Promise<Ex
101100 return result ;
102101 }
103102
104- if ( ! collectedAssetsPromise ) {
105- const promise = buildState . collectAssets ( options , modifiedFiles ) ;
106- // Prevent unhandled promise rejections if bundling returns early.
107- promise . catch ( ( ) => { } ) ;
108- collectedAssetsPromise = promise ;
109- }
110-
111103 const itemsToBundle = collectEntryPointsToBundle ( options , buildState ) ;
112104 let bundleOutput : BundleEntryPointsOutput ;
113105 try {
114- [ bundleOutput ] = await Promise . all ( [
106+ [ bundleOutput , , collectedAssets ] = await Promise . all ( [
115107 bundleEntryPoints ( itemsToBundle , esmFiles , dtsFiles , {
116108 ...options ,
117109 declarationMap,
118110 compilationMode,
119111 } ) ,
120112 diagnosePromise ,
113+ collectedAssets ?? buildState . collectAssets ( options , modifiedFiles ) ,
121114 ] ) ;
122115 } catch ( error ) {
123116 assertIsError ( error ) ;
@@ -154,26 +147,17 @@ export async function buildAction(actionContext: BuildActionContext): Promise<Ex
154147 filesToEmit . push ( ...manifestFiles ) ;
155148 }
156149
157- const collectedAssets = await ( collectedAssetsPromise ??
158- buildState . collectAssets ( options , modifiedFiles ) ) ;
150+ collectedAssets ??= await buildState . collectAssets ( options , modifiedFiles ) ;
159151 filesToEmit . push ( ...collectedAssets . filesToEmit ) ;
160152
161- const emitPromise = emitFilesToDisk ( filesToEmit , ( file ) =>
162- path . posix . join ( options . outputPath , file . path ) ,
163- ) ;
164-
165153 const filesToDelete = buildState . recordEmittedOutputs ( collectedAssets , manifestFiles ) ;
166-
167154 if ( filesToDelete . size ) {
168- await Promise . all ( [
169- emitPromise ,
170- deleteFilesFromDisk (
171- Array . from ( filesToDelete , ( file ) => path . posix . join ( options . outputPath , file ) ) ,
172- ) ,
173- ] ) ;
174- } else {
175- await emitPromise ;
155+ await deleteFilesFromDisk (
156+ Array . from ( filesToDelete , ( file ) => path . posix . join ( options . outputPath , file ) ) ,
157+ ) ;
176158 }
159+
160+ await emitFilesToDisk ( filesToEmit , ( file ) => path . posix . join ( options . outputPath , file . path ) ) ;
177161 } catch ( error ) {
178162 assertIsError ( error ) ;
179163 result . addError ( error . message ) ;
0 commit comments