UNPKG

libp2p

Version:

JavaScript implementation of libp2p, a modular peer to peer network stack

34 lines (29 loc) 1.14 kB
import { FaultTolerance, InvalidParametersError } from '@libp2p/interface' import { mergeOptions } from '@libp2p/utils/merge-options' import { dnsaddrResolver } from './connection-manager/resolvers/dnsaddr.ts' import type { Libp2pInit } from './index.js' import type { ServiceMap } from '@libp2p/interface' import type { Multiaddr } from '@multiformats/multiaddr' const DefaultConfig: Libp2pInit = { addresses: { listen: [], announce: [], noAnnounce: [], announceFilter: (multiaddrs: Multiaddr[]) => multiaddrs }, connectionManager: { resolvers: { dnsaddr: dnsaddrResolver } }, transportManager: { faultTolerance: FaultTolerance.FATAL_ALL } } export async function validateConfig <T extends ServiceMap = Record<string, unknown>> (opts: Libp2pInit<T>): Promise<Libp2pInit<T>> { const resultingOptions: Libp2pInit<T> = mergeOptions(DefaultConfig, opts) if (resultingOptions.connectionProtector === null && globalThis.process?.env?.LIBP2P_FORCE_PNET != null) { throw new InvalidParametersError('Private network is enforced, but no protector was provided') } return resultingOptions }