Skip to content

Commit ddb583b

Browse files
authored
build(deps-dev): replace standard with neostandard (#311)
* build(deps-dev): replace standard with neostandard * chore: add eslint.config.js * chore:rebase * Update package.json Signed-off-by: Frazer Smith <[email protected]> * chore: ignore --------- Signed-off-by: Frazer Smith <[email protected]>
1 parent 0a6978b commit ddb583b

File tree

5 files changed

+112
-104
lines changed

5 files changed

+112
-104
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
[![CI](https://github.com/fastify/fastify-websocket/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/fastify/fastify-websocket/actions/workflows/ci.yml)
44
[![NPM version](https://img.shields.io/npm/v/@fastify/websocket.svg?style=flat)](https://www.npmjs.com/package/@fastify/websocket)
5-
[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat)](https://standardjs.com/)
5+
[![neostandard javascript style](https://img.shields.io/badge/code_style-neostandard-brightgreen?style=flat)](https://github.com/neostandard/neostandard)
66

77
WebSocket support for [Fastify](https://github.com/fastify/fastify).
88
Built upon [ws@8](https://www.npmjs.com/package/ws).

eslint.config.js

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
'use strict'
2+
3+
module.exports = require('neostandard')({
4+
ignores: require('neostandard').resolveIgnoresFromGitignore(),
5+
ts: true
6+
})

package.json

+4-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
"type": "commonjs",
77
"types": "types/index.d.ts",
88
"scripts": {
9-
"lint": "standard",
9+
"lint": "eslint",
10+
"lint:fix": "eslint --fix",
1011
"test": "npm run test:unit && npm run test:typescript",
1112
"test:unit": "tap",
1213
"test:typescript": "tsd"
@@ -59,10 +60,11 @@
5960
"@fastify/type-provider-typebox": "^5.0.0",
6061
"@types/node": "^22.0.0",
6162
"@types/ws": "^8.5.10",
63+
"eslint": "^9.17.0",
6264
"fastify": "^5.0.0",
6365
"fastify-tsconfig": "^2.0.0",
66+
"neostandard": "^0.12.0",
6467
"split2": "^4.2.0",
65-
"standard": "^17.1.0",
6668
"tap": "^18.7.1",
6769
"tsd": "^0.31.0"
6870
},

types/index.d.ts

+16-13
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
/// <reference types="node" />
2-
import { IncomingMessage, ServerResponse, Server } from 'node:http';
3-
import { FastifyRequest, FastifyPluginCallback, RawServerBase, RawServerDefault, RawRequestDefaultExpression, RawReplyDefaultExpression, RequestGenericInterface, ContextConfigDefault, FastifyInstance, FastifySchema, FastifyTypeProvider, FastifyTypeProviderDefault, FastifyBaseLogger } from 'fastify';
4-
import * as fastify from 'fastify';
5-
import * as WebSocket from 'ws';
6-
import { FastifyReply } from 'fastify/types/reply';
7-
import { preCloseHookHandler, preCloseAsyncHookHandler } from 'fastify/types/hooks';
8-
import { RouteGenericInterface } from 'fastify/types/route';
2+
import { IncomingMessage, ServerResponse, Server } from 'node:http'
3+
import { FastifyRequest, FastifyPluginCallback, RawServerBase, RawServerDefault, RawRequestDefaultExpression, RawReplyDefaultExpression, RequestGenericInterface, ContextConfigDefault, FastifyInstance, FastifySchema, FastifyTypeProvider, FastifyTypeProviderDefault, FastifyBaseLogger } from 'fastify'
4+
import * as fastify from 'fastify'
5+
import * as WebSocket from 'ws'
6+
import { FastifyReply } from 'fastify/types/reply'
7+
import { preCloseHookHandler, preCloseAsyncHookHandler } from 'fastify/types/hooks'
8+
import { RouteGenericInterface } from 'fastify/types/route'
99

1010
interface WebsocketRouteOptions<
1111
RawServer extends RawServerBase = RawServerDefault,
@@ -21,6 +21,7 @@ interface WebsocketRouteOptions<
2121

2222
declare module 'fastify' {
2323
interface RouteShorthandOptions<
24+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
2425
RawServer extends RawServerBase = RawServerDefault
2526
> {
2627
websocket?: boolean;
@@ -29,6 +30,7 @@ declare module 'fastify' {
2930
type InjectWSFn<RawRequest> =
3031
((path?: string, upgradeContext?: Partial<RawRequest>) => Promise<WebSocket>)
3132

33+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
3234
interface FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider> {
3335
websocketServer: WebSocket.Server,
3436
injectWS: InjectWSFn<RawRequest>
@@ -43,7 +45,7 @@ declare module 'fastify' {
4345
RawRequest extends RawRequestDefaultExpression<RawServer> = RawRequestDefaultExpression<RawServer>,
4446
RawReply extends RawReplyDefaultExpression<RawServer> = RawReplyDefaultExpression<RawServer>,
4547
TypeProvider extends FastifyTypeProvider = FastifyTypeProviderDefault,
46-
Logger extends FastifyBaseLogger = FastifyBaseLogger,
48+
Logger extends FastifyBaseLogger = FastifyBaseLogger
4749
> {
4850
<RequestGeneric extends RequestGenericInterface = RequestGenericInterface, ContextConfig = ContextConfigDefault, SchemaCompiler extends FastifySchema = FastifySchema, InnerLogger extends Logger = Logger>(
4951
path: string,
@@ -55,6 +57,7 @@ declare module 'fastify' {
5557
interface RouteOptions<
5658
RawServer extends RawServerBase = RawServerDefault,
5759
RawRequest extends RawRequestDefaultExpression<RawServer> = RawRequestDefaultExpression<RawServer>,
60+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
5861
RawReply extends RawReplyDefaultExpression<RawServer> = RawReplyDefaultExpression<RawServer>,
5962
RouteGeneric extends RouteGenericInterface = RouteGenericInterface,
6063
ContextConfig = ContextConfigDefault,
@@ -64,11 +67,11 @@ declare module 'fastify' {
6467
> extends WebsocketRouteOptions<RawServer, RawRequest, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> { }
6568
}
6669

67-
type FastifyWebsocket = FastifyPluginCallback<fastifyWebsocket.WebsocketPluginOptions>;
70+
type FastifyWebsocket = FastifyPluginCallback<fastifyWebsocket.WebsocketPluginOptions>
6871

6972
declare namespace fastifyWebsocket {
7073

71-
interface WebSocketServerOptions extends Omit<WebSocket.ServerOptions, "path"> { }
74+
interface WebSocketServerOptions extends Omit<WebSocket.ServerOptions, 'path'> { }
7275
export type WebsocketHandler<
7376
RawServer extends RawServerBase = RawServerDefault,
7477
RawRequest extends RawRequestDefaultExpression<RawServer> = RawRequestDefaultExpression<RawServer>,
@@ -81,7 +84,7 @@ declare namespace fastifyWebsocket {
8184
this: FastifyInstance<Server, IncomingMessage, ServerResponse>,
8285
socket: WebSocket.WebSocket,
8386
request: FastifyRequest<RequestGeneric, RawServer, RawRequest, SchemaCompiler, TypeProvider, ContextConfig, Logger>
84-
) => void | Promise<any>;
87+
) => void | Promise<any>
8588
export interface WebsocketPluginOptions {
8689
errorHandler?: (this: FastifyInstance, error: Error, socket: WebSocket.WebSocket, request: FastifyRequest, reply: FastifyReply) => void;
8790
options?: WebSocketServerOptions;
@@ -98,11 +101,11 @@ declare namespace fastifyWebsocket {
98101
Logger extends FastifyBaseLogger = FastifyBaseLogger
99102
> extends fastify.RouteOptions<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger>, WebsocketRouteOptions<RawServer, RawRequest, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> { }
100103

101-
export type WebSocket = WebSocket.WebSocket;
104+
export type WebSocket = WebSocket.WebSocket
102105

103106
export const fastifyWebsocket: FastifyWebsocket
104107
export { fastifyWebsocket as default }
105108
}
106109

107-
declare function fastifyWebsocket(...params: Parameters<FastifyWebsocket>): ReturnType<FastifyWebsocket>
110+
declare function fastifyWebsocket (...params: Parameters<FastifyWebsocket>): ReturnType<FastifyWebsocket>
108111
export = fastifyWebsocket

types/index.test-d.ts

+85-88
Original file line numberDiff line numberDiff line change
@@ -1,116 +1,114 @@
1-
import fastifyWebsocket, { WebsocketHandler, fastifyWebsocket as namedFastifyWebsocket, default as defaultFastifyWebsocket, WebSocket } from '..';
2-
import type { IncomingMessage } from "http";
3-
import fastify, { RouteOptions, FastifyRequest, FastifyInstance, FastifyReply, RequestGenericInterface, FastifyBaseLogger, RawServerDefault, FastifySchema, RawRequestDefaultExpression } from 'fastify';
4-
import { expectType } from 'tsd';
5-
import { Server } from 'ws';
6-
import { RouteGenericInterface } from 'fastify/types/route';
7-
import { TypeBoxTypeProvider } from '@fastify/type-provider-typebox';
1+
// eslint-disable-next-line import-x/no-named-default -- Testing default export
2+
import fastifyWebsocket, { WebsocketHandler, fastifyWebsocket as namedFastifyWebsocket, default as defaultFastifyWebsocket, WebSocket } from '..'
3+
import type { IncomingMessage } from 'http'
4+
import fastify, { RouteOptions, FastifyRequest, FastifyInstance, FastifyReply, RequestGenericInterface, FastifyBaseLogger, RawServerDefault, FastifySchema, RawRequestDefaultExpression } from 'fastify'
5+
import { expectType } from 'tsd'
6+
import { Server } from 'ws'
7+
import { RouteGenericInterface } from 'fastify/types/route'
8+
import { TypeBoxTypeProvider } from '@fastify/type-provider-typebox'
89
import { Type } from '@sinclair/typebox'
910

10-
const app: FastifyInstance = fastify();
11-
app.register(fastifyWebsocket);
12-
app.register(fastifyWebsocket, {});
13-
app.register(fastifyWebsocket, { options: { maxPayload: 123 } });
11+
const app: FastifyInstance = fastify()
12+
app.register(fastifyWebsocket)
13+
app.register(fastifyWebsocket, {})
14+
app.register(fastifyWebsocket, { options: { maxPayload: 123 } })
1415
app.register(fastifyWebsocket, {
15-
errorHandler: function errorHandler(error: Error, socket: WebSocket, request: FastifyRequest, reply: FastifyReply): void {
16-
expectType<FastifyInstance>(this);
16+
errorHandler: function errorHandler (error: Error, socket: WebSocket, request: FastifyRequest, reply: FastifyReply): void {
17+
expectType<FastifyInstance>(this)
1718
expectType<Error>(error)
1819
expectType<WebSocket>(socket)
1920
expectType<FastifyRequest>(request)
2021
expectType<FastifyReply>(reply)
2122
}
22-
});
23-
app.register(fastifyWebsocket, { options: { perMessageDeflate: true } });
24-
app.register(fastifyWebsocket, { preClose: function syncPreclose() {} });
25-
app.register(fastifyWebsocket, { preClose: async function asyncPreclose(){} });
23+
})
24+
app.register(fastifyWebsocket, { options: { perMessageDeflate: true } })
25+
app.register(fastifyWebsocket, { preClose: function syncPreclose () {} })
26+
app.register(fastifyWebsocket, { preClose: async function asyncPreclose () {} })
2627

2728
app.get('/websockets-via-inferrence', { websocket: true }, async function (socket, request) {
28-
expectType<FastifyInstance>(this);
29-
expectType<WebSocket>(socket);
30-
expectType<Server>(app.websocketServer);
29+
expectType<FastifyInstance>(this)
30+
expectType<WebSocket>(socket)
31+
expectType<Server>(app.websocketServer)
3132
expectType<FastifyRequest<RequestGenericInterface>>(request)
32-
expectType<boolean>(request.ws);
33-
expectType<FastifyBaseLogger>(request.log);
34-
});
33+
expectType<boolean>(request.ws)
34+
expectType<FastifyBaseLogger>(request.log)
35+
})
3536

3637
const handler: WebsocketHandler = async (socket, request) => {
37-
expectType<WebSocket>(socket);
38-
expectType<Server>(app.websocketServer);
38+
expectType<WebSocket>(socket)
39+
expectType<Server>(app.websocketServer)
3940
expectType<FastifyRequest<RequestGenericInterface>>(request)
4041
}
4142

42-
app.get('/websockets-via-annotated-const', { websocket: true }, handler);
43+
app.get('/websockets-via-annotated-const', { websocket: true }, handler)
4344

4445
app.get('/not-specifed', async (request, reply) => {
45-
expectType<FastifyRequest>(request);
46+
expectType<FastifyRequest>(request)
4647
expectType<FastifyReply>(reply)
47-
expectType<boolean>(request.ws);
48-
});
48+
expectType<boolean>(request.ws)
49+
})
4950

5051
app.get('/not-websockets', { websocket: false }, async (request, reply) => {
51-
expectType<FastifyRequest>(request);
52-
expectType<FastifyReply>(reply);
53-
});
52+
expectType<FastifyRequest>(request)
53+
expectType<FastifyReply>(reply)
54+
})
5455

5556
app.route({
5657
method: 'GET',
5758
url: '/route-full-declaration-syntax',
5859
handler: (request, reply) => {
59-
expectType<FastifyRequest>(request);
60-
expectType<FastifyReply>(reply);
61-
expectType<boolean>(request.ws);
60+
expectType<FastifyRequest>(request)
61+
expectType<FastifyReply>(reply)
62+
expectType<boolean>(request.ws)
6263
},
6364
wsHandler: (socket, request) => {
64-
expectType<WebSocket>(socket);
65-
expectType<FastifyRequest<RouteGenericInterface>>(request);
66-
expectType<boolean>(request.ws);
65+
expectType<WebSocket>(socket)
66+
expectType<FastifyRequest<RouteGenericInterface>>(request)
67+
expectType<boolean>(request.ws)
6768
},
68-
});
69+
})
6970

7071
const augmentedRouteOptions: RouteOptions = {
7172
method: 'GET',
7273
url: '/route-with-exported-augmented-route-options',
7374
handler: (request, reply) => {
74-
expectType<FastifyRequest>(request);
75-
expectType<FastifyReply>(reply);
75+
expectType<FastifyRequest>(request)
76+
expectType<FastifyReply>(reply)
7677
},
7778
wsHandler: (socket, request) => {
78-
expectType<WebSocket>(socket);
79+
expectType<WebSocket>(socket)
7980
expectType<FastifyRequest<RouteGenericInterface>>(request)
8081
},
81-
};
82-
app.route(augmentedRouteOptions);
83-
82+
}
83+
app.route(augmentedRouteOptions)
8484

8585
app.get<{ Params: { foo: string }, Body: { bar: string }, Querystring: { search: string }, Headers: { auth: string } }>('/shorthand-explicit-types', {
8686
websocket: true
8787
}, async (socket, request) => {
88-
expectType<WebSocket>(socket);
89-
expectType<{ foo: string }>(request.params);
90-
expectType<{ bar: string }>(request.body);
91-
expectType<{ search: string }>(request.query);
92-
expectType< IncomingMessage['headers'] & { auth: string }>(request.headers);
93-
});
94-
88+
expectType<WebSocket>(socket)
89+
expectType<{ foo: string }>(request.params)
90+
expectType<{ bar: string }>(request.body)
91+
expectType<{ search: string }>(request.query)
92+
expectType< IncomingMessage['headers'] & { auth: string }>(request.headers)
93+
})
9594

9695
app.route<{ Params: { foo: string }, Body: { bar: string }, Querystring: { search: string }, Headers: { auth: string } }>({
9796
method: 'GET',
9897
url: '/longhand-explicit-types',
9998
handler: (request, _reply) => {
100-
expectType<{ foo: string }>(request.params);
101-
expectType<{ bar: string }>(request.body);
102-
expectType<{ search: string }>(request.query);
103-
expectType<IncomingMessage['headers'] & { auth: string }>(request.headers);
99+
expectType<{ foo: string }>(request.params)
100+
expectType<{ bar: string }>(request.body)
101+
expectType<{ search: string }>(request.query)
102+
expectType<IncomingMessage['headers'] & { auth: string }>(request.headers)
104103
},
105104
wsHandler: (socket, request) => {
106-
expectType<WebSocket>(socket);
107-
expectType<{ foo: string }>(request.params);
108-
expectType<{ bar: string }>(request.body);
109-
expectType<{ search: string }>(request.query);
110-
expectType<IncomingMessage['headers'] & { auth: string }>(request.headers);
105+
expectType<WebSocket>(socket)
106+
expectType<{ foo: string }>(request.params)
107+
expectType<{ bar: string }>(request.body)
108+
expectType<{ search: string }>(request.query)
109+
expectType<IncomingMessage['headers'] & { auth: string }>(request.headers)
111110
},
112-
});
113-
111+
})
114112

115113
const schema = {
116114
params: Type.Object({
@@ -125,43 +123,42 @@ const schema = {
125123
headers: Type.Object({
126124
auth: Type.String()
127125
})
128-
};
126+
}
129127

130-
const server = app.withTypeProvider<TypeBoxTypeProvider>();
128+
const server = app.withTypeProvider<TypeBoxTypeProvider>()
131129

132130
server.route({
133131
method: 'GET',
134132
url: '/longhand-type-inference',
135133
schema,
136134
handler: (request, _reply) => {
137-
expectType<{ foo: string }>(request.params);
138-
expectType<{ bar: string }>(request.body);
139-
expectType<{ search: string }>(request.query);
140-
expectType<IncomingMessage['headers'] & { auth: string }>(request.headers);
135+
expectType<{ foo: string }>(request.params)
136+
expectType<{ bar: string }>(request.body)
137+
expectType<{ search: string }>(request.query)
138+
expectType<IncomingMessage['headers'] & { auth: string }>(request.headers)
141139
},
142140
wsHandler: (socket, request) => {
143-
expectType<WebSocket>(socket);
144-
expectType<{ foo: string }>(request.params);
145-
expectType<{ bar: string }>(request.body);
146-
expectType<{ search: string }>(request.query);
147-
expectType<IncomingMessage['headers'] & { auth: string }>(request.headers);
141+
expectType<WebSocket>(socket)
142+
expectType<{ foo: string }>(request.params)
143+
expectType<{ bar: string }>(request.body)
144+
expectType<{ search: string }>(request.query)
145+
expectType<IncomingMessage['headers'] & { auth: string }>(request.headers)
148146
},
149-
});
147+
})
150148

151149
server.get('/websockets-no-type-inference',
152150
{ websocket: true },
153151
async function (socket, request) {
154-
expectType<FastifyInstance>(this);
155-
expectType<WebSocket>(socket);
156-
expectType<Server>(app.websocketServer);
157-
expectType<FastifyRequest<RequestGenericInterface, RawServerDefault, RawRequestDefaultExpression, FastifySchema, TypeBoxTypeProvider, unknown, FastifyBaseLogger>>(request);
158-
expectType<boolean>(request.ws);
159-
expectType<unknown>(request.params);
160-
expectType<unknown>(request.body);
161-
expectType<unknown>(request.query);
162-
expectType<IncomingMessage['headers']>(request.headers);
163-
});
164-
165-
expectType<typeof fastifyWebsocket>(namedFastifyWebsocket);
166-
expectType<typeof fastifyWebsocket>(defaultFastifyWebsocket);
152+
expectType<FastifyInstance>(this)
153+
expectType<WebSocket>(socket)
154+
expectType<Server>(app.websocketServer)
155+
expectType<FastifyRequest<RequestGenericInterface, RawServerDefault, RawRequestDefaultExpression, FastifySchema, TypeBoxTypeProvider, unknown, FastifyBaseLogger>>(request)
156+
expectType<boolean>(request.ws)
157+
expectType<unknown>(request.params)
158+
expectType<unknown>(request.body)
159+
expectType<unknown>(request.query)
160+
expectType<IncomingMessage['headers']>(request.headers)
161+
})
167162

163+
expectType<typeof fastifyWebsocket>(namedFastifyWebsocket)
164+
expectType<typeof fastifyWebsocket>(defaultFastifyWebsocket)

0 commit comments

Comments
 (0)