11'use strict'
22
33const defaultNodes = require ( '../runtime/config-nodejs.json' ) . Bootstrap
4- // const MultiAddr = require('multiaddr')
4+ const Multiaddr = require ( 'multiaddr' )
55const promisify = require ( 'promisify-es6' )
66
7+ function isValid ( ma ) {
8+ if ( typeof ma === 'string' ) {
9+ try {
10+ ma = new Multiaddr ( ma )
11+ return Boolean ( ma )
12+ } catch ( err ) {
13+ return false
14+ }
15+ } else if ( ma ) {
16+ return Multiaddr . isMultiaddr ( ma )
17+ } else {
18+ return false
19+ }
20+ }
21+
722module . exports = function bootstrap ( self ) {
823 return {
924 list : promisify ( ( callback ) => {
@@ -17,17 +32,13 @@ module.exports = function bootstrap (self) {
1732 add : promisify ( ( multiaddr , args , callback ) => {
1833 if ( typeof args === 'function' ) {
1934 callback = args
20- args = { default : false }
35+ args = { default : false }
2136 }
22- try {
23- if ( multiaddr ) {
24- // TODO understand what was the purpose of this code
25- // it failed on tests, it passes without
26- // multiaddr = new MultiAddr(multiaddr)
27- }
28- } catch ( err ) {
29- return setImmediate ( ( ) => callback ( err ) )
37+
38+ if ( multiaddr && ! isValid ( multiaddr ) ) {
39+ return setImmediate ( ( ) => callback ( new Error ( 'Not valid multiaddr' ) ) )
3040 }
41+
3142 self . _repo . config . get ( ( err , config ) => {
3243 if ( err ) {
3344 return callback ( err )
@@ -53,13 +64,8 @@ module.exports = function bootstrap (self) {
5364 callback = args
5465 args = { all : false }
5566 }
56- try {
57- if ( multiaddr ) {
58- // TODO understand what was the purpose of this code
59- // multiaddr = new MultiAddr(multiaddr)
60- }
61- } catch ( err ) {
62- return setImmediate ( ( ) => callback ( err ) )
67+ if ( multiaddr && ! isValid ( multiaddr ) ) {
68+ return setImmediate ( ( ) => callback ( new Error ( 'Not valid multiaddr' ) ) )
6369 }
6470
6571 self . _repo . config . get ( ( err , config ) => {
0 commit comments