i dont even know what this PR is supposed to be about anymore, everyone lost the plot somewhere in the middle of act 2 #74
2 changed files with 14 additions and 9 deletions
Update "m.relates_to" type definition @ types.d.ts
* To better reflect reality ("m.in_reply_to" will not always be present - it's not (always?) found on "rel_type":"m.replace" relation-events)
* To support "rel_type":"m.replace" relation-events (added "m.replace" option to existing key "rel_type" and a new "is_falling_back" key)
AFFECTED TYPES: M_Room_Message, M_Room_Message_File, M_Room_Message_Encrypted_File
BREAKS: Nothing, as .d.ts files don't affect buisness logic. In terms of lint errors: Marking "m.in_reply_to" as optional is indeed technically a "breaking change" (TypeScript may complain about „is probably undefined” in places where it didn't before), but from early "testing" (ie. looking at VSCode's errors tab), it doesn't seem like anything broke, as no file that imports any of those 3 types (Or their Outer_ counterparts) has „lit up” with errors (unless I missed something). There was one type error found in m2d/converters/event-to-message.js, at line 1009, but that seemed unrelated to types.d.ts - nevertheless, that error was also corrected in this commit, by adding proper type annotations somewhere else in the affected file.
commit
aedd30ab4a
|
|
@ -471,6 +471,7 @@ async function checkWrittenMentions(content, senderMxid, roomID, guild, di) {
|
|||
// @ts-ignore - typescript doesn't know about indices yet
|
||||
content: content.slice(0, writtenMentionMatch.indices[1][0]-1) + `@everyone` + content.slice(writtenMentionMatch.indices[1][1]),
|
||||
ensureJoined: [],
|
||||
/**@type {DiscordTypes.AllowedMentionsTypes[]}*/ // @ts-ignore - TypeScript is for whatever reason conviced that "everyone" cannot be assigned to AllowedMentionsTypes, but if you „Go to Definition”, you'll see that "everyone" is a valid enum value.
|
||||
allowedMentionsParse: ["everyone"]
|
||||
}
|
||||
}
|
||||
|
|
@ -543,6 +544,7 @@ async function getL1L2ReplyLine(called = false) {
|
|||
async function eventToMessage(event, guild, channel, di) {
|
||||
let displayName = event.sender
|
||||
let avatarURL = undefined
|
||||
/**@type {DiscordTypes.AllowedMentionsTypes[]}*/ // @ts-ignore - TypeScript is for whatever reason conviced that neither "users" no "roles" cannot be assigned to AllowedMentionsTypes, but if you „Go to Definition”, you'll see that both are valid enum values.
|
||||
const allowedMentionsParse = ["users", "roles"]
|
||||
/** @type {string[]} */
|
||||
let messageIDsToEdit = []
|
||||
|
|
|
|||
21
src/types.d.ts
vendored
21
src/types.d.ts
vendored
|
|
@ -190,11 +190,12 @@ export namespace Event {
|
|||
format?: "org.matrix.custom.html"
|
||||
formatted_body?: string,
|
||||
"m.relates_to"?: {
|
||||
"m.in_reply_to": {
|
||||
event_id?: string
|
||||
is_falling_back?: bool
|
||||
"m.in_reply_to"?: {
|
||||
event_id: string
|
||||
}
|
||||
rel_type?: "m.replace"
|
||||
event_id?: string
|
||||
rel_type?: "m.replace"|"m.thread"
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -210,11 +211,12 @@ export namespace Event {
|
|||
info?: any
|
||||
"page.codeberg.everypizza.msc4193.spoiler"?: boolean
|
||||
"m.relates_to"?: {
|
||||
"m.in_reply_to": {
|
||||
event_id?: string
|
||||
is_falling_back?: bool
|
||||
"m.in_reply_to"?: {
|
||||
event_id: string
|
||||
}
|
||||
rel_type?: "m.replace"
|
||||
event_id?: string
|
||||
rel_type?: "m.replace"|"m.thread"
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -246,11 +248,12 @@ export namespace Event {
|
|||
},
|
||||
info?: any
|
||||
"m.relates_to"?: {
|
||||
"m.in_reply_to": {
|
||||
event_id?: string
|
||||
is_falling_back?: bool
|
||||
"m.in_reply_to"?: {
|
||||
event_id: string
|
||||
}
|
||||
rel_type?: "m.replace"
|
||||
event_id?: string
|
||||
rel_type?: "m.replace"|"m.thread"
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue