import { createHelia } from 'helia' import { bitswap } from '@helia/block-brokers' import { createLibp2p } from 'libp2p' import { MemoryBlockstore } from 'blockstore-core' import { LevelBlockstore } from 'blockstore-level' import { DefaultLibp2pOptions, DefaultLibp2pBrowserOptions } from '../../src/index.js' const isBrowser = () => typeof window !== 'undefined' export default async ({ directory } = {}) => { const options = isBrowser() ? DefaultLibp2pBrowserOptions : DefaultLibp2pOptions const libp2p = await createLibp2p({ ...options }) const blockstore = directory ? new LevelBlockstore(`${directory}/blocks`) : new MemoryBlockstore() const heliaOptions = { blockstore, libp2p, blockBrokers: [bitswap()] } return createHelia({ ...heliaOptions }) }