Skip to content

Commit 5a27581

Browse files
fix: use Deno.serve() instead of serve()
`serve()` was removed in Deno v1 (May 2020). Release notes: https://github.com/denoland/deno/releases/v1.0.0 Related: #17 Note: the `abort` signal listener was removed because it is always triggered, even when the response is successfully sent See also: denoland/deno#27005
1 parent ea31859 commit 5a27581

File tree

15 files changed

+52
-62
lines changed

15 files changed

+52
-62
lines changed

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ A clear and concise description of what the bug is.
1313
**To Reproduce**
1414

1515
```ts
16-
import { serve } from "https://deno.land/[email protected]/http/server.ts";
1716
import { Server } from "https://deno.land/x/[email protected]/mod.ts";
1817

1918
const io = new Server();
@@ -28,7 +27,8 @@ io.on("connection", (socket) => {
2827
});
2928
});
3029

31-
await serve(io.handler(), {
30+
Deno.serve({
31+
handler: io.handler(),
3232
port: 3000,
3333
});
3434
```

.github/PULL_REQUEST_TEMPLATE/feature.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ Related issue or discussion:
1111
**New behavior**
1212

1313
```ts
14-
import { serve } from "https://deno.land/[email protected]/http/server.ts";
1514
import { Server } from "https://deno.land/x/[email protected]/mod.ts";
1615

1716
const io = new Server();
@@ -26,7 +25,8 @@ io.on("connection", (socket) => {
2625
});
2726
});
2827

29-
await serve(io.handler(), {
28+
Deno.serve({
29+
handler: io.handler(),
3030
port: 3000,
3131
});
3232
```

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ Table of content:
2424
## Usage
2525

