22
33const FSM = require ( 'fsm-event' )
44const EventEmitter = require ( 'events' ) . EventEmitter
5- const assert = require ( 'assert' )
65const debug = require ( 'debug' )
76const log = debug ( 'libp2p' )
87log . error = debug ( 'libp2p:error' )
8+ const errCode = require ( 'err-code' )
99
1010const each = require ( 'async/each' )
1111const series = require ( 'async/series' )
@@ -24,7 +24,12 @@ const pubsub = require('./pubsub')
2424const getPeerInfo = require ( './get-peer-info' )
2525const validateConfig = require ( './config' ) . validate
2626
27- const NOT_STARTED_ERROR_MESSAGE = 'The libp2p node is not started yet'
27+ const notStarted = ( action , state ) => {
28+ return errCode (
29+ new Error ( `libp2p cannot ${ action } when not started; state is ${ state } ` ) ,
30+ 'ERR_NODE_NOT_STARTED'
31+ )
32+ }
2833
2934/**
3035 * @fires Node#error Emitted when an error occurs
@@ -217,8 +222,6 @@ class Node extends EventEmitter {
217222 * @returns {void }
218223 */
219224 dial ( peer , callback ) {
220- assert ( this . isStarted ( ) , NOT_STARTED_ERROR_MESSAGE )
221-
222225 this . dialProtocol ( peer , null , callback )
223226 }
224227
@@ -233,7 +236,9 @@ class Node extends EventEmitter {
233236 * @returns {void }
234237 */
235238 dialProtocol ( peer , protocol , callback ) {
236- assert ( this . isStarted ( ) , NOT_STARTED_ERROR_MESSAGE )
239+ if ( ! this . isStarted ( ) ) {
240+ return callback ( notStarted ( 'dial' , this . state . _state ) )
241+ }
237242
238243 if ( typeof protocol === 'function' ) {
239244 callback = protocol
@@ -261,7 +266,9 @@ class Node extends EventEmitter {
261266 * @returns {void }
262267 */
263268 dialFSM ( peer , protocol , callback ) {
264- assert ( this . isStarted ( ) , NOT_STARTED_ERROR_MESSAGE )
269+ if ( ! this . isStarted ( ) ) {
270+ return callback ( notStarted ( 'dial' , this . state . _state ) )
271+ }
265272
266273 if ( typeof protocol === 'function' ) {
267274 callback = protocol
@@ -282,8 +289,6 @@ class Node extends EventEmitter {
282289 }
283290
284291 hangUp ( peer , callback ) {
285- assert ( this . isStarted ( ) , NOT_STARTED_ERROR_MESSAGE )
286-
287292 this . _getPeerInfo ( peer , ( err , peerInfo ) => {
288293 if ( err ) { return callback ( err ) }
289294
@@ -293,7 +298,7 @@ class Node extends EventEmitter {
293298
294299 ping ( peer , callback ) {
295300 if ( ! this . isStarted ( ) ) {
296- return callback ( new Error ( NOT_STARTED_ERROR_MESSAGE ) )
301+ return callback ( notStarted ( 'ping' , this . state . _state ) )
297302 }
298303
299304 this . _getPeerInfo ( peer , ( err , peerInfo ) => {
@@ -463,13 +468,13 @@ class Node extends EventEmitter {
463468 }
464469 cb ( )
465470 } ,
466- ( cb ) => {
467- // Ensures idempotency for restarts
468- this . _switch . transport . removeAll ( cb )
469- } ,
470471 ( cb ) => {
471472 this . connectionManager . stop ( )
472473 this . _switch . stop ( cb )
474+ } ,
475+ ( cb ) => {
476+ // Ensures idempotent restarts
477+ this . _switch . transport . removeAll ( cb )
473478 }
474479 ] , ( err ) => {
475480 if ( err ) {
0 commit comments