@automerge/automerge-repo-network-broadcastchannel 1.0.6 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/package.json +5 -8
- package/src/index.ts +6 -7
- package/test/index.test.ts +5 -4
- package/typedoc.json +3 -3
- package/.mocharc.json +0 -5
package/dist/index.d.ts
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* @module
|
|
14
14
|
*
|
|
15
15
|
*/
|
|
16
|
-
import { NetworkAdapter, PeerId,
|
|
16
|
+
import { NetworkAdapter, PeerId, RepoMessage } from "@automerge/automerge-repo";
|
|
17
17
|
export type BroadcastChannelNetworkAdapterOptions = {
|
|
18
18
|
channelName: string;
|
|
19
19
|
};
|
|
@@ -21,7 +21,7 @@ export declare class BroadcastChannelNetworkAdapter extends NetworkAdapter {
|
|
|
21
21
|
#private;
|
|
22
22
|
constructor(options?: BroadcastChannelNetworkAdapterOptions);
|
|
23
23
|
connect(peerId: PeerId): void;
|
|
24
|
-
send(message:
|
|
24
|
+
send(message: RepoMessage): void;
|
|
25
25
|
disconnect(): void;
|
|
26
26
|
}
|
|
27
27
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAEL,cAAc,EACd,MAAM,EACN,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAEL,cAAc,EACd,MAAM,EACN,WAAW,EACZ,MAAM,2BAA2B,CAAA;AAElC,MAAM,MAAM,qCAAqC,GAAG;IAClD,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,qBAAa,8BAA+B,SAAQ,cAAc;;gBAKpD,OAAO,CAAC,EAAE,qCAAqC;IAK3D,OAAO,CAAC,MAAM,EAAE,MAAM;IAoDtB,IAAI,CAAC,OAAO,EAAE,WAAW;IAczB,UAAU;CAIX"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@automerge/automerge-repo-network-broadcastchannel",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.7",
|
|
4
4
|
"description": "BroadcastChannel network adapter for Automerge Repo",
|
|
5
5
|
"repository": "https://github.com/automerge/automerge-repo/tree/master/packages/automerge-repo-network-broadcastchannel",
|
|
6
6
|
"author": "Peter van Hardenberg <pvh@pvh.ca>",
|
|
@@ -10,13 +10,13 @@
|
|
|
10
10
|
"scripts": {
|
|
11
11
|
"build": "tsc",
|
|
12
12
|
"watch": "npm-watch",
|
|
13
|
-
"test": "
|
|
13
|
+
"test": "vitest"
|
|
14
14
|
},
|
|
15
15
|
"peerDependencies": {
|
|
16
|
-
"@automerge/automerge": "^2.1.
|
|
16
|
+
"@automerge/automerge": "^2.1.5"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@automerge/automerge-repo": "^1.0.
|
|
19
|
+
"@automerge/automerge-repo": "^1.0.7"
|
|
20
20
|
},
|
|
21
21
|
"watch": {
|
|
22
22
|
"build": {
|
|
@@ -29,8 +29,5 @@
|
|
|
29
29
|
"publishConfig": {
|
|
30
30
|
"access": "public"
|
|
31
31
|
},
|
|
32
|
-
"
|
|
33
|
-
"@automerge/automerge": "^2.1.0"
|
|
34
|
-
},
|
|
35
|
-
"gitHead": "088696831fed48c7a8a88109acd0465222dc8522"
|
|
32
|
+
"gitHead": "71060981f168e511a99ab85b155a54a13fd04bcc"
|
|
36
33
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
*
|
|
3
3
|
* A `NetworkAdapter` which uses [BroadcastChannel](https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel)
|
|
4
4
|
* to communicate with other peers in the same browser tab. This is a bit of a
|
|
5
|
-
* hack because `NetworkAdapter`s are supposed to be used as point to
|
|
5
|
+
* hack because `NetworkAdapter`s are supposed to be used as point to
|
|
6
6
|
* point communication channels. To get around this the {@link BroadcastChannelNetworkAdapter}
|
|
7
7
|
* broadcasts messages to all peers and then filters out messages not intended
|
|
8
8
|
* for the current peer. This is quite inefficient as messages get duplicated
|
|
@@ -15,13 +15,12 @@
|
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
import {
|
|
18
|
-
|
|
18
|
+
Message,
|
|
19
19
|
NetworkAdapter,
|
|
20
20
|
PeerId,
|
|
21
|
-
|
|
21
|
+
RepoMessage,
|
|
22
22
|
} from "@automerge/automerge-repo"
|
|
23
23
|
|
|
24
|
-
|
|
25
24
|
export type BroadcastChannelNetworkAdapterOptions = {
|
|
26
25
|
channelName: string
|
|
27
26
|
}
|
|
@@ -42,7 +41,7 @@ export class BroadcastChannelNetworkAdapter extends NetworkAdapter {
|
|
|
42
41
|
|
|
43
42
|
this.#broadcastChannel.addEventListener(
|
|
44
43
|
"message",
|
|
45
|
-
(e: { data:
|
|
44
|
+
(e: { data: Message }) => {
|
|
46
45
|
const message = e.data
|
|
47
46
|
if ("targetId" in message && message.targetId !== this.peerId) {
|
|
48
47
|
return
|
|
@@ -88,7 +87,7 @@ export class BroadcastChannelNetworkAdapter extends NetworkAdapter {
|
|
|
88
87
|
this.emit("peer-candidate", { peerId })
|
|
89
88
|
}
|
|
90
89
|
|
|
91
|
-
send(message:
|
|
90
|
+
send(message: RepoMessage) {
|
|
92
91
|
if ("data" in message) {
|
|
93
92
|
this.#broadcastChannel.postMessage({
|
|
94
93
|
...message,
|
package/test/index.test.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PeerId } from "@automerge/automerge-repo"
|
|
2
|
+
import { describe, it } from "vitest"
|
|
2
3
|
import {
|
|
3
|
-
type SetupFn,
|
|
4
4
|
runAdapterTests,
|
|
5
|
+
type SetupFn,
|
|
5
6
|
} from "../../automerge-repo/src/helpers/tests/network-adapter-tests.js"
|
|
6
|
-
import {
|
|
7
|
+
import { BroadcastChannelNetworkAdapter } from "../src/index.js"
|
|
7
8
|
|
|
8
9
|
describe("BroadcastChannel", () => {
|
|
9
10
|
const setup: SetupFn = async () => {
|
|
@@ -28,7 +29,7 @@ describe("BroadcastChannel", () => {
|
|
|
28
29
|
})
|
|
29
30
|
|
|
30
31
|
const cShouldNotConnect = new Promise<void>((resolve, reject) => {
|
|
31
|
-
c.once("peer-candidate", () => reject("c should not connect"))
|
|
32
|
+
c.once("peer-candidate", () => reject(new Error("c should not connect")))
|
|
32
33
|
|
|
33
34
|
setTimeout(() => {
|
|
34
35
|
resolve()
|
package/typedoc.json
CHANGED