2626
```ts
27-
import { serve } from "https://deno.land/[email protected]/http/server.ts";
2827
import { Server } from "https://deno.land/x/[email protected]/mod.ts";
2928

3029
const io = new Server();
@@ -39,7 +38,8 @@ io.on("connection", (socket) => {
3938
});
4039
});
4140

42-
await serve(io.handler(), {
41+
Deno.serve({
42+
handler: io.handler(),
4343
port: 3000,
4444
});
4545
```
@@ -86,7 +86,6 @@ You need to use the [.handle()](https://github.com/oakserver/oak#handle-method)
8686
method:
8787

8888
```ts
89-
import { serve } from "https://deno.land/[email protected]/http/server.ts";
9089
import { Server } from "https://deno.land/x/[email protected]/mod.ts";
9190
import { Application } from "https://deno.land/x/[email protected]/mod.ts";
9291

@@ -112,7 +111,8 @@ const handler = io.handler(async (req) => {
112111
return await app.handle(req) || new Response(null, { status: 404 });
113112
});
114113

115-
await serve(handler, {
114+
Deno.serve({
115+
handler,
116116
port: 3000,
117117
});
118118
```
@@ -281,7 +281,6 @@ servers.
281281
Documentation: https://socket.io/docs/v4/redis-adapter/
282282

283283
```js
284-
import { serve } from "https://deno.land/[email protected]/http/server.ts";
285284
import {
286285
createRedisAdapter,
287286
createRedisClient,
@@ -301,7 +300,8 @@ const io = new Server({
301300
adapter: createRedisAdapter(pubClient, subClient),
302301
});
303302

304-
await serve(io.handler(), {
303+
Deno.serve({
304+
handler: io.handler(),
305305
port: 3000,
306306
});
307307
```

deps.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1 @@
1-
export {
2-
type ConnInfo,
3-
type Handler,
4-
} from "https://deno.land/[email protected]/http/server.ts";
5-
61
export { getLogger } from "https://deno.land/[email protected]/log/mod.ts";

mod.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
/**
22
* @example
3-
* import { serve } from "https://deno.land/[email protected]/http/server.ts";
43
* import { Server } from "https://deno.land/x/[email protected]/mod.ts";
54
*
65
* const io = new Server();
@@ -21,7 +20,8 @@
2120
* });
2221
* });
2322
*
24-
* await serve(io.handler(), {
23+
* Deno.serve({
24+
* handler: io.handler(),
2525
* port: 3000,
2626
* });
2727
*/
@@ -40,7 +40,6 @@ export {
4040
* Documentation: https://socket.io/docs/v4/redis-adapter/
4141
*
4242
* @example
43-
* import { serve } from "https://deno.land/std/http/server.ts";
4443
* import { Server, createRedisAdapter, createRedisClient } from "https://deno.land/x/socket_io/mod.ts";
4544
*
4645
* const [pubClient, subClient] = await Promise.all([
@@ -56,8 +55,9 @@ export {
5655
* adapter: createRedisAdapter(pubClient, subClient)
5756
* });
5857
*
59-
* await serve(io.handler(), {
60-
* port: 3000
58+
* Deno.serve({
59+
* handler: io.handler(),
60+
* port: 3000
6161
* });
6262
*/
6363
export {

packages/engine.io/examples/protocol-compliance-test/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { serve } from "../../../../test_deps.ts";
21
import { Server } from "../../mod.ts";
32

43
const engine = new Server({
@@ -17,6 +16,7 @@ engine.on("connection", (socket) => {
1716
});
1817
});
1918

20-
await serve(engine.handler(), {
19+
Deno.serve({
20+
handler: engine.handler(),
2121
port: 3000,
2222
});

packages/engine.io/lib/server.ts

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ConnInfo, getLogger, Handler } from "../../../deps.ts";
1+
import { getLogger } from "../../../deps.ts";
22
import { EventEmitter } from "../../event-emitter/mod.ts";
33
import { Socket } from "./socket.ts";
44
import { Polling } from "./transports/polling.ts";
@@ -41,7 +41,7 @@ export interface ServerOptions {
4141
*/
4242
allowRequest?: (
4343
req: Request,
44-
connInfo: ConnInfo,
44+
connInfo: Deno.ServeHandlerInfo,
4545
) => Promise<void>;
4646
/**
4747
* The options related to Cross-Origin Resource Sharing (CORS)
@@ -53,15 +53,15 @@ export interface ServerOptions {
5353
editHandshakeHeaders?: (
5454
responseHeaders: Headers,
5555
req: Request,
56-
connInfo: ConnInfo,
56+
connInfo: Deno.ServeHandlerInfo,
5757
) => void | Promise<void>;
5858
/**
5959
* A function that allows to edit the response headers of all requests
6060
*/
6161
editResponseHeaders?: (
6262
responseHeaders: Headers,
6363
req: Request,
64-
connInfo: ConnInfo,
64+
connInfo: Deno.ServeHandlerInfo,
6565
) => void | Promise<void>;
6666
}
6767

@@ -73,7 +73,11 @@ interface ConnectionError {
7373
}
7474

7575
interface ServerReservedEvents {
76-
connection: (socket: Socket, request: Request, connInfo: ConnInfo) => void;
76+
connection: (
77+
socket: Socket,
78+
request: Request,
79+
connInfo: Deno.ServeHandlerInfo,
80+
) => void;
7781
connection_error: (err: ConnectionError) => void;
7882
}
7983

@@ -124,8 +128,11 @@ export class Server extends EventEmitter<
124128
*
125129
* @param additionalHandler - another handler which will receive the request if the path does not match
126130
*/
127-
public handler(additionalHandler?: Handler) {
128-
return (req: Request, connInfo: ConnInfo): Response | Promise<Response> => {
131+
public handler(additionalHandler?: Deno.ServeHandler) {
132+
return (
133+
req: Request,
134+
connInfo: Deno.ServeHandlerInfo,
135+
): Response | Promise<Response> => {
129136
const url = new URL(req.url);
130137
if (url.pathname === this.opts.path) {
131138
return this.handleRequest(req, connInfo, url);
@@ -147,7 +154,7 @@ export class Server extends EventEmitter<
147154
*/
148155
private async handleRequest(
149156
req: Request,
150-
connInfo: ConnInfo,
157+
connInfo: Deno.ServeHandlerInfo,
151158
url: URL,
152159
): Promise<Response> {
153160
getLogger("engine.io").debug(`[server] handling ${req.method} ${req.url}`);
@@ -321,7 +328,7 @@ export class Server extends EventEmitter<
321328
*/
322329
private async handshake(
323330
req: Request,
324-
connInfo: ConnInfo,
331+
connInfo: Deno.ServeHandlerInfo,
325332
responseHeaders: Headers,
326333
): Promise<Response> {
327334
const id = generateId();

packages/engine.io/lib/transports/polling.ts

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,6 @@ export class Polling extends Transport {
4747
);
4848
}
4949

50-
req.signal.addEventListener("abort", () => {
51-
// note: this gets never triggered
52-
this.onError("poll connection closed prematurely");
53-
});
54-
5550
getLogger("engine.io").debug(
5651
"[polling] new polling request",
5752
);
@@ -75,11 +70,6 @@ export class Polling extends Transport {
7570
req: Request,
7671
responseHeaders: Headers,
7772
): Promise<Response> {
78-
req.signal.addEventListener("abort", () => {
79-
// note: this gets never triggered
80-
this.onError("data request connection closed prematurely");
81-
});
82-
8373
getLogger("engine.io").debug(
8474
"[polling] new data request",
8575
);

packages/engine.io/test/setup.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { Server } from "../lib/server.ts";
2-
import { serve } from "../../../test_deps.ts";
32
import { createPartialDone } from "../../util.test.ts";
43

54
export function setup(
@@ -10,7 +9,8 @@ export function setup(
109
return new Promise((resolve, reject) => {
1110
const abortController = new AbortController();
1211

13-
serve(engine.handler(), {
12+
Deno.serve({
13+
handler: engine.handler(),
1414
onListen: ({ port }) => {
1515
const partialDone = createPartialDone(count, () => {
1616
// close the server

packages/socket.io-redis-adapter/test/setup.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import { Server, Socket } from "../../socket.io/mod.ts";
22
import { createPartialDone, runHandshake, waitFor } from "../../util.test.ts";
33
import { connect } from "../../../vendor/deno.land/x/[email protected]/mod.ts";
44
import { createAdapter } from "../mod.ts";
5-
import { serve } from "../../../test_deps.ts";
65

76
function createRedisClient() {
87
return connect({
@@ -29,7 +28,8 @@ function createServer(port: number): Promise<TestServer> {
2928

3029
const abortController = new AbortController();
3130

32-
return serve(io.handler(), {
31+
return Deno.serve({
32+
handler: io.handler(),
3333
port,
3434
signal: abortController.signal,
3535
onListen: async () => {

0 commit comments

Comments
 (0)