mirror of https://github.com/embarklabs/embark.git
Add remapping when parse file to support embark-solc
This commit is contained in:
parent
bdd5852b6c
commit
109152730f
|
@ -438,7 +438,7 @@ Config.prototype.loadPluginContractFiles = function() {
|
|||
contractsPlugins.forEach(function(plugin) {
|
||||
plugin.contractsFiles.forEach(function(file) {
|
||||
var filename = file.replace('./','');
|
||||
self.contractsFiles.push(new File({filename: filename, type: File.types.custom, path: filename, resolver: function(callback) {
|
||||
self.contractsFiles.push(new File({filename: filename, pluginPath: plugin.pluginPath, type: File.types.custom, path: filename, resolver: function(callback) {
|
||||
callback(plugin.loadPluginFile(file));
|
||||
}}));
|
||||
});
|
||||
|
|
|
@ -12,7 +12,9 @@ class File {
|
|||
this.path = options.path;
|
||||
this.basedir = options.basedir;
|
||||
this.resolver = options.resolver;
|
||||
this.pluginPath = options.pluginPath ? options.pluginPath : '';
|
||||
this.downloadedImports = false;
|
||||
this.importRemappings = []; // mapping downloaded imports to local file
|
||||
}
|
||||
|
||||
parseFileForImport(content, isHttpContract, callback) {
|
||||
|
@ -36,6 +38,21 @@ class File {
|
|||
fileRelativePath: path.join(path.dirname(self.filename), matches[1]),
|
||||
url: `${pathWithoutFile}/${matches[1]}`
|
||||
};
|
||||
|
||||
var target = matches[1];
|
||||
if (httpFileObj) {
|
||||
target = httpFileObj.filePath;
|
||||
} else if (fs.existsSync(path.join(path.dirname(self.filename), matches[1]))) {
|
||||
target = path.join(path.dirname(self.filename), matches[1]);
|
||||
} else if (fs.existsSync(path.join("node_modules", matches[1]))) {
|
||||
target = path.join("node_modules", matches[1]);
|
||||
}
|
||||
|
||||
self.importRemappings.push({
|
||||
prefix: matches[1],
|
||||
target: fs.dappPath(target)
|
||||
});
|
||||
|
||||
if (httpFileObj) {
|
||||
// Replace http import by filePath import in content
|
||||
newContent = newContent.replace(matches[1], httpFileObj.filePath);
|
||||
|
|
|
@ -77,6 +77,8 @@ describe('embark.Config', function () {
|
|||
"filename": ".embark/contracts/embark-framework/embark/master/test_app/app/contracts/simple_storage.sol",
|
||||
"type": "http",
|
||||
"path": "https://raw.githubusercontent.com/embark-framework/embark/master/test_app/app/contracts/simple_storage.sol",
|
||||
"pluginPath": '',
|
||||
"importRemappings": [],
|
||||
"basedir": "",
|
||||
"resolver": undefined,
|
||||
"downloadedImports": false
|
||||
|
@ -85,6 +87,8 @@ describe('embark.Config', function () {
|
|||
"filename": ".embark/contracts/status-im/contracts/master/contracts/identity/ERC725.sol",
|
||||
"type": "http",
|
||||
"path": "https://raw.githubusercontent.com/status-im/contracts/master/contracts/identity/ERC725.sol",
|
||||
"pluginPath": '',
|
||||
"importRemappings": [],
|
||||
"basedir": "",
|
||||
"resolver": undefined,
|
||||
"downloadedImports": false
|
||||
|
|
Loading…
Reference in New Issue