Skip to content

Commit 6bd56fb

Browse files
committed
fix(mock-udp): New Node.js API
1 parent 1ae5afe commit 6bd56fb

File tree

1 file changed

+18
-13
lines changed

1 file changed

+18
-13
lines changed

packages/mock-udp/src/index.ts

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ const originalSocketSend = Socket.prototype.send;
1111
class Scope {
1212
public _done: boolean;
1313
public address?: string;
14-
public buffer?: Buffer | string | Uint8Array | any[];
14+
public buffer?: string | readonly any[] | ArrayBufferLike;
1515
public length?: number;
1616
public offset?: number;
1717
public port?: number;
@@ -25,37 +25,41 @@ class Scope {
2525
}
2626
}
2727

28-
function overriddenSocketSend(msg: string | Uint8Array | any[], callback?: SendCallback): void;
29-
function overriddenSocketSend(msg: string | Uint8Array | any[], port?: number, callback?: SendCallback): void;
3028
function overriddenSocketSend(
31-
msg: string | Uint8Array | any[],
29+
msg: string | NodeJS.ArrayBufferView | readonly any[],
3230
port?: number,
3331
address?: string,
3432
callback?: SendCallback
3533
): void;
3634
function overriddenSocketSend(
37-
msg: string | Uint8Array | any[],
35+
msg: string | NodeJS.ArrayBufferView | readonly any[],
36+
port?: number,
37+
callback?: SendCallback
38+
): void;
39+
function overriddenSocketSend(msg: string | NodeJS.ArrayBufferView | readonly any[], callback?: SendCallback): void;
40+
function overriddenSocketSend(
41+
msg: string | NodeJS.ArrayBufferView,
3842
offset: number,
3943
length: number,
44+
port?: number,
45+
address?: string,
4046
callback?: SendCallback
4147
): void;
4248
function overriddenSocketSend(
43-
msg: string | Uint8Array | any[],
49+
msg: string | NodeJS.ArrayBufferView,
4450
offset: number,
4551
length: number,
4652
port?: number,
4753
callback?: SendCallback
4854
): void;
4955
function overriddenSocketSend(
50-
msg: string | Uint8Array | any[],
56+
msg: string | NodeJS.ArrayBufferView,
5157
offset: number,
5258
length: number,
53-
port?: number,
54-
address?: string,
5559
callback?: SendCallback
5660
): void;
5761
function overriddenSocketSend(
58-
msg: Buffer | string | Uint8Array | any[],
62+
msg: NodeJS.ArrayBufferView | string | readonly any[],
5963
offsetOrPortOrCallback?: number | SendCallback,
6064
lengthOrAddressOrCallback?: number | string | SendCallback,
6165
portOrCallback?: number | SendCallback,
@@ -70,16 +74,17 @@ function overriddenSocketSend(
7074
const length = hasLengthAndOffset ? (lengthOrAddressOrCallback as number) || 0 : 0;
7175
const offset = hasLengthAndOffset ? (offsetOrPortOrCallback as number) : 0;
7276
const port = hasLengthAndOffset ? (portOrCallback as number) : (offsetOrPortOrCallback as number);
77+
const message = ArrayBuffer.isView(msg) ? msg.buffer : msg;
7378

74-
if (offset >= msg.length) {
79+
if (offset >= message.slice.length) {
7580
throw new Error('Offset into buffer too large.');
7681
}
7782

78-
if (offset + length > msg.length) {
83+
if (offset + length > message.slice.length) {
7984
throw new Error('Offset + length beyond buffer length.');
8085
}
8186

82-
const newBuffer = msg.slice(offset, offset + length);
87+
const newBuffer = message.slice(offset, offset + length);
8388
const host = `${address}:${port}`;
8489

8590
if (intercepts.hasOwnProperty(host)) {

0 commit comments

Comments
 (0)