1
1
'use strict'
2
2
3
3
const defaultNodes = require ( '../runtime/config-nodejs.json' ) . Bootstrap
4
- // const MultiAddr = require('multiaddr')
4
+ const Multiaddr = require ( 'multiaddr' )
5
5
const promisify = require ( 'promisify-es6' )
6
6
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
+
7
22
module . exports = function bootstrap ( self ) {
8
23
return {
9
24
list : promisify ( ( callback ) => {
@@ -17,17 +32,13 @@ module.exports = function bootstrap (self) {
17
32
add : promisify ( ( multiaddr , args , callback ) => {
18
33
if ( typeof args === 'function' ) {
19
34
callback = args
20
- args = { default : false }
35
+ args = { default : false }
21
36
}
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' ) ) )
30
40
}
41
+
31
42
self . _repo . config . get ( ( err , config ) => {
32
43
if ( err ) {
33
44
return callback ( err )
@@ -53,13 +64,8 @@ module.exports = function bootstrap (self) {
53
64
callback = args
54
65
args = { all : false }
55
66
}
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' ) ) )
63
69
}
64
70
65
71
self . _repo . config . get ( ( err , config ) => {
0 commit comments