UNPKG

@helia/verified-fetch

Version:

A fetch-like API for obtaining verified & trustless IPFS content on the web

40 lines (34 loc) 1.22 kB
import { kadDHT } from '@libp2p/kad-dht' import { libp2pDefaults } from 'helia' import { ipnsSelector } from 'ipns/selector' import { ipnsValidator } from 'ipns/validator' import type { ServiceFactoryMap } from './libp2p-types.js' import type { DefaultLibp2pServices } from 'helia' import type { Libp2pOptions } from 'libp2p' type ServiceMap = Pick<DefaultLibp2pServices, 'autoNAT' | 'dcutr' | 'dht' | 'identify' | 'keychain' | 'ping' | 'upnp'> export function getLibp2pConfig (): Libp2pOptions & Required<Pick<Libp2pOptions, 'services'>> { const libp2pDefaultOptions = libp2pDefaults() libp2pDefaultOptions.start = false const services: ServiceFactoryMap<ServiceMap> = { autoNAT: libp2pDefaultOptions.services.autoNAT, dcutr: libp2pDefaultOptions.services.dcutr, dht: kadDHT({ clientMode: true, validators: { ipns: ipnsValidator }, selectors: { ipns: ipnsSelector } }), identify: libp2pDefaultOptions.services.identify, keychain: libp2pDefaultOptions.services.keychain, ping: libp2pDefaultOptions.services.ping, upnp: libp2pDefaultOptions.services.upnp } return { ...libp2pDefaultOptions, start: false, services } }