mirror of
https://github.com/cerc-io/watcher-ts
synced 2026-09-08 08:54:05 +00:00
Implement peer package to send messages between peers (#279)
* Initial implementation of class and discoving other peers * Implement peer connection and sending messages between peers * Add react app and use peer package for broadcasting * Maintain stream for each remote peer * Refactor code in peer package * Add serve package for react-app * Add readme for running react app * Add peer package readme * Add logs for events with details * Add a chat CLI using peer package (#280) * Add a flag to instantiate Peer for nodejs * Add a basic chat CLI using peer * Add a signal server arg to chat CLI * Add instructions for chat CLI * Fix typescript and ESM issues after adding peer package (#282) * Fix build issues in util package * Update eslint TS plugins * Scope react app package name * Convert cli package back to CJS and dynamically import ESM * Upgrade ts-node version * Fix tests * Setup a relay node and pubsub based discovery (#284) * Add a script to setup a relay node * Use pubsub based peer discovery * Add peer multiaddr to connection log * Catch relay node dial errors * Increase discovery interval and dial all mutiaddr * Add UI to display self peer ID and multiaddrs * Add UI for displaying live remote connections * Send js objects in peer broadcast messages * Add react-peer package for using peer in react app * Reduce disconnect frequency between peers (#287) * Restrict number of max concurrent dials per peer * Increase hop relay timeout to 1 day * Self review changes * Review changes * Increase pubsub discovery interval and add steps to create a peer id (#290) * Increase pubsub discovery interval * Disable autodial to avoid peer dials without protocol on a reconnect * Add steps to create a peer id and use for relay node * Add back dependency to run signalling server * Avoid bootstrapping and dial to relay node directly Co-authored-by: prathamesh0 <42446521+prathamesh0@users.noreply.github.com> Co-authored-by: prathamesh0 <prathamesh.musale0@gmail.com>
This commit is contained in:
@@ -12,8 +12,8 @@
|
||||
"@types/chai": "^4.2.18",
|
||||
"@types/chai-spies": "^1.0.3",
|
||||
"@types/pluralize": "^0.0.29",
|
||||
"@typescript-eslint/eslint-plugin": "^4.25.0",
|
||||
"@typescript-eslint/parser": "^4.25.0",
|
||||
"@typescript-eslint/eslint-plugin": "^5.47.1",
|
||||
"@typescript-eslint/parser": "^5.47.1",
|
||||
"chai": "^4.3.4",
|
||||
"chai-spies": "^1.0.0",
|
||||
"eslint": "^7.27.0",
|
||||
@@ -27,7 +27,7 @@
|
||||
"hardhat": "^2.3.0",
|
||||
"mocha": "^8.4.0",
|
||||
"nodemon": "^2.0.7",
|
||||
"ts-node": "^10.0.0",
|
||||
"ts-node": "^10.2.1",
|
||||
"typescript": "^4.3.2"
|
||||
},
|
||||
"bin": {
|
||||
|
||||
@@ -102,7 +102,7 @@ describe('wasm loader tests', () => {
|
||||
}
|
||||
|
||||
expect.fail('wasm code should throw error');
|
||||
} catch (error) {
|
||||
} catch (error: any) {
|
||||
expect(error).to.be.instanceof(WebAssembly.RuntimeError);
|
||||
expect(error.message).to.equal('unreachable');
|
||||
}
|
||||
|
||||
@@ -576,7 +576,7 @@ describe('numbers wasm tests', () => {
|
||||
it('should throw an error for DECIMAL128_PMIN times DECIMAL128_NMAX', async () => {
|
||||
try {
|
||||
await testBigDecimalTimes(await __newString(DECIMAL128_PMIN), await __newString(DECIMAL128_NMAX));
|
||||
} catch (error) {
|
||||
} catch (error: any) {
|
||||
expect(error.message).to.be.equal('Big decimal exponent \'-12286\' is outside the \'-6143\' to \'6144\' range');
|
||||
}
|
||||
});
|
||||
@@ -621,7 +621,7 @@ describe('numbers wasm tests', () => {
|
||||
it('should throw an error for DECIMAL128_PMIN divideBy DECIMAL128_MAX', async () => {
|
||||
try {
|
||||
await testBigDecimalDividedBy(await __newString(DECIMAL128_PMIN), await __newString(DECIMAL128_MAX));
|
||||
} catch (error) {
|
||||
} catch (error: any) {
|
||||
expect(error.message).to.be.equal('Big decimal exponent \'-12288\' is outside the \'-6143\' to \'6144\' range');
|
||||
}
|
||||
});
|
||||
|
||||
@@ -31,6 +31,7 @@ import {
|
||||
} from '@cerc-io/util';
|
||||
|
||||
import { Context, GraphData, instantiate } from './loader';
|
||||
import { ObjectLiteral } from 'typeorm';
|
||||
|
||||
const log = debug('vulcanize:graph-watcher');
|
||||
|
||||
@@ -281,7 +282,7 @@ export class GraphWatcher {
|
||||
this._indexer = indexer;
|
||||
}
|
||||
|
||||
async getEntity<Entity> (
|
||||
async getEntity<Entity extends ObjectLiteral> (
|
||||
entity: new () => Entity,
|
||||
id: string,
|
||||
relationsMap: Map<any, { [key: string]: any }>,
|
||||
@@ -305,7 +306,7 @@ export class GraphWatcher {
|
||||
}
|
||||
}
|
||||
|
||||
async getEntities<Entity> (
|
||||
async getEntities<Entity extends ObjectLiteral> (
|
||||
entity: new () => Entity,
|
||||
relationsMap: Map<any, { [key: string]: any }>,
|
||||
block: BlockHeight,
|
||||
|
||||
Reference in New Issue
Block a user