Fix type errors related to Cloudflare Workers and SvelteKit compatibility

This commit is contained in:
Insub Kim 2025-11-16 21:55:38 +09:00
parent da2918bd88
commit 0240306058
2 changed files with 13 additions and 9 deletions

View File

@ -50,7 +50,7 @@ export class CounterDurableObject {
return new Response('Expected Upgrade: websocket', { status: 426 });
}
// @ts-expect-error - WebSocketPair는 Cloudflare Workers 런타임에서만 사용 가능
// @ts-ignore - WebSocketPair는 Cloudflare Workers 런타임에서만 사용 가능
const webSocketPair = new WebSocketPair();
const [client, server] = Object.values(webSocketPair) as [WebSocket, WebSocket];
@ -61,7 +61,7 @@ export class CounterDurableObject {
};
// WebSocket Hibernation API 사용
// @ts-expect-error - Cloudflare Workers types 불일치
// @ts-ignore - Cloudflare Workers types 불일치
this.ctx.acceptWebSocket(server);
this.sessions.set(server, session);
@ -70,7 +70,7 @@ export class CounterDurableObject {
return new Response(null, {
status: 101,
// @ts-expect-error - webSocket 속성은 Cloudflare Workers에서 지원됨
// @ts-ignore - webSocket 속성은 Cloudflare Workers에서 지원됨
webSocket: client
});
}
@ -168,7 +168,7 @@ export class CounterDurableObject {
});
// 모든 연결된 WebSocket에 메시지 전송
// @ts-expect-error - Cloudflare Workers types 불일치
// @ts-ignore - Cloudflare Workers types 불일치
connectedWebSockets.forEach((ws: WebSocket) => {
try {
ws.send(message);

View File

@ -1,5 +1,7 @@
import type { RequestHandler } from './$types';
// SvelteKit의 Request/Response 타입과 Cloudflare Workers 타입 간의 충돌로 인한 타입 에러 무시
// @ts-expect-error - Cloudflare Workers types와 Web Standard API types 간의 호환성 문제
export const GET: RequestHandler = async ({ request, platform }) => {
// WebSocket 업그레이드 요청인지 확인
const upgradeHeader = request.headers.get('Upgrade');
@ -7,17 +9,19 @@ export const GET: RequestHandler = async ({ request, platform }) => {
return new Response('Expected Upgrade: websocket', { status: 426 });
}
// Durable Object ID 생성 (모든 클라이언트가 같은 인스턴스에 연결)
const id = platform?.env.COUNTER.idFromName('global-counter');
if (!id) {
return new Response('Durable Object not configured', { status: 500 });
// platform 존재 확인
if (!platform) {
return new Response('Platform not available', { status: 500 });
}
// Durable Object ID 생성 (모든 클라이언트가 같은 인스턴스에 연결)
const id = platform.env.COUNTER.idFromName('global-counter');
// Durable Object stub 가져오기
const stub = platform.env.COUNTER.get(id);
// Durable Object에 요청 전달
// @ts-expect-error - Cloudflare Workers Request 타입과 표준 Request 타입 간의 호환성 문제
return stub.fetch(request);
};