Commit cea63797 authored by yann300's avatar yann300

fix loading url for cli

parent 272961f3
...@@ -4,6 +4,7 @@ var async = require('async') ...@@ -4,6 +4,7 @@ var async = require('async')
var remixLib = require('remix-lib') var remixLib = require('remix-lib')
var EventManager = require('../lib/events') var EventManager = require('../lib/events')
var CompilerImport = require('../app/compiler/compiler-imports')
var executionContext = require('../execution-context') var executionContext = require('../execution-context')
var toolTip = require('../app/ui/tooltip') var toolTip = require('../app/ui/tooltip')
var globalRegistry = require('../global/registry') var globalRegistry = require('../global/registry')
...@@ -20,6 +21,7 @@ class CmdInterpreterAPI { ...@@ -20,6 +21,7 @@ class CmdInterpreterAPI {
self._components.registry = localRegistry || globalRegistry self._components.registry = localRegistry || globalRegistry
self._components.terminal = terminal self._components.terminal = terminal
self._components.sourceHighlighter = new SourceHighlighter() self._components.sourceHighlighter = new SourceHighlighter()
self._components.fileImport = new CompilerImport()
self._deps = { self._deps = {
app: self._components.registry.get('app').api, app: self._components.registry.get('app').api,
fileManager: self._components.registry.get('filemanager').api, fileManager: self._components.registry.get('filemanager').api,
...@@ -141,28 +143,40 @@ class CmdInterpreterAPI { ...@@ -141,28 +143,40 @@ class CmdInterpreterAPI {
} }
loadurl (url, cb) { loadurl (url, cb) {
const self = this const self = this
self._deps.app.importExternal(url, (err, content) => { self._components.fileImport.import(url,
if (err) { (loadingMsg) => { toolTip(loadingMsg) },
toolTip(`Unable to load ${url}: ${err}`) (err, content, cleanUrl, type, url) => {
if (cb) cb(err) if (err) {
} else { toolTip(`Unable to load ${url}: ${err}`)
try { if (cb) cb(err)
content = JSON.parse(content) } else {
async.eachOfSeries(content.sources, (value, file, callbackSource) => { self._deps.fileManager.setFile(type + '/' + cleanUrl, content)
var url = value.urls[0] // @TODO retrieve all other contents ? try {
self._deps.app.importExternal(url, (error, content) => { content = JSON.parse(content)
if (error) { async.eachOfSeries(content.sources, (value, file, callbackSource) => {
toolTip(`Cannot retrieve the content of ${url}: ${error}`) var url = value.urls[0] // @TODO retrieve all other contents ?
} self._components.fileImport.import(url,
callbackSource() (loadingMsg) => { toolTip(loadingMsg) },
async (error, content, cleanUrl, type, url) => {
if (error) {
toolTip(`Cannot retrieve the content of ${url}: ${error}`)
return callbackSource(`Cannot retrieve the content of ${url}: ${error}`)
} else {
try {
await self._deps.fileManager.setFile(type + '/' + cleanUrl, content)
callbackSource()
} catch (e) {
callbackSource(e.message)
}
}
})
}, (error) => {
if (cb) cb(error)
}) })
}, (error) => { } catch (e) {}
if (cb) cb(error) if (cb) cb()
}) }
} catch (e) {} })
if (cb) cb()
}
})
} }
setproviderurl (url, cb) { setproviderurl (url, cb) {
executionContext.setProviderFromEndpoint(url, 'web3', (error) => { executionContext.setProviderFromEndpoint(url, 'web3', (error) => {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment