11import { IncludeDependency } from "./IncludeDependency" ;
22import BasicEvaluatedExpression = require( "webpack/lib/BasicEvaluatedExpression" ) ;
3+ import { preserveModuleName } from "./PreserveModuleNamePlugin" ;
34
45const TAP_NAME = "Aurelia:Dependencies" ;
56
@@ -13,7 +14,13 @@ class AureliaDependency extends IncludeDependency {
1314
1415class Template {
1516 apply ( dep : AureliaDependency , source : Webpack . Source ) {
16- source . replace ( dep . range [ 0 ] , dep . range [ 1 ] - 1 , "'" + dep . request . replace ( / ^ a s y n c (?: \? [ ^ ! ] * ) ? ! / , "" ) + "'" ) ;
17+ // Get the module id, fallback to using the module request
18+ let moduleId : string = dep . request ;
19+ if ( dep . module && typeof dep . module [ preserveModuleName ] === 'string' ) {
20+ moduleId = dep . module [ preserveModuleName ] ;
21+ }
22+
23+ source . replace ( dep . range [ 0 ] , dep . range [ 1 ] - 1 , "'" + moduleId . replace ( / ^ a s y n c (?: \? [ ^ ! ] * ) ? ! / , "" ) + "'" ) ;
1724 } ;
1825}
1926
@@ -41,7 +48,7 @@ class ParserPlugin {
4148 hooks . evaluateIdentifier . tap ( "imported var.moduleName" , TAP_NAME , ( expr : Webpack . MemberExpression ) => {
4249 if ( expr . property . name === "moduleName" &&
4350 expr . object . name === "PLATFORM" &&
44- expr . object . type === "Identifier" ) {
51+ String ( expr . object . type ) === "Identifier" ) {
4552 return new BasicEvaluatedExpression ( ) . setIdentifier ( "PLATFORM.moduleName" ) . setRange ( expr . range ) ;
4653 }
4754 return undefined ;
@@ -56,7 +63,7 @@ class ParserPlugin {
5663 hooks . evaluate . tap ( "MemberExpression" , TAP_NAME , expr => {
5764 if ( expr . property . name === "moduleName" &&
5865 ( expr . object . type === "MemberExpression" && expr . object . property . name === "PLATFORM" ||
59- expr . object . type === "Identifier" && expr . object . name === "PLATFORM" ) ) {
66+ String ( expr . object . type ) === "Identifier" && expr . object . name === "PLATFORM" ) ) {
6067 return new BasicEvaluatedExpression ( ) . setIdentifier ( "PLATFORM.moduleName" ) . setRange ( expr . range ) ;
6168 }
6269 return undefined ;
0 commit comments