Skip to content

Commit 84ac28a

Browse files
committed
simplify createDataView
1 parent ed3388c commit 84ac28a

File tree

2 files changed

+6
-14
lines changed

2 files changed

+6
-14
lines changed

src/Decoder.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { prettyByte } from "./utils/prettyByte";
22
import { ExtensionCodec, ExtensionCodecType } from "./ExtensionCodec";
33
import { getInt64, getUint64, UINT32_MAX } from "./utils/int";
44
import { utf8Decode } from "./utils/utf8";
5-
import { createDataView, ensureUint8Array } from "./utils/typedArrays";
5+
import { ensureUint8Array } from "./utils/typedArrays";
66
import { CachedKeyDecoder, KeyDecoder } from "./CachedKeyDecoder";
77
import { DecodeError } from "./DecodeError";
88
import type { ContextOf } from "./context";
@@ -244,8 +244,9 @@ export class Decoder<ContextType = undefined> {
244244
}
245245

246246
private setBuffer(buffer: ArrayLike<number> | ArrayBufferView | ArrayBufferLike): void {
247-
this.bytes = ensureUint8Array(buffer);
248-
this.view = createDataView(this.bytes);
247+
const bytes = ensureUint8Array(buffer);
248+
this.bytes = bytes;
249+
this.view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
249250
this.pos = 0;
250251
}
251252

src/utils/typedArrays.ts

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
function isArrayBuffer(buffer: unknown): buffer is ArrayBuffer | SharedArrayBuffer {
1+
function isArrayBufferLike(buffer: unknown): buffer is ArrayBufferLike {
22
return (
33
buffer instanceof ArrayBuffer || (typeof SharedArrayBuffer !== "undefined" && buffer instanceof SharedArrayBuffer)
44
);
@@ -11,19 +11,10 @@ export function ensureUint8Array(
1111
return buffer;
1212
} else if (ArrayBuffer.isView(buffer)) {
1313
return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);
14-
} else if (isArrayBuffer(buffer)) {
14+
} else if (isArrayBufferLike(buffer)) {
1515
return new Uint8Array(buffer);
1616
} else {
1717
// ArrayLike<number>
1818
return Uint8Array.from(buffer);
1919
}
2020
}
21-
22-
export function createDataView(buffer: ArrayLike<number> | ArrayBufferView | ArrayBuffer): DataView<ArrayBufferLike> {
23-
if (buffer instanceof ArrayBuffer) {
24-
return new DataView(buffer);
25-
}
26-
27-
const bufferView = ensureUint8Array(buffer);
28-
return new DataView(bufferView.buffer, bufferView.byteOffset, bufferView.byteLength);
29-
}

0 commit comments

Comments
 (0)