@@ -167,22 +167,18 @@ module.exports = class ContextModuleFactory extends ModuleFactory {
167167 asyncLib . parallel (
168168 [
169169 callback => {
170- const results = [ ] ;
171- const yield_ = obj => results . push ( obj ) ;
172-
173170 contextResolver . resolve (
174171 { } ,
175172 context ,
176173 resource ,
177174 {
178175 fileDependencies,
179176 missingDependencies,
180- contextDependencies,
181- yield : yield_
177+ contextDependencies
182178 } ,
183- err => {
179+ ( err , result ) => {
184180 if ( err ) return callback ( err ) ;
185- callback ( null , results ) ;
181+ callback ( null , result ) ;
186182 }
187183 ) ;
188184 } ,
@@ -217,20 +213,15 @@ module.exports = class ContextModuleFactory extends ModuleFactory {
217213 contextDependencies
218214 } ) ;
219215 }
220- const [ contextResult , loaderResult ] = result ;
216+
221217 this . hooks . afterResolve . callAsync (
222218 {
223219 addon :
224220 loadersPrefix +
225- loaderResult . join ( "!" ) +
226- ( loaderResult . length > 0 ? "!" : "" ) ,
227- resource :
228- contextResult . length > 1
229- ? contextResult . map ( r => r . path )
230- : contextResult [ 0 ] . path ,
221+ result [ 1 ] . join ( "!" ) +
222+ ( result [ 1 ] . length > 0 ? "!" : "" ) ,
223+ resource : result [ 0 ] ,
231224 resolveDependencies : this . resolveDependencies . bind ( this ) ,
232- resourceQuery : contextResult [ 0 ] . query ,
233- resourceFragment : contextResult [ 0 ] . fragment ,
234225 ...beforeResolveResult
235226 } ,
236227 ( err , result ) => {
@@ -287,28 +278,26 @@ module.exports = class ContextModuleFactory extends ModuleFactory {
287278 } = options ;
288279 if ( ! regExp || ! resource ) return callback ( null , [ ] ) ;
289280
290- let severalContexts = false ;
291- const addDirectoryChecked = ( ctx , directory , visited , callback ) => {
281+ const addDirectoryChecked = ( directory , visited , callback ) => {
292282 fs . realpath ( directory , ( err , realPath ) => {
293283 if ( err ) return callback ( err ) ;
294284 if ( visited . has ( realPath ) ) return callback ( null , [ ] ) ;
295285 let recursionStack ;
296286 addDirectory (
297- ctx ,
298287 directory ,
299- ( _ , dir , callback ) => {
288+ ( dir , callback ) => {
300289 if ( recursionStack === undefined ) {
301290 recursionStack = new Set ( visited ) ;
302291 recursionStack . add ( realPath ) ;
303292 }
304- addDirectoryChecked ( ctx , dir , recursionStack , callback ) ;
293+ addDirectoryChecked ( dir , recursionStack , callback ) ;
305294 } ,
306295 callback
307296 ) ;
308297 } ) ;
309298 } ;
310299
311- const addDirectory = ( ctx , directory , addSubDirectory , callback ) => {
300+ const addDirectory = ( directory , addSubDirectory , callback ) => {
312301 fs . readdir ( directory , ( err , files ) => {
313302 if ( err ) return callback ( err ) ;
314303 const processedFiles = cmf . hooks . contextModuleFiles . call (
@@ -335,15 +324,16 @@ module.exports = class ContextModuleFactory extends ModuleFactory {
335324
336325 if ( stat . isDirectory ( ) ) {
337326 if ( ! recursive ) return callback ( ) ;
338- addSubDirectory ( ctx , subResource , callback ) ;
327+ addSubDirectory ( subResource , callback ) ;
339328 } else if (
340329 stat . isFile ( ) &&
341330 ( ! include || subResource . match ( include ) )
342331 ) {
343332 const obj = {
344- context : ctx ,
333+ context : resource ,
345334 request :
346- "." + subResource . substr ( ctx . length ) . replace ( / \\ / g, "/" )
335+ "." +
336+ subResource . substr ( resource . length ) . replace ( / \\ / g, "/" )
347337 } ;
348338
349339 this . hooks . alternativeRequests . callAsync (
@@ -354,11 +344,8 @@ module.exports = class ContextModuleFactory extends ModuleFactory {
354344 alternatives = alternatives
355345 . filter ( obj => regExp . test ( obj . request ) )
356346 . map ( obj => {
357- const request = severalContexts
358- ? join ( fs , obj . context , obj . request )
359- : obj . request ;
360347 const dep = new ContextElementDependency (
361- request + resourceQuery + resourceFragment ,
348+ obj . request + resourceQuery + resourceFragment ,
362349 obj . request ,
363350 typePrefix ,
364351 category ,
@@ -395,38 +382,12 @@ module.exports = class ContextModuleFactory extends ModuleFactory {
395382 } ) ;
396383 } ;
397384
398- const addSubDirectory = ( ctx , dir , callback ) =>
399- addDirectory ( ctx , dir , addSubDirectory , callback ) ;
400-
401- const visitResource = ( resource , callback ) => {
402- if ( typeof fs . realpath === "function" ) {
403- addDirectoryChecked ( resource , resource , new Set ( ) , callback ) ;
404- } else {
405- addDirectory ( resource , resource , addSubDirectory , callback ) ;
406- }
407- } ;
408-
409- if ( typeof resource === "string" ) {
410- visitResource ( resource , callback ) ;
385+ if ( typeof fs . realpath === "function" ) {
386+ addDirectoryChecked ( resource , new Set ( ) , callback ) ;
411387 } else {
412- severalContexts = true ;
413- asyncLib . map ( resource , visitResource , ( err , result ) => {
414- if ( err ) return callback ( err ) ;
415-
416- // result dependencies should have unique userRequest
417- // ordered by resolve result
418- const temp = new Set ( ) ;
419- const res = [ ] ;
420- for ( let i = 0 ; i < result . length ; i ++ ) {
421- const inner = result [ i ] ;
422- for ( const el of inner ) {
423- if ( temp . has ( el . userRequest ) ) continue ;
424- res . push ( el ) ;
425- temp . add ( el . userRequest ) ;
426- }
427- }
428- callback ( null , res ) ;
429- } ) ;
388+ const addSubDirectory = ( dir , callback ) =>
389+ addDirectory ( dir , addSubDirectory , callback ) ;
390+ addDirectory ( resource , addSubDirectory , callback ) ;
430391 }
431392 }
432393} ;
0 commit comments