@@ -3,11 +3,6 @@ import { CodeError } from '@libp2p/interfaces/errors'
3
3
import { isMultiaddr } from '@multiformats/multiaddr'
4
4
import { codes } from './errors.js'
5
5
import { PeerRecord , RecordEnvelope } from '@libp2p/peer-record'
6
- import { pipe } from 'it-pipe'
7
- import all from 'it-all'
8
- import filter from 'it-filter'
9
- import map from 'it-map'
10
- import each from 'it-foreach'
11
6
import { peerIdFromPeerId } from '@libp2p/peer-id'
12
7
import { CustomEvent } from '@libp2p/interfaces/events'
13
8
import type { Address , AddressFilter , Peer , PeerMultiaddrsChangeData , PeerStore } from '@libp2p/interface-peer-store'
@@ -346,21 +341,27 @@ export class PeerStoreAddressBook {
346
341
}
347
342
348
343
async function filterMultiaddrs ( peerId : PeerId , multiaddrs : Multiaddr [ ] , addressFilter : AddressFilter , isCertified : boolean = false ) : Promise < Address [ ] > {
349
- return await pipe (
350
- multiaddrs ,
351
- ( source ) => each ( source , ( multiaddr ) => {
344
+ const output : Address [ ] = [ ]
345
+
346
+ await Promise . all (
347
+ multiaddrs . map ( async multiaddr => {
352
348
if ( ! isMultiaddr ( multiaddr ) ) {
353
349
log . error ( 'multiaddr must be an instance of Multiaddr' )
354
350
throw new CodeError ( 'multiaddr must be an instance of Multiaddr' , codes . ERR_INVALID_PARAMETERS )
355
351
}
356
- } ) ,
357
- ( source ) => filter ( source , async ( multiaddr ) => await addressFilter ( peerId , multiaddr ) ) ,
358
- ( source ) => map ( source , ( multiaddr ) => {
359
- return {
352
+
353
+ const include = await addressFilter ( peerId , multiaddr )
354
+
355
+ if ( ! include ) {
356
+ return
357
+ }
358
+
359
+ output . push ( {
360
360
multiaddr,
361
361
isCertified
362
- }
363
- } ) ,
364
- async ( source ) => await all ( source )
362
+ } )
363
+ } )
365
364
)
365
+
366
+ return output
366
367
}
0 commit comments