orbitdb/test/utils/create-helia.js

25 lines
784 B
JavaScript

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 })
}