*Handle web edge case where .dht returns an async function
This commit is contained in:
parent
80ed28e8b4
commit
6b9c865e12
|
@ -2,7 +2,7 @@
|
||||||
import Hyperswarm from "hyperswarm";
|
import Hyperswarm from "hyperswarm";
|
||||||
import RpcNetworkQueryFactory from "./query/index.js";
|
import RpcNetworkQueryFactory from "./query/index.js";
|
||||||
import b4a from "b4a";
|
import b4a from "b4a";
|
||||||
import { createHash } from "./util.js";
|
import { createHash, isPromise } from "./util.js";
|
||||||
|
|
||||||
export default class RpcNetwork {
|
export default class RpcNetwork {
|
||||||
private _relaysAvailablePromise?: Promise<void>;
|
private _relaysAvailablePromise?: Promise<void>;
|
||||||
|
@ -70,10 +70,18 @@ export default class RpcNetwork {
|
||||||
|
|
||||||
get ready(): Promise<void> {
|
get ready(): Promise<void> {
|
||||||
if (!this._ready) {
|
if (!this._ready) {
|
||||||
this._ready = this._swarm.dht.ready() as Promise<void>;
|
let dht = this._swarm.dht;
|
||||||
|
if (typeof dht === "function") {
|
||||||
|
dht = dht();
|
||||||
|
}
|
||||||
|
if (isPromise(dht)) {
|
||||||
|
this._ready = dht.then((dht: any) => dht.ready());
|
||||||
|
} else {
|
||||||
|
this._ready = this._swarm.dht.ready() as Promise<void>;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return this._ready;
|
return this._ready as Promise<void>;
|
||||||
}
|
}
|
||||||
|
|
||||||
get readyWithRelays(): Promise<void> {
|
get readyWithRelays(): Promise<void> {
|
||||||
|
|
Loading…
Reference in New Issue