Skip to content

Commit 17fc361

Browse files
committed
Improve typing of homeserver.matrix.message
1 parent 19bcb9b commit 17fc361

File tree

2 files changed

+43
-21
lines changed

2 files changed

+43
-21
lines changed

packages/federation-sdk/src/index.ts

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { Membership } from '@hs/core';
1+
import type { Membership, MessageType } from '@hs/core';
22
import type { EventID } from '@hs/room';
33
import { container } from 'tsyringe';
44
import { ConfigService } from './services/config.service';
@@ -115,20 +115,32 @@ export type HomeserverEventSignatures = {
115115
origin_server_ts: number;
116116
content: {
117117
body: string;
118-
msgtype: string;
119-
'm.relates_to'?: {
120-
rel_type: 'm.replace' | 'm.annotation' | 'm.thread';
121-
event_id: EventID;
122-
'm.in_reply_to'?: {
123-
event_id: EventID;
124-
room_id: string;
125-
sender: string;
126-
origin_server_ts: number;
127-
};
128-
};
118+
msgtype: MessageType;
119+
url?: string;
120+
'm.relates_to'?:
121+
| {
122+
rel_type: 'm.replace';
123+
event_id: EventID;
124+
}
125+
| {
126+
rel_type: 'm.annotation';
127+
event_id: EventID;
128+
key: string;
129+
}
130+
| {
131+
rel_type: 'm.thread';
132+
event_id: EventID;
133+
'm.in_reply_to'?: {
134+
event_id: EventID;
135+
room_id: string;
136+
sender: string;
137+
origin_server_ts: number;
138+
};
139+
is_falling_back?: boolean;
140+
};
129141
'm.new_content'?: {
130142
body: string;
131-
msgtype: string;
143+
msgtype: MessageType;
132144
'm.mentions'?: Record<string, string>;
133145
};
134146
formatted_body?: string;

packages/federation-sdk/src/services/staging-area.service.ts

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import type { EventBase, EventStagingStore, Membership } from '@hs/core';
22
import { singleton } from 'tsyringe';
33

4-
import { createLogger, isRedactedEvent } from '@hs/core';
5-
import { Pdu, PduPowerLevelsEventContent } from '@hs/room';
4+
import { MessageType, createLogger, isRedactedEvent } from '@hs/core';
5+
import { PduPowerLevelsEventContent } from '@hs/room';
66
import type { EventID } from '@hs/room';
77
import { EventAuthorizationService } from './event-authorization.service';
88
import { EventEmitterService } from './event-emitter.service';
@@ -148,14 +148,24 @@ export class StagingAreaService {
148148
content: {
149149
...event.event.content,
150150
body: event.event.content?.body as string,
151-
msgtype: event.event.content?.msgtype as string,
152-
'm.relates_to': event.event.content?.['m.relates_to'] as {
153-
rel_type: 'm.replace' | 'm.annotation' | 'm.thread';
154-
event_id: EventID;
155-
},
151+
msgtype: event.event.content?.msgtype as MessageType,
152+
'm.relates_to': event.event.content?.['m.relates_to'] as
153+
| {
154+
rel_type: 'm.replace';
155+
event_id: EventID;
156+
}
157+
| {
158+
rel_type: 'm.annotation';
159+
event_id: EventID;
160+
key: string;
161+
}
162+
| {
163+
rel_type: 'm.thread';
164+
event_id: EventID;
165+
},
156166
'm.new_content': event.event.content?.['m.new_content'] as {
157167
body: string;
158-
msgtype: string;
168+
msgtype: MessageType;
159169
},
160170
formatted_body: (event.event.content?.formatted_body ||
161171
'') as string,

0 commit comments

Comments
 (0)