@libp2p/peer-store
Version:
Stores information about peers libp2p knows on the network
33 lines • 1.29 kB
TypeScript
import { type Mortice } from 'mortice';
import { Peer as PeerPB } from './pb/peer.js';
import type { PersistentPeerStoreComponents, PersistentPeerStoreInit } from './index.js';
import type { PeerUpdate as PeerUpdateExternal, PeerId, Peer, PeerData, PeerQuery } from '@libp2p/interface';
/**
* Event detail emitted when peer data changes
*/
export interface PeerUpdate extends PeerUpdateExternal {
updated: boolean;
}
export interface ExistingPeer {
peerPB: PeerPB;
peer: Peer;
}
export declare class PersistentStore {
#private;
private readonly peerId;
private readonly datastore;
readonly lock: Mortice;
private readonly addressFilter?;
private readonly log;
private readonly maxAddressAge;
private readonly maxPeerAge;
constructor(components: PersistentPeerStoreComponents, init?: PersistentPeerStoreInit);
has(peerId: PeerId): Promise<boolean>;
delete(peerId: PeerId): Promise<void>;
load(peerId: PeerId): Promise<Peer>;
save(peerId: PeerId, data: PeerData): Promise<PeerUpdate>;
patch(peerId: PeerId, data: Partial<PeerData>): Promise<PeerUpdate>;
merge(peerId: PeerId, data: PeerData): Promise<PeerUpdate>;
all(query?: PeerQuery): AsyncGenerator<Peer, void, unknown>;
}
//# sourceMappingURL=store.d.ts.map