Browse Source

undo non-string ID change (#692)

ghi-672
Rich-Harris 9 years ago
parent
commit
001901a695
  1. 12
      src/Bundle.js
  2. 4
      src/Module.js
  3. 15
      test/function/custom-resolver-non-string/_config.js
  4. 2
      test/function/custom-resolver-non-string/main.js

12
src/Bundle.js

@ -198,9 +198,6 @@ export default class Bundle {
return mapSequence( module.sources, source => {
return this.resolveId( source, module.id )
.then( resolvedId => {
module.resolvedIds[ source ] = resolvedId;
if ( !resolvedId || typeof resolvedId === 'string' ) {
let externalName;
if ( resolvedId ) {
// If the `resolvedId` is supposed to be external, make it so.
@ -209,7 +206,6 @@ export default class Bundle {
// This could be an external, relative dependency, based on the current module's parent dir.
externalName = resolve( module.id, '..', source );
}
const forcedExternal = externalName && this.isExternal( externalName );
if ( !resolvedId || forcedExternal ) {
@ -226,8 +222,6 @@ export default class Bundle {
normalizedExternal = resolvedId;
}
}
// overwrite existing
module.resolvedIds[ source ] = normalizedExternal;
if ( !this.moduleById.has( normalizedExternal ) ) {
@ -235,16 +229,16 @@ export default class Bundle {
this.externalModules.push( module );
this.moduleById.set( normalizedExternal, module );
}
return null;
}
}
else {
if ( resolvedId === module.id ) {
throw new Error( `A module cannot import itself (${resolvedId})` );
}
module.resolvedIds[ source ] = resolvedId;
return this.fetchModule( resolvedId, module.id );
}
});
});
}

4
src/Module.js

@ -191,16 +191,12 @@ export default class Module {
}
basename () {
if ( typeof this.id === 'string' ) {
const base = basename( this.id );
const ext = extname( this.id );
return makeLegalIdentifier( ext ? base.slice( 0, -ext.length ) : base );
}
return 'module';
}
bindAliases () {
keys( this.declarations ).forEach( name => {
if ( name === '*' ) return;

15
test/function/custom-resolver-non-string/_config.js

@ -1,15 +0,0 @@
const FOO = {};
module.exports = {
description: 'allows resolveId to return a non-string',
options: {
plugins: [{
resolveId: importee => {
if ( importee === 'foo' ) return FOO;
},
load: id => {
if ( id === FOO ) return 'export default 42';
}
}]
}
};

2
test/function/custom-resolver-non-string/main.js

@ -1,2 +0,0 @@
import foo from 'foo';
assert.equal( foo, 42 );
Loading…
Cancel
Save