fix double import by using newContent

This commit is contained in:
Jonathan Rainville 2018-09-12 14:08:00 -04:00
parent ef4134015c
commit a4400a303d
1 changed files with 5 additions and 4 deletions

View File

@ -24,10 +24,11 @@ class File {
// Only supported in Solidity
return callback(null, content);
}
const regex = /import ["|']([-a-zA-Z0-9@:%_+.~#?&\/=]+)["|'];/g;
const regex = /import ["']([-a-zA-Z0-9@:%_+.~#?&\/=]+)["'];/g;
let matches;
const filesToDownload = [];
const pathWithoutFile = path.dirname(self.path);
let newContent = content;
while ((matches = regex.exec(content))) {
const httpFileObj = utils.getExternalContractUrl(matches[1]);
const fileObj = {
@ -36,7 +37,7 @@ class File {
};
if (httpFileObj) {
// Replace http import by filePath import in content
content = content.replace(matches[1], httpFileObj.filePath);
newContent = newContent.replace(matches[1], httpFileObj.filePath);
fileObj.fileRelativePath = httpFileObj.filePath;
fileObj.url = httpFileObj.url;
@ -49,7 +50,7 @@ class File {
if (self.downloadedImports) {
// We already parsed this file
return callback(null, content);
return callback(null, newContent);
}
self.downloadedImports = true;
async.each(filesToDownload, ((fileObj, eachCb) => {
@ -57,7 +58,7 @@ class File {
eachCb();
});
}), (err) => {
callback(err, content);
callback(err, newContent);
});
}