Compare commits
3 Commits
0fb85e3e5b
...
a8dd1d2c20
Author | SHA1 | Date |
---|---|---|
Derrick Hammer | a8dd1d2c20 | |
Derrick Hammer | 79c2b167ae | |
Derrick Hammer | aefa2712db |
|
@ -1,8 +1,10 @@
|
|||
import { Proxy } from "@lumeweb/libhyperproxy";
|
||||
export default class HandshakeProxy extends Proxy {
|
||||
constructor({ swarm, listen }: {
|
||||
private _join;
|
||||
constructor({ swarm, listen, join, }: {
|
||||
swarm: any;
|
||||
listen?: boolean;
|
||||
join?: boolean;
|
||||
});
|
||||
private _node?;
|
||||
get node(): any;
|
||||
|
|
|
@ -13,7 +13,7 @@ const b4a_1 = __importDefault(require("b4a"));
|
|||
const PROTOCOL = "lumeweb.proxy.handshake";
|
||||
const libhyperproxy_1 = require("@lumeweb/libhyperproxy");
|
||||
class HandshakeProxy extends libhyperproxy_1.Proxy {
|
||||
constructor({ swarm, listen = false }) {
|
||||
constructor({ swarm, listen = false, join = false, }) {
|
||||
super({
|
||||
swarm,
|
||||
listen,
|
||||
|
@ -39,6 +39,7 @@ class HandshakeProxy extends libhyperproxy_1.Proxy {
|
|||
},
|
||||
});
|
||||
const self = this;
|
||||
this._join = join;
|
||||
}
|
||||
get node() {
|
||||
return this._node;
|
||||
|
@ -64,10 +65,12 @@ class HandshakeProxy extends libhyperproxy_1.Proxy {
|
|||
await this._node.open();
|
||||
this._node.pool.connected = true;
|
||||
this._node.startSync();
|
||||
const topic = b4a_1.default.from(PROTOCOL);
|
||||
const topicHash = b4a_1.default.allocUnsafe(32);
|
||||
sodium_universal_1.default.crypto_generichash(topicHash, topic);
|
||||
this.swarm.join(topicHash);
|
||||
if (this._join) {
|
||||
const topic = b4a_1.default.from(PROTOCOL);
|
||||
const topicHash = b4a_1.default.allocUnsafe(32);
|
||||
sodium_universal_1.default.crypto_generichash(topicHash, topic);
|
||||
this.swarm.join(topicHash);
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.default = HandshakeProxy;
|
||||
|
|
34
src/index.ts
34
src/index.ts
|
@ -9,6 +9,7 @@ import sodium from "sodium-universal";
|
|||
import b4a from "b4a";
|
||||
// @ts-ignore
|
||||
import c from "compact-encoding";
|
||||
|
||||
const PROTOCOL = "lumeweb.proxy.handshake";
|
||||
|
||||
import {
|
||||
|
@ -19,7 +20,17 @@ import {
|
|||
} from "@lumeweb/libhyperproxy";
|
||||
|
||||
export default class HandshakeProxy extends Proxy {
|
||||
constructor({ swarm, listen = false }: { swarm: any; listen?: boolean }) {
|
||||
private _join: boolean;
|
||||
|
||||
constructor({
|
||||
swarm,
|
||||
listen = false,
|
||||
join = false,
|
||||
}: {
|
||||
swarm: any;
|
||||
listen?: boolean;
|
||||
join?: boolean;
|
||||
}) {
|
||||
super({
|
||||
swarm,
|
||||
listen,
|
||||
|
@ -49,6 +60,7 @@ export default class HandshakeProxy extends Proxy {
|
|||
},
|
||||
});
|
||||
const self = this;
|
||||
this._join = join;
|
||||
}
|
||||
|
||||
private _node?: any;
|
||||
|
@ -73,19 +85,23 @@ export default class HandshakeProxy extends Proxy {
|
|||
createSocket,
|
||||
});
|
||||
|
||||
if(this?._node?.http?.http?.listen){
|
||||
this._node.http.http.listen = (port: number, host: string, cb: Function) =>
|
||||
cb();
|
||||
if (this?._node?.http?.http?.listen) {
|
||||
this._node.http.http.listen = (
|
||||
port: number,
|
||||
host: string,
|
||||
cb: Function
|
||||
) => cb();
|
||||
}
|
||||
|
||||
|
||||
await this._node.open();
|
||||
this._node.pool.connected = true;
|
||||
this._node.startSync();
|
||||
|
||||
const topic = b4a.from(PROTOCOL);
|
||||
const topicHash = b4a.allocUnsafe(32);
|
||||
sodium.crypto_generichash(topicHash, topic);
|
||||
this.swarm.join(topicHash);
|
||||
if (this._join) {
|
||||
const topic = b4a.from(PROTOCOL);
|
||||
const topicHash = b4a.allocUnsafe(32);
|
||||
sodium.crypto_generichash(topicHash, topic);
|
||||
this.swarm.join(topicHash);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue