diff --git a/dist/index.d.ts b/dist/index.d.ts index 83e0b79..52f8f74 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -11,11 +11,15 @@ export declare class RpcNetwork { private _actionQueue; private _addQueue; private _removeQueue; + private _def; + constructor(def?: boolean); + private _networkId; + get networkId(): number; get ready(): Promise; + private static deleteItem; addRelay(pubkey: string): void; removeRelay(pubkey: string): void; clearRelays(): void; - private static deleteItem; wisdomQuery( method: string, module: string, @@ -52,8 +56,8 @@ export declare abstract class RpcQueryBase { options: RpcQueryOptions | undefined, queryType: string ); - run(): this; get result(): Promise; + run(): this; } export declare class SimpleRpcQuery extends RpcQueryBase { constructor( diff --git a/dist/index.d.ts.map b/dist/index.d.ts.map index 23746a5..a0cdf2b 100644 --- a/dist/index.d.ts.map +++ b/dist/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,wBAAwB,EACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAsBhC,qBAAa,UAAU;IACrB,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,YAAY,CAAgB;IAEpC,IAAI,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,CAE7B;IAEM,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM9B,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAMjC,WAAW,IAAI,IAAI;IAI1B,OAAO,CAAC,MAAM,CAAC,UAAU;IAQlB,WAAW,CAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,MAAM,GAAG,GAAG,EAAO,EACzB,WAAW,GAAE,OAAe,EAC5B,OAAO,GAAE,eAAoB,GAC5B,cAAc;IAaV,cAAc,CACnB,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,qBAAqB,EACpC,IAAI,GAAE,MAAM,GAAG,GAAG,EAAO,EACzB,OAAO,GAAE,eAAoB,GAC5B,iBAAiB;IASb,WAAW,CAChB,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,MAAM,GAAG,GAAG,EAAO,EACzB,OAAO,GAAE,eAAoB,GAC5B,cAAc;IAaJ,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;CAuB3C;AAED,8BAAsB,YAAY;IAChC,SAAS,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC/B,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC;IAC7B,SAAS,CAAC,QAAQ,EAAE,eAAe,CAAC;IACpC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;gBAG3B,OAAO,EAAE,UAAU,EACnB,KAAK,EAAE,UAAU,EACjB,OAAO,6BAAsB,EAC7B,SAAS,EAAE,MAAM;IAQZ,GAAG,IAAI,IAAI;IAWlB,IAAI,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,CAOjC;CACF;AAED,qBAAa,cAAe,SAAQ,YAAY;gBAE5C,OAAO,EAAE,UAAU,EACnB,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,eAAe;CAI3B;AAED,qBAAa,iBAAkB,SAAQ,YAAY;IACjD,SAAS,CAAC,QAAQ,EAAE,wBAAwB,CAAC;gBAG3C,OAAO,EAAE,UAAU,EACnB,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,wBAAwB;IAM5B,GAAG,IAAI,IAAI;CAenB;AAED,qBAAa,cAAe,SAAQ,YAAY;gBAE5C,OAAO,EAAE,UAAU,EACnB,KAAK,EAAE,UAAU,EACjB,OAAO,GAAE,eAAoB;CAIhC"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,wBAAwB,EACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAsBhC,qBAAa,UAAU;IACrB,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,IAAI,CAAU;gBAEV,GAAG,GAAE,OAAc;IAI/B,OAAO,CAAC,UAAU,CAAa;IAE/B,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,CAc7B;IAED,OAAO,CAAC,MAAM,CAAC,UAAU;IAQlB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM9B,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAMjC,WAAW,IAAI,IAAI;IAInB,WAAW,CAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,MAAM,GAAG,GAAG,EAAO,EACzB,WAAW,GAAE,OAAe,EAC5B,OAAO,GAAE,eAAoB,GAC5B,cAAc;IAaV,cAAc,CACnB,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,qBAAqB,EACpC,IAAI,GAAE,MAAM,GAAG,GAAG,EAAO,EACzB,OAAO,GAAE,eAAoB,GAC5B,iBAAiB;IASb,WAAW,CAChB,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,MAAM,GAAG,GAAG,EAAO,EACzB,OAAO,GAAE,eAAoB,GAC5B,cAAc;IAaJ,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;CAgC3C;AAED,8BAAsB,YAAY;IAChC,SAAS,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC/B,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC;IAC7B,SAAS,CAAC,QAAQ,EAAE,eAAe,CAAC;IACpC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;gBAG3B,OAAO,EAAE,UAAU,EACnB,KAAK,EAAE,UAAU,EACjB,OAAO,6BAAsB,EAC7B,SAAS,EAAE,MAAM;IAQnB,IAAI,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,CAOjC;IAEM,GAAG,IAAI,IAAI;CAWnB;AAED,qBAAa,cAAe,SAAQ,YAAY;gBAE5C,OAAO,EAAE,UAAU,EACnB,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,eAAe;CAI3B;AAED,qBAAa,iBAAkB,SAAQ,YAAY;IACjD,SAAS,CAAC,QAAQ,EAAE,wBAAwB,CAAC;gBAG3C,OAAO,EAAE,UAAU,EACnB,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,wBAAwB;IAM5B,GAAG,IAAI,IAAI;CAgBnB;AAED,qBAAa,cAAe,SAAQ,YAAY;gBAE5C,OAAO,EAAE,UAAU,EACnB,KAAK,EAAE,UAAU,EACjB,OAAO,GAAE,eAAoB;CAIhC"} \ No newline at end of file diff --git a/dist/index.js b/dist/index.js index 83a5490..352c8f6 100644 --- a/dist/index.js +++ b/dist/index.js @@ -19,8 +19,32 @@ export class RpcNetwork { _actionQueue = []; _addQueue = []; _removeQueue = []; + _def; + constructor(def = true) { + this._def = def; + } + _networkId = 0; + get networkId() { + return this._networkId; + } get ready() { - return loadLibs().then(() => callModule(RPC_MODULE, "ready")); + let promise = loadLibs(); + if (this._def) { + this._networkId = 0; + } + else { + promise = promise + .then(() => callModule(RPC_MODULE, "createNetwork")) + .then((ret) => (this._networkId = ret[0])); + } + return promise.then(() => callModule(RPC_MODULE, "ready", { network: this._networkId })); + } + static deleteItem(array, item) { + if (array.includes(item)) { + let queue = new Set(array); + queue.delete(item); + [].splice.apply(array, [0, array.length].concat([...queue])); + } } addRelay(pubkey) { this._addQueue.push(pubkey); @@ -35,13 +59,6 @@ export class RpcNetwork { clearRelays() { this._actionQueue.push(["clearRelays", {}]); } - static deleteItem(array, item) { - if (array.includes(item)) { - let queue = new Set(array); - queue.delete(item); - [].splice.apply(array, [0, array.length].concat([...queue])); - } - } wisdomQuery(method, module, data = {}, bypassCache = false, options = {}) { return new WisdomRpcQuery(this, { method, @@ -64,12 +81,21 @@ export class RpcNetwork { await loadLibs(); for (const action of this._actionQueue) { try { - await callModule(RPC_MODULE, action[0], action[1]); + await callModule(RPC_MODULE, action[0], { + ...action[1], + network: this._networkId, + }); } catch (e) { } } - await Promise.allSettled(this._removeQueue.map((item) => callModule(RPC_MODULE, "removeRelay", { pubkey: item }))); - await Promise.allSettled(this._addQueue.map((item) => callModule(RPC_MODULE, "addRelay", { pubkey: item }))); + await Promise.allSettled(this._removeQueue.map((item) => callModule(RPC_MODULE, "removeRelay", { + pubkey: item, + network: this._networkId, + }))); + await Promise.allSettled(this._addQueue.map((item) => callModule(RPC_MODULE, "addRelay", { + pubkey: item, + network: this._networkId, + }))); this._actionQueue = []; this._removeQueue = []; this._addQueue = []; @@ -87,13 +113,6 @@ export class RpcQueryBase { this._options = options; this._queryType = queryType; } - run() { - this._promise = this._network.processQueue().then(() => callModule(RPC_MODULE, this._queryType, { - query: this._query, - options: this._options, - })); - return this; - } get result() { return this._promise.then((result) => { if (result[1]) { @@ -102,6 +121,14 @@ export class RpcQueryBase { return result[0]; }); } + run() { + this._promise = this._network.processQueue().then(() => callModule(RPC_MODULE, this._queryType, { + query: this._query, + options: this._options, + network: this._network.networkId, + })); + return this; + } } export class SimpleRpcQuery extends RpcQueryBase { constructor(network, relay, query, options) { @@ -118,6 +145,7 @@ export class StreamingRpcQuery extends RpcQueryBase { this._promise = this._network.processQueue().then(() => connectModule(RPC_MODULE, this._queryType, { query: this._query, options: this._options, + network: this._network.networkId, }, this._options.streamHandler)); return this; }