Skip to content

Commit f8c94f7

Browse files
committed
[automerge] Support v1.1
1 parent 73678c8 commit f8c94f7

File tree

2 files changed

+27
-11
lines changed

2 files changed

+27
-11
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@
215215
},
216216
"devDependencies": {
217217
"@automerge/automerge": "^2.1.10",
218-
"@automerge/automerge-repo": "^1.0.19",
218+
"@automerge/automerge-repo": "^1.1.0",
219219
"@babel/cli": "^7.23.9",
220220
"@babel/core": "^7.23.9",
221221
"@babel/preset-env": "^7.23.9",

test/unit/common/automerge-adaptor.ts

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,23 @@
11
/* eslint-disable @typescript-eslint/no-non-null-assertion */
2-
import {Message, NetworkAdapter, PeerId} from '@automerge/automerge-repo';
2+
import {
3+
Message,
4+
NetworkAdapter,
5+
PeerId,
6+
PeerMetadata,
7+
} from '@automerge/automerge-repo';
38

4-
type ArriveMessage = {type: 'arrive'; senderId: PeerId; targetId: never};
5-
type WelcomeMessage = {type: 'welcome'; senderId: PeerId; targetId: PeerId};
9+
type ArriveMessage = {
10+
type: 'arrive';
11+
senderId: PeerId;
12+
peerMetadata: PeerMetadata;
13+
targetId: never;
14+
};
15+
type WelcomeMessage = {
16+
type: 'welcome';
17+
senderId: PeerId;
18+
peerMetadata: PeerMetadata;
19+
targetId: PeerId;
20+
};
621
type BroadcastChannelMessage = ArriveMessage | WelcomeMessage | Message;
722

823
const adaptors: Set<AutomergeTestNetworkAdapter> = new Set();
@@ -13,16 +28,17 @@ const broadcast = (message: BroadcastChannelMessage): void =>
1328
export const resetNetwork = () => adaptors.clear();
1429

1530
export class AutomergeTestNetworkAdapter extends NetworkAdapter {
16-
connect(peerId: PeerId) {
31+
connect(peerId: PeerId, peerMetadata?: PeerMetadata) {
1732
this.peerId = peerId;
33+
this.peerMetadata = peerMetadata;
1834
adaptors.add(this);
1935
broadcast({type: 'arrive', senderId: peerId} as ArriveMessage);
2036
this.emit('ready', {network: this});
2137
}
2238

2339
receiveMessage(message: BroadcastChannelMessage) {
2440
const peerId: PeerId = this.peerId!;
25-
const {targetId, senderId, type} = message;
41+
const {targetId, senderId, type, peerMetadata} = message as any;
2642
if (targetId && targetId !== peerId) {
2743
return;
2844
}
@@ -33,26 +49,26 @@ export class AutomergeTestNetworkAdapter extends NetworkAdapter {
3349
targetId: senderId,
3450
type: 'welcome',
3551
});
36-
this.emit('peer-candidate', {peerId: senderId});
52+
this.emit('peer-candidate', {peerId: senderId, peerMetadata});
3753
break;
3854
case 'welcome':
39-
this.emit('peer-candidate', {peerId: senderId});
55+
this.emit('peer-candidate', {peerId: senderId, peerMetadata});
4056
break;
4157
default:
4258
if (!('data' in message)) {
4359
this.emit('message', message);
4460
} else {
4561
this.emit('message', {
4662
...message,
47-
data: new Uint8Array(message.data),
63+
data: new Uint8Array(message.data as ArrayBufferLike),
4864
});
4965
}
5066
break;
5167
}
5268
}
5369

54-
send(message: BroadcastChannelMessage) {
55-
if ('data' in message) {
70+
send(message: Message) {
71+
if (message.data) {
5672
broadcast({
5773
...message,
5874
data: message.data.buffer.slice(

0 commit comments

Comments
 (0)