*Add new query type just for clearing a query hash
This commit is contained in:
parent
144e19e635
commit
5e1c52352e
|
@ -5,6 +5,8 @@ import RPC from "@lumeweb/rpc";
|
||||||
import { isPromise } from "./util.js";
|
import { isPromise } from "./util.js";
|
||||||
import SimpleRpcQuery from "./query/simple.js";
|
import SimpleRpcQuery from "./query/simple.js";
|
||||||
import WisdomRpcQuery from "./query/wisdom.js";
|
import WisdomRpcQuery from "./query/wisdom.js";
|
||||||
|
import ClearCacheRpcQuery from "./query/clearCache.js";
|
||||||
|
import { RpcQueryOptions } from "./types.js";
|
||||||
|
|
||||||
export default class RpcNetwork {
|
export default class RpcNetwork {
|
||||||
constructor(dht = new DHT()) {
|
constructor(dht = new DHT()) {
|
||||||
|
@ -127,7 +129,7 @@ export default class RpcNetwork {
|
||||||
module: string,
|
module: string,
|
||||||
data: object | any[] = {},
|
data: object | any[] = {},
|
||||||
bypassCache: boolean = false,
|
bypassCache: boolean = false,
|
||||||
options: {}
|
options: RpcQueryOptions = {}
|
||||||
): SimpleRpcQuery {
|
): SimpleRpcQuery {
|
||||||
return new SimpleRpcQuery(
|
return new SimpleRpcQuery(
|
||||||
this,
|
this,
|
||||||
|
@ -141,4 +143,23 @@ export default class RpcNetwork {
|
||||||
options
|
options
|
||||||
).run();
|
).run();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public clearCacheQuery(
|
||||||
|
relays: string[],
|
||||||
|
method: string,
|
||||||
|
module: string,
|
||||||
|
data: object | any[] = {},
|
||||||
|
options: RpcQueryOptions = {}
|
||||||
|
): SimpleRpcQuery {
|
||||||
|
return new ClearCacheRpcQuery(
|
||||||
|
this,
|
||||||
|
relays,
|
||||||
|
{
|
||||||
|
method,
|
||||||
|
module,
|
||||||
|
data,
|
||||||
|
},
|
||||||
|
options
|
||||||
|
).run();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
import RpcNetwork from "../network.js";
|
||||||
|
import { RPCBroadcastRequest, RPCRequest } from "@lumeweb/relay-types";
|
||||||
|
import { RpcQueryOptions } from "../types.js";
|
||||||
|
import { hashQuery } from "../util.js";
|
||||||
|
import { getActiveRelay, setupRelay } from "../sharedRelay.js";
|
||||||
|
import SimpleRpcQuery from "./simple.js";
|
||||||
|
|
||||||
|
export default class ClearCacheRpcQuery extends SimpleRpcQuery {
|
||||||
|
protected _relays: string[];
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
network: RpcNetwork,
|
||||||
|
relays: string[],
|
||||||
|
query: RPCRequest,
|
||||||
|
options: RpcQueryOptions
|
||||||
|
) {
|
||||||
|
super(network, "", query, options);
|
||||||
|
this._relays = relays;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected async _run(): Promise<void> {
|
||||||
|
await setupRelay(this._network);
|
||||||
|
// @ts-ignore
|
||||||
|
this._relay = getActiveRelay().stream.remotePublicKey;
|
||||||
|
await this.queryRelay();
|
||||||
|
await this.checkResponses();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected async queryRelay(): Promise<any> {
|
||||||
|
return this.queryRpc(getActiveRelay(), {
|
||||||
|
module: "rpc",
|
||||||
|
method: "broadcast_request",
|
||||||
|
data: {
|
||||||
|
request: {
|
||||||
|
module: "rpc",
|
||||||
|
method: "clear_cached_item",
|
||||||
|
data: hashQuery(this._query),
|
||||||
|
},
|
||||||
|
relays: this._relays,
|
||||||
|
} as RPCBroadcastRequest,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue