Expose `fetchCommunityDescription` in request client (#386)

* export val

* add started flag

* use pks[]

* fix export

* throw on stop

* rm log

* Revert "use pks[]"

This reverts commit 5d4d7e4b6e.

* make fn public
This commit is contained in:
Felicio Mununga 2023-04-27 19:43:42 +02:00 committed by GitHub
parent 665d2df7e8
commit ab319aa602
No known key found for this signature in database
GPG Key ID: 0EB8D75C775AB6F1
2 changed files with 16 additions and 6 deletions

View File

@ -15,7 +15,7 @@ export { EthereumClient } from './ethereum-client/ethereum-client'
export type { ChannelInfo } from './request-client/map-channel'
export type { CommunityInfo } from './request-client/map-community'
export type { UserInfo } from './request-client/map-user'
export type { RequestClient } from './request-client/request-client'
export { RequestClient } from './request-client/request-client'
export { createRequestClient } from './request-client/request-client'
export { deserializePublicKey } from './utils/deserialize-public-key'
export {

View File

@ -38,9 +38,12 @@ class RequestClient {
/** Cache. */
public readonly wakuMessages: Set<string>
constructor(waku: WakuLight) {
private started: boolean
constructor(waku: WakuLight, started = false) {
this.waku = waku
this.wakuMessages = new Set()
this.started = started
}
static async start(options: RequestClientOptions): Promise<RequestClient> {
@ -67,7 +70,8 @@ class RequestClient {
await waku.start()
await waitForRemotePeer(waku, [Protocols.Store], 10 * 1000)
client = new RequestClient(waku)
const started = true
client = new RequestClient(waku, started)
} catch (error) {
if (waku) {
await waku.stop()
@ -80,7 +84,13 @@ class RequestClient {
}
public async stop() {
if (!this.started) {
throw new Error('Waku instance not created by class initialization')
}
await this.waku.stop()
this.started = false
}
public fetchCommunity = async (
@ -127,8 +137,8 @@ class RequestClient {
return mapUser(contactCodeAdvertisement, publicKey)
}
private fetchCommunityDescription = async (
/** Uncompressed */
public fetchCommunityDescription = async (
/** Compressed */
publicKey: string
): Promise<CommunityDescription | undefined> => {
const contentTopic = idToContentTopic(publicKey)
@ -317,4 +327,4 @@ export async function createRequestClient(
return await RequestClient.start(options)
}
export type { RequestClient }
export { RequestClient }