@@ -3,11 +3,6 @@ import { CodeError } from '@libp2p/interfaces/errors'
33import { isMultiaddr } from '@multiformats/multiaddr'
44import { codes } from './errors.js'
55import { 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'
116import { peerIdFromPeerId } from '@libp2p/peer-id'
127import { CustomEvent } from '@libp2p/interfaces/events'
138import type { Address , AddressFilter , Peer , PeerMultiaddrsChangeData , PeerStore } from '@libp2p/interface-peer-store'
@@ -346,21 +341,27 @@ export class PeerStoreAddressBook {
346341}
347342
348343async 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 => {
352348 if ( ! isMultiaddr ( multiaddr ) ) {
353349 log . error ( 'multiaddr must be an instance of Multiaddr' )
354350 throw new CodeError ( 'multiaddr must be an instance of Multiaddr' , codes . ERR_INVALID_PARAMETERS )
355351 }
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 ( {
360360 multiaddr,
361361 isCertified
362- }
363- } ) ,
364- async ( source ) => await all ( source )
362+ } )
363+ } )
365364 )
365+
366+ return output
366367}
0 commit comments