libp2p
Version:
JavaScript implementation of libp2p, a modular peer to peer network stack
22 lines • 838 B
JavaScript
import { reliableTransportsFirst, loopbackAddressLast, publicAddressesFirst, circuitRelayAddressesLast } from '@libp2p/utils';
/**
* Compare function for array.sort() that moves certified addresses to the start
* of the array.
*/
export function certifiedAddressesFirst(a, b) {
if (a.isCertified && !b.isCertified) {
return -1;
}
else if (!a.isCertified && b.isCertified) {
return 1;
}
return 0;
}
export function defaultAddressSorter(addresses) {
return addresses.sort((a, b) => loopbackAddressLast(a.multiaddr, b.multiaddr) ||
publicAddressesFirst(a.multiaddr, b.multiaddr) ||
circuitRelayAddressesLast(a.multiaddr, b.multiaddr) ||
certifiedAddressesFirst(a, b) ||
reliableTransportsFirst(a.multiaddr, b.multiaddr));
}
//# sourceMappingURL=address-sorter.js.map