Fix TypeScript: add @types/ws and RawData type for WebSocket message

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-17 18:08:14 +03:00
parent 3506105fc1
commit 25b1a96740
3 changed files with 14 additions and 2 deletions

View File

@@ -25,6 +25,7 @@
"@types/node": "^20.14.0", "@types/node": "^20.14.0",
"@types/nodemailer": "^7.0.11", "@types/nodemailer": "^7.0.11",
"@types/pg": "^8.11.6", "@types/pg": "^8.11.6",
"@types/ws": "^8.18.1",
"tsx": "^4.15.7", "tsx": "^4.15.7",
"typescript": "^5.4.5" "typescript": "^5.4.5"
} }
@@ -657,6 +658,16 @@
"pg-types": "^2.2.0" "pg-types": "^2.2.0"
} }
}, },
"node_modules/@types/ws": {
"version": "8.18.1",
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz",
"integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/abstract-logging": { "node_modules/abstract-logging": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz", "resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz",

View File

@@ -26,6 +26,7 @@
"@types/node": "^20.14.0", "@types/node": "^20.14.0",
"@types/nodemailer": "^7.0.11", "@types/nodemailer": "^7.0.11",
"@types/pg": "^8.11.6", "@types/pg": "^8.11.6",
"@types/ws": "^8.18.1",
"tsx": "^4.15.7", "tsx": "^4.15.7",
"typescript": "^5.4.5" "typescript": "^5.4.5"
} }

View File

@@ -1,6 +1,6 @@
import { FastifyPluginAsync } from 'fastify' import { FastifyPluginAsync } from 'fastify'
import fastifyWebsocket from '@fastify/websocket' import fastifyWebsocket from '@fastify/websocket'
import type { WebSocket } from 'ws' import type { WebSocket, RawData } from 'ws'
// hotel slug → set of connected clients // hotel slug → set of connected clients
const hotelRooms = new Map<string, Set<WebSocket>>() const hotelRooms = new Map<string, Set<WebSocket>>()
@@ -18,7 +18,7 @@ const ws: FastifyPluginAsync = async (fastify) => {
if (!hotelRooms.has(hotel)) hotelRooms.set(hotel, new Set()) if (!hotelRooms.has(hotel)) hotelRooms.set(hotel, new Set())
hotelRooms.get(hotel)!.add(socket) hotelRooms.get(hotel)!.add(socket)
socket.on('message', (raw) => { socket.on('message', (raw: RawData) => {
const data = raw.toString() const data = raw.toString()
const peers = hotelRooms.get(hotel) const peers = hotelRooms.get(hotel)
if (!peers) return if (!peers) return