Common code shared by the various libp2p interfaces
$ npm i @libp2p/interfaces
Throw an error with a .code
property of 'ABORT_ERR'
:
import { AbortError } from '@libp2p/interfaces/errors'
throw new AbortError()
Typed events:
import { EventEmitter, CustomEvent } from '@libp2p/interfaces/events'
export interface MyEmitterEvents {
'some-event': CustomEvent<number>;
}
class MyEmitter extends EventEmitter<MyEmitterEvents> {
}
// later
const myEmitter = new MyEmitter()
myEmitter.addEventListener('some-event', (evt) => {
const num = evt.detail // <-- inferred as number
})
import type { AbortOptions } from '@libp2p/interfaces'
Lifecycles for components
import { start, stop, isStartable } from '@libp2p/interfaces/startable'
import type { Startable } from '@libp2p/interfaces/startable'
class MyStartable implements Startable {
// .. implementation methods
}
const myStartable = new MyStartable()
isStartable(myStartable) // returns true
await start(myStartable)
await stop(myStartable)
Licensed under either of
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.