change execution order of module metadata visitor to resolve module source before building up metadata tree - fixes #1720
This commit is contained in:
parent
de195e5bfc
commit
4061bea528
@ -69,54 +69,58 @@ var remapVisitor = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
var metadataVisitor = {
|
var metadataVisitor = {
|
||||||
ModuleDeclaration(node, parent, scope, formatter) {
|
ModuleDeclaration: {
|
||||||
if (node.source) {
|
enter(node, parent, scope, formatter) {
|
||||||
node.source.value = formatter.file.resolveModuleSource(node.source.value);
|
if (node.source) {
|
||||||
|
node.source.value = formatter.file.resolveModuleSource(node.source.value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
ImportDeclaration(node, parent, scope, formatter) {
|
ImportDeclaration: {
|
||||||
formatter.hasLocalImports = true;
|
exit(node, parent, scope, formatter) {
|
||||||
|
formatter.hasLocalImports = true;
|
||||||
|
|
||||||
var specifiers = [];
|
var specifiers = [];
|
||||||
var imported = [];
|
var imported = [];
|
||||||
formatter.metadata.imports.push({
|
formatter.metadata.imports.push({
|
||||||
source: node.source.value,
|
source: node.source.value,
|
||||||
imported,
|
imported,
|
||||||
specifiers
|
specifiers
|
||||||
});
|
});
|
||||||
|
|
||||||
for (var specifier of (this.get("specifiers"): Array)) {
|
for (var specifier of (this.get("specifiers"): Array)) {
|
||||||
var ids = specifier.getBindingIdentifiers();
|
var ids = specifier.getBindingIdentifiers();
|
||||||
extend(formatter.localImports, ids);
|
extend(formatter.localImports, ids);
|
||||||
|
|
||||||
var local = specifier.node.local.name;
|
var local = specifier.node.local.name;
|
||||||
|
|
||||||
if (specifier.isImportDefaultSpecifier()) {
|
if (specifier.isImportDefaultSpecifier()) {
|
||||||
imported.push("default");
|
imported.push("default");
|
||||||
specifiers.push({
|
specifiers.push({
|
||||||
kind: "named",
|
kind: "named",
|
||||||
imported: "default",
|
imported: "default",
|
||||||
local
|
local
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (specifier.isImportSpecifier()) {
|
if (specifier.isImportSpecifier()) {
|
||||||
var importedName = specifier.node.imported.name;
|
var importedName = specifier.node.imported.name;
|
||||||
imported.push(importedName);
|
imported.push(importedName);
|
||||||
specifiers.push({
|
specifiers.push({
|
||||||
kind: "named",
|
kind: "named",
|
||||||
imported: importedName,
|
imported: importedName,
|
||||||
local
|
local
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (specifier.isImportNamespaceSpecifier()) {
|
if (specifier.isImportNamespaceSpecifier()) {
|
||||||
imported.push("*");
|
imported.push("*");
|
||||||
specifiers.push({
|
specifiers.push({
|
||||||
kind: "namespace",
|
kind: "namespace",
|
||||||
local
|
local
|
||||||
});
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user