From 3c2371252d1ec38f16410c66c7fe2d059a6a1c51 Mon Sep 17 00:00:00 2001 From: Richard Ramos Date: Tue, 3 Jan 2023 13:49:46 -0400 Subject: [PATCH] fix: format --- src/index.tsx | 494 ++++++++++++++++++++++++++++++++++---------------- 1 file changed, 333 insertions(+), 161 deletions(-) diff --git a/src/index.tsx b/src/index.tsx index ef9f292..93d64c2 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -1,5 +1,5 @@ -import { NativeModules, Platform, NativeEventEmitter} from 'react-native'; -import {decode, encode} from 'base-64' +import { NativeModules, Platform, NativeEventEmitter } from 'react-native'; +import { decode, encode } from 'base-64'; const LINKING_ERROR = `The package '@waku/react-native' doesn't seem to be linked. Make sure: \n\n` + @@ -7,7 +7,9 @@ const LINKING_ERROR = '- You rebuilt the app after installing the package\n' + '- You are not using Expo managed workflow\n'; -const ReactNative = NativeModules.ReactNative ? NativeModules.ReactNative : new Proxy( +const ReactNative = NativeModules.ReactNative + ? NativeModules.ReactNative + : new Proxy( {}, { get() { @@ -23,21 +25,23 @@ export function multiply(a: number, b: number): Promise { const OneMillion = BigInt(1_000_000); export class WakuMessage { - payload: Uint8Array = new Uint8Array(); - contentTopic: String | null = ""; - version: Number | null = 0; - timestamp?: Date = undefined; - - toJSON(){ - const b64encoded = encode(String.fromCharCode(...this.payload)); - return { - contentTopic: this.contentTopic, - version: this.version, - timestamp: this.timestamp ? (BigInt(this.timestamp.valueOf()) * OneMillion).toString(10) : 0, - payload: b64encoded - } - } - } + payload: Uint8Array = new Uint8Array(); + contentTopic: String | null = ''; + version: Number | null = 0; + timestamp?: Date = undefined; + + toJSON() { + const b64encoded = encode(String.fromCharCode(...this.payload)); + return { + contentTopic: this.contentTopic, + version: this.version, + timestamp: this.timestamp + ? (BigInt(this.timestamp.valueOf()) * OneMillion).toString(10) + : 0, + payload: b64encoded, + }; + } +} var eventEmitter = new NativeEventEmitter(NativeModules.ReactNative); @@ -45,28 +49,32 @@ var eventEmitter = new NativeEventEmitter(NativeModules.ReactNative); * Execute function each time a message is received * @param cb callback to be eecuted */ -export function onMessage(cb: (arg0:any) => void) { - eventEmitter.addListener("message", event => { +export function onMessage(cb: (arg0: any) => void) { + eventEmitter.addListener('message', (event) => { let signal = JSON.parse(event.signal); let msg = signal.event.wakuMessage; signal.event.wakuMessage = new WakuMessage(); signal.event.wakuMessage.timestamp = msg.timestamp; signal.event.wakuMessage.version = msg.version || 0; signal.event.wakuMessage.contentTopic = msg.contentTopic; - signal.event.wakuMessage.payload = new Uint8Array(decode(msg.payload ?? []).split("").map((c:any) => c.charCodeAt(0))); + signal.event.wakuMessage.payload = new Uint8Array( + decode(msg.payload ?? []) + .split('') + .map((c: any) => c.charCodeAt(0)) + ); cb(signal.event); - }) + }); } export class Config { - host: String | null = null - port: Number | null = null - advertiseAddr: String | null = null - nodeKey: String | null = null - keepAliveInterval: Number | null = null - relay: Boolean | null = null - filter: Boolean | null = null - minPeersToPublish: Number | null = null + host: String | null = null; + port: Number | null = null; + advertiseAddr: String | null = null; + nodeKey: String | null = null; + keepAliveInterval: Number | null = null; + relay: Boolean | null = null; + filter: Boolean | null = null; + minPeersToPublish: Number | null = null; } /** @@ -74,9 +82,11 @@ export class Config { * @param config options used to initialize a go-waku node */ export function newNode(config: Config | null): Promise { - return new Promise(async (resolve, reject) => { - let response = JSON.parse(await ReactNative.newNode(config ? JSON.stringify(config) : "")); - if(response.error){ + return new Promise(async (resolve, reject) => { + let response = JSON.parse( + await ReactNative.newNode(config ? JSON.stringify(config) : '') + ); + if (response.error) { reject(response.error); } else { resolve(); @@ -90,7 +100,7 @@ export function newNode(config: Config | null): Promise { export function start(): Promise { return new Promise(async (resolve, reject) => { let response = JSON.parse(await ReactNative.start()); - if(response.error){ + if (response.error) { reject(response.error); } else { resolve(); @@ -104,7 +114,7 @@ export function start(): Promise { export function stop(): Promise { return new Promise(async (resolve, reject) => { let response = JSON.parse(await ReactNative.stop()); - if(response.error){ + if (response.error) { reject(response.error); } else { resolve(); @@ -119,7 +129,7 @@ export function stop(): Promise { export function isStarted(): Promise { return new Promise(async (resolve, reject) => { let response = JSON.parse(await ReactNative.isStarted()); - if(response.error){ + if (response.error) { reject(response.error); } else { resolve(response.result); @@ -134,7 +144,7 @@ export function isStarted(): Promise { export function peerID(): Promise { return new Promise(async (resolve, reject) => { let response = JSON.parse(await ReactNative.peerID()); - if(response.error){ + if (response.error) { reject(response.error); } else { resolve(response.result); @@ -149,11 +159,17 @@ export function peerID(): Promise { * @param timeoutMs Timeout value in milliseconds to execute the call. If the function takes longer than this value, the execution will be canceled and an error returned * @returns string containing the message id */ -export function relayPublish(msg: WakuMessage, pubsubTopic: String = "", timeoutMs: Number = 0): Promise { +export function relayPublish( + msg: WakuMessage, + pubsubTopic: String = '', + timeoutMs: Number = 0 +): Promise { return new Promise(async (resolve, reject) => { - let messageJSON = JSON.stringify(msg) - let response = JSON.parse(await ReactNative.relayPublish(messageJSON, pubsubTopic, timeoutMs)); - if(response.error){ + let messageJSON = JSON.stringify(msg); + let response = JSON.parse( + await ReactNative.relayPublish(messageJSON, pubsubTopic, timeoutMs) + ); + if (response.error) { reject(response.error); } else { resolve(response.result); @@ -162,7 +178,7 @@ export function relayPublish(msg: WakuMessage, pubsubTopic: String = "", timeout } /** - * Optionally sign, encrypt using asymmetric encryption and publish a message using Waku Relay. + * Optionally sign, encrypt using asymmetric encryption and publish a message using Waku Relay. * @param msg WakuMessage to publish. The message version is overwritten to `1` * @param publicKey hex encoded public key to be used for encryption. * @param optionalSigningKey hex encoded private key to be used to sign the message. @@ -170,11 +186,25 @@ export function relayPublish(msg: WakuMessage, pubsubTopic: String = "", timeout * @param timeoutMs Timeout value in milliseconds to execute the call. If the function takes longer than this value, the execution will be canceled and an error returned * @returns string containing the message id */ -export function relayPublishEncodeAsymmetric(msg: WakuMessage, publicKey: String, optionalSigningKey: String = "", pubsubTopic: String = "", timeoutMs: Number = 0): Promise { +export function relayPublishEncodeAsymmetric( + msg: WakuMessage, + publicKey: String, + optionalSigningKey: String = '', + pubsubTopic: String = '', + timeoutMs: Number = 0 +): Promise { return new Promise(async (resolve, reject) => { - let messageJSON = JSON.stringify(msg) - let response = JSON.parse(await ReactNative.relayPublishEncodeAsymmetric(messageJSON, pubsubTopic, publicKey, optionalSigningKey, timeoutMs)); - if(response.error){ + let messageJSON = JSON.stringify(msg); + let response = JSON.parse( + await ReactNative.relayPublishEncodeAsymmetric( + messageJSON, + pubsubTopic, + publicKey, + optionalSigningKey, + timeoutMs + ) + ); + if (response.error) { reject(response.error); } else { resolve(response.result); @@ -191,11 +221,25 @@ export function relayPublishEncodeAsymmetric(msg: WakuMessage, publicKey: String * @param timeoutMs Timeout value in milliseconds to execute the call. If the function takes longer than this value, the execution will be canceled and an error returned * @returns string containing the message id */ -export function relayPublishEncodeSymmetric(msg: WakuMessage, symmetricKey: String, optionalSigningKey: String = "", pubsubTopic: String = "", timeoutMs: Number = 0): Promise { +export function relayPublishEncodeSymmetric( + msg: WakuMessage, + symmetricKey: String, + optionalSigningKey: String = '', + pubsubTopic: String = '', + timeoutMs: Number = 0 +): Promise { return new Promise(async (resolve, reject) => { - let messageJSON = JSON.stringify(msg) - let response = JSON.parse(await ReactNative.relayPublishEncodeAsymmetric(messageJSON, pubsubTopic, symmetricKey, optionalSigningKey, timeoutMs)); - if(response.error){ + let messageJSON = JSON.stringify(msg); + let response = JSON.parse( + await ReactNative.relayPublishEncodeAsymmetric( + messageJSON, + pubsubTopic, + symmetricKey, + optionalSigningKey, + timeoutMs + ) + ); + if (response.error) { reject(response.error); } else { resolve(response.result); @@ -205,12 +249,12 @@ export function relayPublishEncodeSymmetric(msg: WakuMessage, symmetricKey: Stri /** * Subscribe to a Waku Relay pubsub topic to receive messages. - * @param topic Pubsub topic to subscribe to. + * @param topic Pubsub topic to subscribe to. */ -export function relaySubscribe(topic: String = ""): Promise { +export function relaySubscribe(topic: String = ''): Promise { return new Promise(async (resolve, reject) => { let response = JSON.parse(await ReactNative.relaySubscribe(topic)); - if(response.error){ + if (response.error) { reject(response.error); } else { resolve(response.result); @@ -233,7 +277,7 @@ export function defaultPubsubTopic(): Promise { export function listenAddresses(): Promise> { return new Promise>(async (resolve, reject) => { let response = JSON.parse(await ReactNative.listenAddresses()); - if(response.error){ + if (response.error) { reject(response.error); } else { resolve(response.result); @@ -247,10 +291,15 @@ export function listenAddresses(): Promise> { * @param protocol protocol we expect the peer to support * @returns peer ID as a base58 `string` of the peer that was added */ -export function addPeer(multiAddress: String, protocol: String): Promise { +export function addPeer( + multiAddress: String, + protocol: String +): Promise { return new Promise(async (resolve, reject) => { - let response = JSON.parse(await ReactNative.addPeer(multiAddress, protocol)); - if(response.error){ + let response = JSON.parse( + await ReactNative.addPeer(multiAddress, protocol) + ); + if (response.error) { reject(response.error); } else { resolve(response.result); @@ -263,10 +312,15 @@ export function addPeer(multiAddress: String, protocol: String): Promise * @param multiAddress multiaddress to reach the peer being dialed * @param timeoutMs Timeout value in milliseconds to execute the call. If the function takes longer than this value, the execution will be canceled and an error returned */ -export function connect(multiAddress: String, timeoutMs: Number = 0): Promise { +export function connect( + multiAddress: String, + timeoutMs: Number = 0 +): Promise { return new Promise(async (resolve, reject) => { - let response = JSON.parse(await ReactNative.connect(multiAddress, timeoutMs)); - if(response.error){ + let response = JSON.parse( + await ReactNative.connect(multiAddress, timeoutMs) + ); + if (response.error) { reject(response.error); } else { resolve(); @@ -279,10 +333,15 @@ export function connect(multiAddress: String, timeoutMs: Number = 0): Promise { +export function connectPeerID( + peerID: String, + timeoutMs: Number = 0 +): Promise { return new Promise(async (resolve, reject) => { - let response = JSON.parse(await ReactNative.connectPeerID(peerID, timeoutMs)); - if(response.error){ + let response = JSON.parse( + await ReactNative.connectPeerID(peerID, timeoutMs) + ); + if (response.error) { reject(response.error); } else { resolve(); @@ -297,7 +356,7 @@ export function connectPeerID(peerID: String, timeoutMs: Number = 0): Promise { return new Promise(async (resolve, reject) => { let response = JSON.parse(await ReactNative.disconnect(peerID)); - if(response.error){ + if (response.error) { reject(response.error); } else { resolve(); @@ -312,7 +371,7 @@ export function disconnect(peerID: String): Promise { export function peerCnt(): Promise { return new Promise(async (resolve, reject) => { let response = JSON.parse(await ReactNative.peerCnt()); - if(response.error){ + if (response.error) { reject(response.error); } else { resolve(response.result); @@ -323,10 +382,10 @@ export function peerCnt(): Promise { export class DecodedPayload { payload: Uint8Array = new Uint8Array(); padding: Uint8Array = new Uint8Array(); - pubkey: String | null = ""; - signature: String | null = ""; + pubkey: String | null = ''; + signature: String | null = ''; - toJSON(){ + toJSON() { const b64payload = encode(String.fromCharCode(...this.payload)); const b64padding = encode(String.fromCharCode(...this.padding)); return { @@ -334,7 +393,7 @@ export class DecodedPayload { padding: b64padding, pubkey: this.pubkey, signature: this.signature, - } + }; } } @@ -344,16 +403,29 @@ export class DecodedPayload { * @param symmetricKey 32 byte symmetric key hex encoded * @returns DecodedPayload */ -export function decodeSymmetric(msg: WakuMessage, symmetricKey: String): Promise { +export function decodeSymmetric( + msg: WakuMessage, + symmetricKey: String +): Promise { return new Promise(async (resolve, reject) => { let messageJSON = JSON.stringify(msg); - let response = JSON.parse(await ReactNative.decodeSymmetric(messageJSON, symmetricKey)); - if(response.error){ + let response = JSON.parse( + await ReactNative.decodeSymmetric(messageJSON, symmetricKey) + ); + if (response.error) { reject(response.error); } else { let decodedPayload = new DecodedPayload(); - decodedPayload.payload = new Uint8Array(atob(response.result.payload).split("").map(c => c.charCodeAt(0))); - decodedPayload.padding = new Uint8Array(atob(response.result.padding).split("").map(c => c.charCodeAt(0))); + decodedPayload.payload = new Uint8Array( + atob(response.result.payload) + .split('') + .map((c) => c.charCodeAt(0)) + ); + decodedPayload.padding = new Uint8Array( + atob(response.result.padding) + .split('') + .map((c) => c.charCodeAt(0)) + ); decodedPayload.pubkey = response.result.pubkey; decodedPayload.signature = response.result.signature; resolve(decodedPayload); @@ -362,21 +434,34 @@ export function decodeSymmetric(msg: WakuMessage, symmetricKey: String): Promise } /** - * Decrypt a message using a secp256k1 private key + * Decrypt a message using a secp256k1 private key * @param msg WakuMessage to decode. The message version is expected to be 1 * @param privateKey secp256k1 private key hex encoded * @returns DecodedPayload */ -export function decodeAsymmetric(msg: WakuMessage, privateKey: String): Promise { +export function decodeAsymmetric( + msg: WakuMessage, + privateKey: String +): Promise { return new Promise(async (resolve, reject) => { let messageJSON = JSON.stringify(msg); - let response = JSON.parse(await ReactNative.decodeSymmetric(messageJSON, privateKey)); - if(response.error){ + let response = JSON.parse( + await ReactNative.decodeSymmetric(messageJSON, privateKey) + ); + if (response.error) { reject(response.error); } else { let decodedPayload = new DecodedPayload(); - decodedPayload.payload = new Uint8Array(atob(response.result.payload).split("").map(c => c.charCodeAt(0))); - decodedPayload.padding = new Uint8Array(atob(response.result.padding).split("").map(c => c.charCodeAt(0))); + decodedPayload.payload = new Uint8Array( + atob(response.result.payload) + .split('') + .map((c) => c.charCodeAt(0)) + ); + decodedPayload.padding = new Uint8Array( + atob(response.result.padding) + .split('') + .map((c) => c.charCodeAt(0)) + ); decodedPayload.pubkey = response.result.pubkey; decodedPayload.signature = response.result.signature; resolve(decodedPayload); @@ -389,10 +474,10 @@ export function decodeAsymmetric(msg: WakuMessage, privateKey: String): Promise< * @param pubsubTopic Pubsub topic to verify. If not specified, it will verify the default pubsub topic * @returns boolean indicates whether there are enough peers */ -export function relayEnoughPeers(pubsubTopic: String = ""): Promise { +export function relayEnoughPeers(pubsubTopic: String = ''): Promise { return new Promise(async (resolve, reject) => { let response = JSON.parse(await ReactNative.relayEnoughPeers(pubsubTopic)); - if(response.error){ + if (response.error) { reject(response.error); } else { resolve(response.result); @@ -402,12 +487,12 @@ export function relayEnoughPeers(pubsubTopic: String = ""): Promise { /** * Closes the pubsub subscription to a pubsub topic. No more messages will be received from this pubsub topic. - * @param pubsubTopic + * @param pubsubTopic */ -export function relayUnsubscribe(pubsubTopic: String = ""): Promise { +export function relayUnsubscribe(pubsubTopic: String = ''): Promise { return new Promise(async (resolve, reject) => { let response = JSON.parse(await ReactNative.relayUnsubscribe(pubsubTopic)); - if(response.error){ + if (response.error) { reject(response.error); } else { resolve(response.result); @@ -418,16 +503,28 @@ export function relayUnsubscribe(pubsubTopic: String = ""): Promise { /** * Publish a message using Waku Lightpush. * @param msg WakuMessage to publish. The message version is overwritten to `0` - * @param pubsubTopic pubsub topic on which to publish the message. If not specified, it uses the default pubsub topic. + * @param pubsubTopic pubsub topic on which to publish the message. If not specified, it uses the default pubsub topic. * @param peerID Peer ID supporting the lightpush protocol. The peer must be already known. It must have been added before with `addPeer` or previously dialed with `connect` * @param timeoutMs Timeout value in milliseconds to execute the call. If the function takes longer than this value, the execution will be canceled and an error returned * @returns the message ID */ -export function lightpushPublish(msg: WakuMessage, pubsubTopic: String = "", peerID: String = "", timeoutMs: Number = 0): Promise { +export function lightpushPublish( + msg: WakuMessage, + pubsubTopic: String = '', + peerID: String = '', + timeoutMs: Number = 0 +): Promise { return new Promise(async (resolve, reject) => { - let messageJSON = JSON.stringify(msg) - let response = JSON.parse(await ReactNative.lightpushPublish(messageJSON, pubsubTopic, peerID, timeoutMs)); - if(response.error){ + let messageJSON = JSON.stringify(msg); + let response = JSON.parse( + await ReactNative.lightpushPublish( + messageJSON, + pubsubTopic, + peerID, + timeoutMs + ) + ); + if (response.error) { reject(response.error); } else { resolve(response.result); @@ -440,16 +537,32 @@ export function lightpushPublish(msg: WakuMessage, pubsubTopic: String = "", pee * @param msg WakuMessage to publish. The message version is overwritten to `1` * @param publicKey hex encoded public key to be used for encryption * @param optionalSigningKey hex encoded private key to be used to sign the message - * @param pubsubTopic pubsub topic on which to publish the message. If not specified, it uses the default pubsub topic. + * @param pubsubTopic pubsub topic on which to publish the message. If not specified, it uses the default pubsub topic. * @param peerID Peer ID supporting the lightpush protocol. The peer must be already known. It must have been added before with `addPeer` or previously dialed with `connect` * @param timeoutMs Timeout value in milliseconds to execute the call. If the function takes longer than this value, the execution will be canceled and an error returned * @returns the message ID */ -export function lightpushPublishEncAsymmetric(msg: WakuMessage, publicKey: String, optionalSigningKey: String = "", pubsubTopic: String = "", peerID: String = "", timeoutMs: Number = 0): Promise { +export function lightpushPublishEncAsymmetric( + msg: WakuMessage, + publicKey: String, + optionalSigningKey: String = '', + pubsubTopic: String = '', + peerID: String = '', + timeoutMs: Number = 0 +): Promise { return new Promise(async (resolve, reject) => { - let messageJSON = JSON.stringify(msg) - let response = JSON.parse(await ReactNative.lightpushPublishEncodeAsymmetric(messageJSON, pubsubTopic, peerID, publicKey, optionalSigningKey, timeoutMs)); - if(response.error){ + let messageJSON = JSON.stringify(msg); + let response = JSON.parse( + await ReactNative.lightpushPublishEncodeAsymmetric( + messageJSON, + pubsubTopic, + peerID, + publicKey, + optionalSigningKey, + timeoutMs + ) + ); + if (response.error) { reject(response.error); } else { resolve(response.result); @@ -462,16 +575,32 @@ export function lightpushPublishEncAsymmetric(msg: WakuMessage, publicKey: Strin * @param msg WakuMessage to publish. The message version is overwritten to `1` * @param symmetricKey hex encoded secret key to be used for encryption. * @param optionalSigningKey hex encoded private key to be used to sign the message. - * @param pubsubTopic pubsub topic on which to publish the message. If not specified, it uses the default pubsub topic. + * @param pubsubTopic pubsub topic on which to publish the message. If not specified, it uses the default pubsub topic. * @param peerID Peer ID supporting the lightpush protocol. The peer must be already known. It must have been added before with `addPeer` or previously dialed with `connect` * @param timeoutMs Timeout value in milliseconds to execute the call. If the function takes longer than this value, the execution will be canceled and an error returned * @returns the message ID */ -export function lightpushPublishEncSymmetric(msg: WakuMessage, symmetricKey: String, optionalSigningKey: String = "", pubsubTopic: String = "", peerID: String = "", timeoutMs: Number = 0): Promise { +export function lightpushPublishEncSymmetric( + msg: WakuMessage, + symmetricKey: String, + optionalSigningKey: String = '', + pubsubTopic: String = '', + peerID: String = '', + timeoutMs: Number = 0 +): Promise { return new Promise(async (resolve, reject) => { - let messageJSON = JSON.stringify(msg) - let response = JSON.parse(await ReactNative.lightpushPublishEncodeAsymmetric(messageJSON, pubsubTopic, peerID, symmetricKey, optionalSigningKey, timeoutMs)); - if(response.error){ + let messageJSON = JSON.stringify(msg); + let response = JSON.parse( + await ReactNative.lightpushPublishEncodeAsymmetric( + messageJSON, + pubsubTopic, + peerID, + symmetricKey, + optionalSigningKey, + timeoutMs + ) + ); + if (response.error) { reject(response.error); } else { resolve(response.result); @@ -480,12 +609,17 @@ export function lightpushPublishEncSymmetric(msg: WakuMessage, symmetricKey: Str } export class Peer { - addrs: Array = Array() - connected: Boolean = false - peerID: String = "" - protocols: Array = Array() + addrs: Array = Array(); + connected: Boolean = false; + peerID: String = ''; + protocols: Array = Array(); - constructor(addrs: Array, connected: Boolean, peerID: String, protocols: Array){ + constructor( + addrs: Array, + connected: Boolean, + peerID: String, + protocols: Array + ) { this.addrs = addrs; this.connected = connected; this.peerID = peerID; @@ -500,75 +634,99 @@ export class Peer { export function peers(): Promise> { return new Promise>(async (resolve, reject) => { let response = JSON.parse(await ReactNative.peers()); - if(response.error){ + if (response.error) { reject(response.error); } else { - resolve(response.result.map((x:any) => new Peer(x.addrs, x.connected, x.peerID, x.protocols))); + resolve( + response.result.map( + (x: any) => new Peer(x.addrs, x.connected, x.peerID, x.protocols) + ) + ); } - }) + }); } export class Index { digest: Uint8Array = new Uint8Array(); - receiverTime: Number = 0 - senderTime: Number = 0 - pubsubTopic: String = "" + receiverTime: Number = 0; + senderTime: Number = 0; + pubsubTopic: String = ''; } export class PagingOptions { - pageSize: Number = 0 - cursor: Index | null = null - forward: Boolean = false + pageSize: Number = 0; + cursor: Index | null = null; + forward: Boolean = false; - constructor(pageSize: Number = 0, forward: Boolean = false, cursor: Index | null = null){ - this.pageSize = pageSize - this.forward = forward - this.cursor = cursor + constructor( + pageSize: Number = 0, + forward: Boolean = false, + cursor: Index | null = null + ) { + this.pageSize = pageSize; + this.forward = forward; + this.cursor = cursor; } } export class ContentFilter { - contentTopic: String = "" + contentTopic: String = ''; - constructor(contentTopic: String = "") { - this.contentTopic = contentTopic + constructor(contentTopic: String = '') { + this.contentTopic = contentTopic; } } export class StoreQuery { - pubsubTopic: String | null = null - contentFilters: Array = Array() - startTime?: Date = undefined - endTime?: Date = undefined - pagingOptions: PagingOptions | null = null + pubsubTopic: String | null = null; + contentFilters: Array = Array(); + startTime?: Date = undefined; + endTime?: Date = undefined; + pagingOptions: PagingOptions | null = null; - constructor(pubsubTopic: String | null = null, contentFilters: Array = Array(), startTime: Date | undefined = undefined, endTime: Date | undefined = undefined, pagingOptions: PagingOptions | null = null) { - this.pubsubTopic = pubsubTopic - this.contentFilters = contentFilters - this.startTime = startTime - this.endTime = endTime - this.pagingOptions = pagingOptions + constructor( + pubsubTopic: String | null = null, + contentFilters: Array = Array(), + startTime: Date | undefined = undefined, + endTime: Date | undefined = undefined, + pagingOptions: PagingOptions | null = null + ) { + this.pubsubTopic = pubsubTopic; + this.contentFilters = contentFilters; + this.startTime = startTime; + this.endTime = endTime; + this.pagingOptions = pagingOptions; } } /** - * - * @param query - * @param peerID + * + * @param query + * @param peerID * @param timeoutMs Timeout value in milliseconds to execute the call. If the function takes longer than this value, the execution will be canceled and an error returned - * @returns + * @returns */ -export function storeQuery(query: StoreQuery, peerID: String = "", timeoutMs: Number = 0): Promise { +export function storeQuery( + query: StoreQuery, + peerID: String = '', + timeoutMs: Number = 0 +): Promise { return new Promise(async (resolve, reject) => { let queryJSON = JSON.stringify({ pubsubTopic: query.pubsubTopic, contentFilters: query.contentFilters, - startTime: query.startTime ? (BigInt(query.startTime.valueOf()) * OneMillion).toString(10) : 0, - endTime: query.endTime ? (BigInt(query.endTime.valueOf()) * OneMillion).toString(10) : 0, - pagingOptions: query.pagingOptions - }) - let response = JSON.parse(await ReactNative.storeQuery(queryJSON, peerID, timeoutMs)); + startTime: query.startTime + ? (BigInt(query.startTime.valueOf()) * OneMillion).toString(10) + : 0, + endTime: query.endTime + ? (BigInt(query.endTime.valueOf()) * OneMillion).toString(10) + : 0, + pagingOptions: query.pagingOptions, + }); + let response = JSON.parse( + await ReactNative.storeQuery(queryJSON, peerID, timeoutMs) + ); - if(response.error){ + if (response.error) { reject(response.error); } else { resolve(response.result); @@ -577,27 +735,36 @@ export function storeQuery(query: StoreQuery, peerID: String = "", timeoutMs: Nu } export class FilterSubscription { - pubsubTopic: String | null = null - contentFilters: Array = Array() + pubsubTopic: String | null = null; + contentFilters: Array = Array(); - constructor(pubsubTopic: String | null = null, contentFilters: Array = Array()) { - this.pubsubTopic = pubsubTopic - this.contentFilters = contentFilters + constructor( + pubsubTopic: String | null = null, + contentFilters: Array = Array() + ) { + this.pubsubTopic = pubsubTopic; + this.contentFilters = contentFilters; } } /** - * - * @param filter - * @param peerID + * + * @param filter + * @param peerID * @param timeoutMs Timeout value in milliseconds to execute the call. If the function takes longer than this value, the execution will be canceled and an error returned */ -export function filterSubscribe(filter: FilterSubscription, peerID: String = "", timeoutMs: Number = 0): Promise { +export function filterSubscribe( + filter: FilterSubscription, + peerID: String = '', + timeoutMs: Number = 0 +): Promise { return new Promise(async (resolve, reject) => { - let filterJSON = JSON.stringify(filter) - let response = JSON.parse(await ReactNative.filterSubscribe(filterJSON, peerID, timeoutMs)); + let filterJSON = JSON.stringify(filter); + let response = JSON.parse( + await ReactNative.filterSubscribe(filterJSON, peerID, timeoutMs) + ); - if(response.error){ + if (response.error) { reject(response.error); } else { resolve(); @@ -606,16 +773,21 @@ export function filterSubscribe(filter: FilterSubscription, peerID: String = "", } /** - * - * @param filter + * + * @param filter * @param timeoutMs Timeout value in milliseconds to execute the call. If the function takes longer than this value, the execution will be canceled and an error returned */ -export function filterUnsubscribe(filter: FilterSubscription, timeoutMs: Number = 0): Promise { +export function filterUnsubscribe( + filter: FilterSubscription, + timeoutMs: Number = 0 +): Promise { return new Promise(async (resolve, reject) => { - let filterJSON = JSON.stringify(filter) - let response = JSON.parse(await ReactNative.filterUnsubscribe(filterJSON, timeoutMs)); + let filterJSON = JSON.stringify(filter); + let response = JSON.parse( + await ReactNative.filterUnsubscribe(filterJSON, timeoutMs) + ); - if(response.error){ + if (response.error) { reject(response.error); } else { resolve();