1717 * - The path to the module itself: /home/usr/pkg/node_modules
1818 * - The module name: mod
1919 * - The relative path: dir/file.js
20- * - Map the parsed path data to _nodeModuleResourcesMap by the parsed module name and its resource location
20+ * - Map the parsed path data to nodeModuleResourcesMap by the parsed module name and its resource location
2121 * - Example Map:
2222 * {
2323 * 'aurelia-templating-router': {
5252 * - If there are multiple entry points:
5353 * - Pick the most shallow resource
5454 * - If they are both as shallow as possible choose index over module name match
55- * - Map the normalized module id to _nodeModuleResourceIdMap by the resource file
55+ * - Map the normalized module id to nodeModuleResourceIdMap by the resource file
5656 * - Example Map:
5757 * {
5858 * '/home/usr/pkg/node_modules/aurelia-templating-router/dist/native-modules/router-view.js': 'aurelia-templating-router/router-view.js',
@@ -92,8 +92,8 @@ import path = require("path");
9292export const preserveModuleName = Symbol ( ) ;
9393
9494// node_module maps
95- const _nodeModuleResourcesMap : NodeModule . ResourcesMap = { } ;
96- const _nodeModuleResourceIdMap : NodeModule . ResourceIdMap = { } ;
95+ const nodeModuleResourcesMap : NodeModule . ResourcesMap = { } ;
96+ const nodeModuleResourceIdMap : NodeModule . ResourceIdMap = { } ;
9797
9898const TAP_NAME = "Aurelia:PreserveModuleName" ;
9999
@@ -147,6 +147,7 @@ export class PreserveModuleNamePlugin {
147147 if ( / ^ a s y n c [ ? ! ] / . test ( realModule . rawRequest ) )
148148 id = "async!" + id ;
149149
150+ id = id . replace ( / \\ / g, "/" ) ;
150151 if ( module . buildMeta ) // meta can be null if the module contains errors
151152 module . buildMeta [ "aurelia-id" ] = id ;
152153 if ( ! this . isDll ) {
@@ -169,20 +170,13 @@ function getPreservedModules(modules: Webpack.Module[]) {
169170
170171 // Preserve the module if its dependencies are also preserved
171172 const reasons = ( m . reasons && Array . isArray ( m . reasons ) ) ? m . reasons : [ ] ;
172- return reasons . some ( ( reason ) => Boolean ( reason . dependency && reason . dependency [ preserveModuleName ] ) ) ;
173+ return reasons . some ( reason => ( reason . dependency && reason . dependency [ preserveModuleName ] ) ) ;
173174 } )
174175 ) ;
175176}
176177
177- /**
178- * Check if a module exists in node_modules/
179- *
180- * @param {Webpack.Module } module The module to check
181- *
182- * @return {Boolean } True if it exists in node_modules/, false otherwise
183- */
184- function isNodeModule ( module : Webpack . Module ) : boolean {
185- return ! ( ! module || ! module . resource || ! ( / \b n o d e _ m o d u l e s \b / i. test ( module . resource ) ) ) ;
178+ function isNodeModule ( module : Webpack . Module ) {
179+ return ( module . resource && / \b n o d e _ m o d u l e s \b / i. test ( module . resource ) ) ;
186180}
187181
188182/**
@@ -234,10 +228,10 @@ function mapNodeModule(module: Webpack.Module) {
234228 }
235229
236230 // Map it
237- if ( ! _nodeModuleResourcesMap [ moduleData . name ] ) {
238- _nodeModuleResourcesMap [ moduleData . name ] = { } ;
231+ if ( ! nodeModuleResourcesMap [ moduleData . name ] ) {
232+ nodeModuleResourcesMap [ moduleData . name ] = { } ;
239233 }
240- _nodeModuleResourcesMap [ moduleData . name ] [ module . resource ] = moduleData ;
234+ nodeModuleResourcesMap [ moduleData . name ] [ module . resource ] = moduleData ;
241235}
242236
243237/**
@@ -266,13 +260,13 @@ function mapNodeModule(module: Webpack.Module) {
266260 * @return {undefined }
267261 */
268262function parseNodeModules ( ) {
269- if ( ! _nodeModuleResourcesMap || ! Object . keys ( _nodeModuleResourcesMap ) . length ) {
263+ if ( ! nodeModuleResourcesMap || ! Object . keys ( nodeModuleResourcesMap ) . length ) {
270264 return ;
271265 }
272266
273267 // Parse each module
274- for ( const moduleKey in _nodeModuleResourcesMap ) {
275- const moduleResources : NodeModule . ModuleResource = _nodeModuleResourcesMap [ moduleKey ] ;
268+ for ( const moduleKey in nodeModuleResourcesMap ) {
269+ const moduleResources : NodeModule . ModuleResource = nodeModuleResourcesMap [ moduleKey ] ;
276270
277271 // Keep track of the common resource path and possible module entry points
278272 let commonPathParts : string [ ] = [ ] ;
@@ -281,15 +275,15 @@ function parseNodeModules() {
281275 // Parse each resource in the module
282276 for ( const resource in moduleResources ) {
283277 const data : NodeModule . Data = moduleResources [ resource ] ;
284- const pathParts : string [ ] = data . relative . split ( '/' ) ;
278+ const pathParts = data . relative . split ( "/" ) ;
285279 const resourceFile : string | null = pathParts . splice ( - 1 ) [ 0 ] ;
286280 if ( ! resourceFile ) {
287281 continue ;
288282 }
289283
290284 // Entry?
291- const resourceName : string = resourceFile . replace ( / \. .* / , '' ) ;
292- if ( resourceName === moduleKey || resourceName === ' index' ) {
285+ const resourceName = resourceFile . replace ( / \. .* / , "" ) ;
286+ if ( resourceName === moduleKey || resourceName === " index" ) {
293287 possibleEntryPoints . push ( resource ) ;
294288 }
295289
@@ -314,12 +308,12 @@ function parseNodeModules() {
314308 }
315309
316310 // Convert common path to string
317- let commonPath : string = commonPathParts . join ( '/' ) ;
318- commonPath = ( commonPath . startsWith ( '/' ) ) ? commonPath : `/${ commonPath } ` ;
311+ let commonPath = commonPathParts . join ( "/" ) ;
312+ commonPath = ( commonPath . startsWith ( "/" ) ) ? commonPath : `/${ commonPath } ` ;
319313
320314 // If there is more than one possible entry point, use the most shallow resource
321315 let moduleEntry : string | null = null ;
322- possibleEntryPoints . forEach ( ( resource : string ) => {
316+ possibleEntryPoints . forEach ( ( resource ) => {
323317 const data : NodeModule . Data = moduleResources [ resource ] ;
324318
325319 // No entry yet?
@@ -328,7 +322,7 @@ function parseNodeModules() {
328322 }
329323
330324 // Shallow?
331- else if ( moduleEntry . split ( '/' ) . length > data . relative . split ( '/' ) . length ) {
325+ else if ( moduleEntry . split ( "/" ) . length > data . relative . split ( "/" ) . length ) {
332326 moduleEntry = data . relative ;
333327 }
334328
@@ -340,25 +334,25 @@ function parseNodeModules() {
340334 } ) ;
341335
342336 // If an entry point still hasnt been found and there is only one resource, use that
343- const resourceKeys : string [ ] = Object . keys ( moduleResources ) ;
337+ const resourceKeys = Object . keys ( moduleResources ) ;
344338 if ( ! moduleEntry && resourceKeys . length === 1 ) {
345339 moduleEntry = moduleResources [ resourceKeys [ 0 ] ] . relative ;
346340 }
347341
348342 // Map the resources to the module id
349- resourceKeys . forEach ( ( resource : string ) => {
343+ resourceKeys . forEach ( ( resource ) => {
350344 const data : NodeModule . Data = moduleResources [ resource ] ;
351345
352346 // Entry?
353347 if ( moduleEntry === data . relative ) {
354- _nodeModuleResourceIdMap [ resource ] = moduleKey ;
348+ nodeModuleResourceIdMap [ resource ] = moduleKey ;
355349 return ;
356350 }
357351
358352 // Build the id from the resources common path
359- let key : string = data . relative . replace ( new RegExp ( `^${ escapeString ( commonPath ) } ` ) , '' ) ;
360- key = ( key . startsWith ( '/' ) ) ? key : `/${ key } ` ;
361- _nodeModuleResourceIdMap [ resource ] = `${ moduleKey } ${ key } ` ;
353+ let key = data . relative . replace ( new RegExp ( `^${ escapeString ( commonPath ) } ` ) , "" ) ;
354+ key = ( key . startsWith ( "/" ) ) ? key : `/${ key } ` ;
355+ nodeModuleResourceIdMap [ resource ] = `${ moduleKey } ${ key } ` ;
362356 } ) ;
363357 }
364358}
@@ -373,14 +367,14 @@ function parseNodeModules() {
373367 * @return {string|null } The relative path if available, null otherwise
374368 */
375369function getRelativeModule ( module : Webpack . Module , paths : string [ ] ) : string | null {
376- if ( ! module || ! module . resource || ! paths || ! paths . length ) {
370+ if ( ! module . resource || ! paths || ! paths . length ) {
377371 return null ;
378372 }
379373
380374 // Try to find the module in the resolver paths
381375 for ( let i = 0 , len = paths . length ; i < len ; i ++ ) {
382- const relative : string = path . relative ( paths [ i ] , module . resource ) ;
383- if ( ! relative . startsWith ( '..' ) ) {
376+ const relative = path . relative ( paths [ i ] , module . resource ) ;
377+ if ( ! relative . startsWith ( ".." ) ) {
384378 return relative ;
385379 }
386380 }
@@ -398,19 +392,19 @@ function getRelativeModule(module: Webpack.Module, paths: string[]): string | nu
398392 * @return {string|null } The alias path if available, null otherwise
399393 */
400394function getAliasModule ( module : Webpack . Module , aliases : { [ key : string ] : string } | null ) : string | null {
401- if ( ! module || ! module . resource || ! aliases || ! Object . keys ( aliases ) . length ) {
395+ if ( ! module . resource || ! aliases || ! Object . keys ( aliases ) . length ) {
402396 return null ;
403397 }
404398
405399 // Look for the module in each alias
406400 for ( let alias in aliases ) {
407- const relative : string = path . relative ( path . resolve ( aliases [ alias ] ) , module . resource ) ;
408- if ( relative . startsWith ( '..' ) ) {
401+ const relative = path . relative ( path . resolve ( aliases [ alias ] ) , module . resource ) ;
402+ if ( relative . startsWith ( ".." ) ) {
409403 continue ;
410404 }
411405
412406 // Absolute alias?
413- alias = alias . replace ( / \$ $ / , '' ) ;
407+ alias = alias . replace ( / \$ $ / , "" ) ;
414408 return ( relative && relative . length ) ? `${ alias } /${ relative } ` : alias ;
415409 }
416410
@@ -428,10 +422,6 @@ function getAliasModule(module: Webpack.Module, aliases: { [key: string]: string
428422 * @return {string|null } The module id if available, null otherwise
429423 */
430424function getModuleId ( module : Webpack . Module , paths : string [ ] , aliases : { [ key : string ] : string } | null ) : string | null {
431- if ( ! module ) {
432- return null ;
433- }
434-
435425 // Handling module ids can be a bit tricky
436426 // Modules can be included in any of the following ways:
437427 // import { Module } from 'module'
@@ -456,7 +446,7 @@ function getModuleId(module: Webpack.Module, paths: string[], aliases: { [key: s
456446 // In order to have the aurelia-loader work correctly, we need to coerce everything to absolute ids
457447 // Is it a node_module?
458448 if ( isNodeModule ( module ) ) {
459- return _nodeModuleResourceIdMap [ module . resource ] ;
449+ return nodeModuleResourceIdMap [ module . resource ] ;
460450 }
461451
462452 // Get the module relative to the webpack resolver paths
@@ -474,9 +464,5 @@ function getModuleId(module: Webpack.Module, paths: string[], aliases: { [key: s
474464 * @return {string|null } The escaped string
475465 */
476466function escapeString ( str : string ) : string | null {
477- if ( typeof str !== 'string' ) {
478- return null ;
479- }
480-
481- return str . replace ( / [ - \/ \\ ^ $ * + ? . ( ) | [ \] { } ] / g, '\\$&' ) ;
467+ return str . replace ( / [ - \/ \\ ^ $ * + ? . ( ) | [ \] { } ] / g, "\\$&" ) ;
482468}
0 commit comments