You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

45 lines
891 B

import { blank } from './utils/object';
export default class ExternalModule {
constructor ( id ) {
this.id = id;
this.name = null;
this.isExternal = true;
this.importedByBundle = [];
this.canonicalNames = blank();
this.suggestedNames = blank();
this.needsDefault = false;
this.needsNamed = false;
}
getCanonicalName ( name ) {
if ( name === 'default' ) {
return this.needsNamed ? `${this.name}__default` : this.name;
}
if ( name === '*' ) {
return this.name;
}
// TODO this depends on the output format... works for CJS etc but not ES6
return `${this.name}.${name}`;
}
rename ( name, replacement ) {
this.canonicalNames[ name ] = replacement;
}
suggestName ( exportName, suggestion ) {
if ( !this.suggestedNames[ exportName ] ) {
this.suggestedNames[ exportName ] = suggestion;
}
}
findDefiningStatement () {
return null;
}
}