@@ -112,28 +112,23 @@ export const formatted = (bndl, opts) => analyze(bndl, opts, true)
112112export const plugin = ( opts = { } ) => {
113113 let cb = opts . writeTo || ( opts . stdout ? console . log : console . error )
114114 if ( opts . onAnalysis ) cb = opts . onAnalysis
115- let written
116- let modules
115+ let depMap = { }
117116
118117 let runAnalysis = ( out , bundle , isWrite ) => new Promise ( ( resolve , reject ) => {
119118 resolve ( )
120- if ( written ) return
121- written = true
122119 if ( out . bundle ) bundle = out . bundle
120+ let modules = bundle . modules
123121
124- if ( ! Array . isArray ( bundle . modules ) ) {
125- modules . forEach ( ( m ) => {
126- let bm = bundle . modules [ m . id ]
127- bm . id = bm . id || m . id
128- bm . usedExports = bm . renderedExports || m . renderedExports
129- bm . unusedExports = bm . removedExports || m . removedExports
130- bm . dependencies = m . dependencies || [ ]
131- } )
132- modules = Object . keys ( bundle . modules ) . map ( ( k ) => bundle . modules [ k ] )
133- } else {
134- modules = bundle . modules
122+ if ( Array . isArray ( modules ) ) {
123+ return analyze ( { modules} , opts , ! opts . onAnalysis ) . then ( cb )
135124 }
136125
126+ modules = Object . keys ( modules ) . map ( ( k ) => {
127+ let module = Object . assign ( modules [ k ] , depMap [ k ] || { } )
128+ module . usedExports = module . renderedExports
129+ module . unusedExports = module . removedExports
130+ return module
131+ } )
137132 return analyze ( { modules} , opts , ! opts . onAnalysis ) . then ( cb )
138133 } )
139134
@@ -142,8 +137,8 @@ export const plugin = (opts = {}) => {
142137 transformChunk : ( _a , _b , chunk ) => new Promise ( ( resolve , reject ) => {
143138 resolve ( null )
144139 if ( ! chunk || ! chunk . orderedModules ) return
145- modules = chunk . orderedModules . map ( ( m ) => {
146- return { id : m . id , dependencies : m . dependencies . map ( ( d ) => d . id ) }
140+ chunk . orderedModules . forEach ( ( { id , dependencies } ) => {
141+ depMap [ id ] = { id, dependencies : dependencies . map ( ( d ) => d . id ) }
147142 } )
148143 } ) ,
149144 generateBundle : runAnalysis ,
0 commit comments