Skip to content

Commit 61ca56a

Browse files
authored
Modernize (#1513)
1 parent e1f9ce1 commit 61ca56a

28 files changed

+399
-322
lines changed

.editorconfig

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# EditorConfig is awesome: https://editorconfig.org
2+
3+
root = true
4+
5+
[*]
6+
indent_style = tab
7+
end_of_line = lf
8+
charset = utf-8
9+
trim_trailing_whitespace = true
10+
insert_final_newline = true
11+
12+
[*.{ts,mts,mjs,cjs,js}]
13+
indent_style = tab
14+
15+
[*.json]
16+
indent_style = tab
17+
18+
[*.md]
19+
indent_style = tab

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
### NEXT
44

55
- CI: Remove redundant hosts `macos-14` and `windows-2022` from `mediasoup-worker-prebuild` job ([PR #1506](https://github.com/versatica/mediasoup/pull/1506)).
6+
- Node: Modernize code ([PR #1513](https://github.com/versatica/mediasoup/pull/1513)).
67

78
### 3.15.6
89

eslint.config.mjs

+11-6
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ const config = tsEslint.config(
88
{
99
languageOptions: {
1010
sourceType: 'module',
11-
globals: { ...globals.nodeBuiltin },
11+
globals: { ...globals.node },
1212
},
1313
linterOptions: {
1414
noInlineConfig: false,
@@ -108,18 +108,20 @@ const config = tsEslint.config(
108108
yoda: 2,
109109
},
110110
},
111-
// NOTE: We need to apply this only to .ts files (and not to .mjs files).
111+
// NOTE: We need to apply this only to .ts source files (and not to .mjs
112+
// files).
112113
...tsEslint.configs.recommendedTypeChecked.map(item => ({
113114
...item,
114115
files: ['node/src/**/*.ts'],
115116
})),
116-
// NOTE: We need to apply this only to .ts files (and not to .mjs files).
117+
// NOTE: We need to apply this only to .ts source files (and not to .mjs
118+
// files).
117119
...tsEslint.configs.stylisticTypeChecked.map(item => ({
118120
...item,
119121
files: ['node/src/**/*.ts'],
120122
})),
121123
{
122-
name: 'mediasoup .ts files',
124+
name: '.ts source files',
123125
files: ['node/src/**/*.ts'],
124126
languageOptions: {
125127
parserOptions: {
@@ -153,7 +155,10 @@ const config = tsEslint.config(
153155
],
154156
// Sorry, we need many `any` usage.
155157
'@typescript-eslint/no-explicit-any': 0,
156-
'@typescript-eslint/explicit-function-return-type': 2,
158+
'@typescript-eslint/explicit-function-return-type': [
159+
2,
160+
{ allowExpressions: true },
161+
],
157162
'@typescript-eslint/no-unsafe-member-access': 0,
158163
'@typescript-eslint/no-unsafe-assignment': 0,
159164
'@typescript-eslint/no-unsafe-call': 0,
@@ -169,7 +174,7 @@ const config = tsEslint.config(
169174
},
170175
},
171176
{
172-
name: 'mediasoup .ts test files',
177+
name: '.ts test files',
173178
...jestEslint.configs['flat/recommended'],
174179
files: ['node/src/test/**/*.ts'],
175180
rules: {

jest.config.mjs

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
const config = {
2+
verbose: true,
3+
testEnvironment: 'node',
4+
testRegex: 'node/src/test/test-.*\\.ts',
5+
transform: {
6+
'^.+\\.ts?$': ['ts-jest'],
7+
},
8+
coveragePathIgnorePatterns: [
9+
'node/src/Logger.ts',
10+
'node/src/enhancedEvents.ts',
11+
'node/src/fbs',
12+
'node/src/test',
13+
],
14+
modulePathIgnorePatterns: ['worker', 'rust', 'target'],
15+
cacheDirectory: '.cache/jest',
16+
};
17+
18+
export default config;

node/src/ActiveSpeakerObserver.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ export class ActiveSpeakerObserverImpl<
4444
return 'activespeaker';
4545
}
4646

47-
get observer(): ActiveSpeakerObserverObserver {
47+
override get observer(): ActiveSpeakerObserverObserver {
4848
return super.observer;
4949
}
5050

node/src/AudioLevelObserver.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ export class AudioLevelObserverImpl<
4646
return 'audiolevel';
4747
}
4848

49-
get observer(): AudioLevelObserverObserver {
49+
override get observer(): AudioLevelObserverObserver {
5050
return super.observer;
5151
}
5252

node/src/Channel.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ export class Channel extends EnhancedEventEmitter {
4848
readonly #sents: Map<number, Sent> = new Map();
4949

5050
// Buffer for reading messages from the worker.
51-
#recvBuffer = Buffer.alloc(0);
51+
#recvBuffer: Buffer = Buffer.alloc(0);
5252

5353
// flatbuffers builder.
5454
#bufferBuilder: flatbuffers.Builder = new flatbuffers.Builder(1024);

node/src/DirectTransport.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -72,19 +72,19 @@ export class DirectTransportImpl<
7272
return 'direct';
7373
}
7474

75-
get observer(): DirectTransportObserver {
75+
override get observer(): DirectTransportObserver {
7676
return super.observer;
7777
}
7878

79-
close(): void {
79+
override close(): void {
8080
if (this.closed) {
8181
return;
8282
}
8383

8484
super.close();
8585
}
8686

87-
routerClosed(): void {
87+
override routerClosed(): void {
8888
if (this.closed) {
8989
return;
9090
}
@@ -134,21 +134,21 @@ export class DirectTransportImpl<
134134
}
135135

136136
// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/require-await
137-
async setMaxIncomingBitrate(bitrate: number): Promise<void> {
137+
override async setMaxIncomingBitrate(bitrate: number): Promise<void> {
138138
throw new UnsupportedError(
139139
'setMaxIncomingBitrate() not implemented in DirectTransport'
140140
);
141141
}
142142

143143
// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/require-await
144-
async setMaxOutgoingBitrate(bitrate: number): Promise<void> {
144+
override async setMaxOutgoingBitrate(bitrate: number): Promise<void> {
145145
throw new UnsupportedError(
146146
'setMaxOutgoingBitrate() not implemented in DirectTransport'
147147
);
148148
}
149149

150150
// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/require-await
151-
async setMinOutgoingBitrate(bitrate: number): Promise<void> {
151+
override async setMinOutgoingBitrate(bitrate: number): Promise<void> {
152152
throw new UnsupportedError(
153153
'setMinOutgoingBitrate() not implemented in DirectTransport'
154154
);

node/src/PipeTransport.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ export class PipeTransportImpl<PipeTransportAppData extends AppData = AppData>
9696
return 'pipe';
9797
}
9898

99-
get observer(): PipeTransportObserver {
99+
override get observer(): PipeTransportObserver {
100100
return super.observer;
101101
}
102102

@@ -116,7 +116,7 @@ export class PipeTransportImpl<PipeTransportAppData extends AppData = AppData>
116116
return this.#data.srtpParameters;
117117
}
118118

119-
close(): void {
119+
override close(): void {
120120
if (this.closed) {
121121
return;
122122
}
@@ -128,7 +128,7 @@ export class PipeTransportImpl<PipeTransportAppData extends AppData = AppData>
128128
super.close();
129129
}
130130

131-
routerClosed(): void {
131+
override routerClosed(): void {
132132
if (this.closed) {
133133
return;
134134
}
@@ -213,7 +213,7 @@ export class PipeTransportImpl<PipeTransportAppData extends AppData = AppData>
213213
}
214214
}
215215

216-
async consume<ConsumerAppData extends AppData = AppData>({
216+
override async consume<ConsumerAppData extends AppData = AppData>({
217217
producerId,
218218
appData,
219219
}: PipeConsumerOptions<ConsumerAppData>): Promise<Consumer<ConsumerAppData>> {

node/src/PlainTransport.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ export class PlainTransportImpl<PlainTransportAppData extends AppData = AppData>
8989
return 'plain';
9090
}
9191

92-
get observer(): PlainTransportObserver {
92+
override get observer(): PlainTransportObserver {
9393
return super.observer;
9494
}
9595

@@ -113,7 +113,7 @@ export class PlainTransportImpl<PlainTransportAppData extends AppData = AppData>
113113
return this.#data.srtpParameters;
114114
}
115115

116-
close(): void {
116+
override close(): void {
117117
if (this.closed) {
118118
return;
119119
}
@@ -125,7 +125,7 @@ export class PlainTransportImpl<PlainTransportAppData extends AppData = AppData>
125125
super.close();
126126
}
127127

128-
routerClosed(): void {
128+
override routerClosed(): void {
129129
if (this.closed) {
130130
return;
131131
}

node/src/Router.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -985,8 +985,8 @@ export class RouterImpl<RouterAppData extends AppData = AppData>
985985

986986
if (pipeTransportPairPromise) {
987987
pipeTransportPair = await pipeTransportPairPromise;
988-
localPipeTransport = pipeTransportPair[this.id];
989-
remotePipeTransport = pipeTransportPair[router.id];
988+
localPipeTransport = pipeTransportPair[this.id]!;
989+
remotePipeTransport = pipeTransportPair[router.id]!;
990990
} else {
991991
pipeTransportPairPromise = new Promise((resolve, reject) => {
992992
Promise.all([
@@ -1190,7 +1190,7 @@ export class RouterImpl<RouterAppData extends AppData = AppData>
11901190

11911191
pipeTransportPairPromise
11921192
.then(pipeTransportPair => {
1193-
const localPipeTransport = pipeTransportPair[this.id];
1193+
const localPipeTransport = pipeTransportPair[this.id]!;
11941194

11951195
// NOTE: No need to do any other cleanup here since that is done by the
11961196
// Router calling this method on us.

node/src/WebRtcTransport.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ export class WebRtcTransportImpl<
112112
return 'webrtc';
113113
}
114114

115-
get observer(): WebRtcTransportObserver {
115+
override get observer(): WebRtcTransportObserver {
116116
return super.observer;
117117
}
118118

@@ -156,7 +156,7 @@ export class WebRtcTransportImpl<
156156
return this.#data.sctpState;
157157
}
158158

159-
close(): void {
159+
override close(): void {
160160
if (this.closed) {
161161
return;
162162
}
@@ -172,7 +172,7 @@ export class WebRtcTransportImpl<
172172
super.close();
173173
}
174174

175-
routerClosed(): void {
175+
override routerClosed(): void {
176176
if (this.closed) {
177177
return;
178178
}
@@ -188,7 +188,7 @@ export class WebRtcTransportImpl<
188188
super.routerClosed();
189189
}
190190

191-
listenServerClosed(): void {
191+
override listenServerClosed(): void {
192192
if (this.closed) {
193193
return;
194194
}

node/src/Worker.ts

+7-7
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@ import { Protocol as FbsTransportProtocol } from './fbs/transport/protocol';
3434
// If env MEDIASOUP_WORKER_BIN is given, use it as worker binary.
3535
// Otherwise if env MEDIASOUP_BUILDTYPE is 'Debug' use the Debug binary.
3636
// Otherwise use the Release binary.
37-
export const workerBin = process.env.MEDIASOUP_WORKER_BIN
38-
? process.env.MEDIASOUP_WORKER_BIN
39-
: process.env.MEDIASOUP_BUILDTYPE === 'Debug'
37+
export const workerBin = process.env['MEDIASOUP_WORKER_BIN']
38+
? process.env['MEDIASOUP_WORKER_BIN']
39+
: process.env['MEDIASOUP_BUILDTYPE'] === 'Debug'
4040
? path.join(
4141
__dirname,
4242
'..',
@@ -112,12 +112,12 @@ export class WorkerImpl<WorkerAppData extends AppData = AppData>
112112
let spawnBin = workerBin;
113113
let spawnArgs: string[] = [];
114114

115-
if (process.env.MEDIASOUP_USE_VALGRIND === 'true') {
116-
spawnBin = process.env.MEDIASOUP_VALGRIND_BIN ?? 'valgrind';
115+
if (process.env['MEDIASOUP_USE_VALGRIND'] === 'true') {
116+
spawnBin = process.env['MEDIASOUP_VALGRIND_BIN'] ?? 'valgrind';
117117

118-
if (process.env.MEDIASOUP_VALGRIND_OPTIONS) {
118+
if (process.env['MEDIASOUP_VALGRIND_OPTIONS']) {
119119
spawnArgs = spawnArgs.concat(
120-
process.env.MEDIASOUP_VALGRIND_OPTIONS.split(/\s+/)
120+
process.env['MEDIASOUP_VALGRIND_OPTIONS'].split(/\s+/)
121121
);
122122
}
123123

0 commit comments

Comments
 (0)