summaryrefslogtreecommitdiff
path: root/src/main/overleafProtocol.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/overleafProtocol.ts')
-rw-r--r--src/main/overleafProtocol.ts17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/main/overleafProtocol.ts b/src/main/overleafProtocol.ts
index 884aff2..abee516 100644
--- a/src/main/overleafProtocol.ts
+++ b/src/main/overleafProtocol.ts
@@ -65,16 +65,21 @@ export function parseSocketMessage(raw: string): ParsedMessage | null {
return null
}
case '6': {
- // Ack: 6:::N+[jsonData]
- const ackMatch = raw.match(/^6:::(\d+)\+([\s\S]*)/)
- if (ackMatch) {
+ // Ack with data: 6:::N+[jsonData]
+ // Ack without data: 6:::N
+ const ackWithData = raw.match(/^6:::(\d+)\+([\s\S]*)/)
+ if (ackWithData) {
try {
- const data = JSON.parse(ackMatch[2])
- return { type: 'ack', id: parseInt(ackMatch[1]), data }
+ const data = JSON.parse(ackWithData[2])
+ return { type: 'ack', id: parseInt(ackWithData[1]), data }
} catch {
- return { type: 'ack', id: parseInt(ackMatch[1]), data: null }
+ return { type: 'ack', id: parseInt(ackWithData[1]), data: null }
}
}
+ const ackNoData = raw.match(/^6:::(\d+)$/)
+ if (ackNoData) {
+ return { type: 'ack', id: parseInt(ackNoData[1]), data: null }
+ }
return null
}
default: