Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 62b11f1

Browse files
authored
Merge pull request #51 from msgpack/simplify_decode_arg
simplify type of decode()'s first arg; ArrayLike<number> includes Uint8Array, anyway
2 parents e4b4e78 + 96e1152 commit 62b11f1

File tree

4 files changed

+16
-17
lines changed

4 files changed

+16
-17
lines changed

‎README.md‎

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,11 @@ npm install @msgpack/msgpack
4646

4747
It encodes `data` and returns a byte array as `Uint8Array`.
4848

49-
### `decode(buffer: ArrayLike<number> | Uint8Array, options?: DecodeOptions): unknown`
49+
### `decode(buffer: ArrayLike<number>, options?: DecodeOptions): unknown`
5050

51-
It decodes `buffer` in a byte buffer and returns decoded data as `uknown`.
51+
It decodes `buffer` encoded as MessagePack, and returns a decoded object as `uknown`.
52+
53+
`buffer` must be an array of bytes, which is typically `Uint8Array`.
5254

5355
#### DecodeOptions
5456

@@ -63,19 +65,19 @@ maxExtLength | number | `4_294_967_295` (UINT32_MAX)
6365

6466
You can use `max${Type}Length` to limit the length of each type decoded.
6567

66-
### `decodeAsync(stream: AsyncIterable<Uint8Array | ArrayLike<number>> | ReadableStream<Uint8Array | ArrayLike<number>>, options?: DecodeAsyncOptions): Promise<unknown>`
68+
### `decodeAsync(stream: AsyncIterable<ArrayLike<number>> | ReadableStream<ArrayLike<number>>, options?: DecodeAsyncOptions): Promise<unknown>`
6769

6870
It decodes `stream` in an async iterable of byte arrays and returns decoded data as `uknown` wrapped in `Promise`. This function works asyncronously.
6971

7072
Note that `decodeAsync()` acceps the same options as `decode()`.
7173

72-
### `decodeArrayStream(stream: AsyncIterable<Uint8Array | ArrayLike<number>> | ReadableStream<Uint8Array | ArrayLike<number>>, options?: DecodeAsyncOptions): AsyncIterable<unknown>`
74+
### `decodeArrayStream(stream: AsyncIterable<ArrayLike<number>> | ReadableStream<ArrayLike<number>>, options?: DecodeAsyncOptions): AsyncIterable<unknown>`
7375

7476
It is alike to `decodeAsync()`, but only accepts an array of items as the input `stream`, and emits the decoded item one by one.
7577

7678
It throws errors when the input is not an array.
7779

78-
### `decodeStream(stream: AsyncIterable<Uint8Array | ArrayLike<number>> | ReadableStream<Uint8Array | ArrayLike<number>>, options?: DecodeAsyncOptions): AsyncIterable<unknown>`
80+
### `decodeStream(stream: AsyncIterable<ArrayLike<number>> | ReadableStream<ArrayLike<number>>, options?: DecodeAsyncOptions): AsyncIterable<unknown>`
7981

8082
It is like to `decodeAsync()` and `decodeArrayStream()`, but the input `stream` consists of independent MessagePack items.
8183

‎src/Decoder.ts‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,13 +68,13 @@ export class Decoder {
6868
readonly maxExtLength = DEFAULT_MAX_LENGTH,
6969
) {}
7070

71-
setBuffer(buffer: ArrayLike<number>|Uint8Array): void {
71+
setBuffer(buffer: ArrayLike<number>): void {
7272
this.bytes = ensureUint8Array(buffer);
7373
this.view = createDataView(this.bytes);
7474
this.pos = 0;
7575
}
7676

77-
appendBuffer(buffer: Uint8Array|ArrayLike<number>) {
77+
appendBuffer(buffer: ArrayLike<number>) {
7878
if (this.headByte === HEAD_BYTE_REQUIRED && !this.hasRemaining()) {
7979
this.setBuffer(buffer);
8080
} else {
@@ -105,7 +105,7 @@ export class Decoder {
105105
return object;
106106
}
107107

108-
async decodeOneAsync(stream: AsyncIterable<ArrayLike<number>|Uint8Array>): Promise<unknown> {
108+
async decodeOneAsync(stream: AsyncIterable<ArrayLike<number>>): Promise<unknown> {
109109
let decoded = false;
110110
let object: unknown;
111111
for await (const buffer of stream) {
@@ -140,7 +140,7 @@ export class Decoder {
140140
);
141141
}
142142

143-
async *decodeStream(stream: AsyncIterable<ArrayLike<number>|Uint8Array>) {
143+
async *decodeStream(stream: AsyncIterable<ArrayLike<number>>) {
144144
for await (const buffer of stream) {
145145
this.appendBuffer(buffer);
146146

@@ -159,7 +159,7 @@ export class Decoder {
159159
}
160160
}
161161

162-
async *decodeArrayStream(stream: AsyncIterable<ArrayLike<number>|Uint8Array>) {
162+
async *decodeArrayStream(stream: AsyncIterable<ArrayLike<number>>) {
163163
let headerParsed = false;
164164
let decoded = false;
165165
let itemsLeft = 0;

‎src/decode.ts‎

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,7 @@ export type DecodeOptions = Partial<
3535

3636
export const defaultDecodeOptions: DecodeOptions = {};
3737

38-
export function decode(
39-
buffer: ReadonlyArray<number> | Uint8Array,
40-
options: DecodeOptions = defaultDecodeOptions,
41-
): unknown {
38+
export function decode(buffer: ArrayLike<number>, options: DecodeOptions = defaultDecodeOptions): unknown {
4239
const decoder = new Decoder(
4340
options.extensionCodec,
4441
options.maxStrLength,

‎src/decodeAsync.ts‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ export type DecodeAsyncOptions = DecodeOptions;
66
export const defaultDecodeAsyncOptions = defaultDecodeOptions;
77

88
export async function decodeAsync(
9-
streamLike: ReadableStreamLike<Uint8Array|ArrayLike<number>>,
9+
streamLike: ReadableStreamLike<ArrayLike<number>>,
1010
options: DecodeAsyncOptions = defaultDecodeOptions,
1111
): Promise<unknown> {
1212
const stream = ensureAsyncIterabe(streamLike);
@@ -23,7 +23,7 @@ export async function decodeAsync(
2323
}
2424

2525
export function decodeArrayStream(
26-
streamLike: ReadableStreamLike<Uint8Array|ArrayLike<number>>,
26+
streamLike: ReadableStreamLike<ArrayLike<number>>,
2727
options: DecodeAsyncOptions = defaultDecodeOptions,
2828
) {
2929
const stream = ensureAsyncIterabe(streamLike);
@@ -41,7 +41,7 @@ export function decodeArrayStream(
4141
}
4242

4343
export function decodeStream(
44-
streamLike: ReadableStreamLike<Uint8Array|ArrayLike<number>>,
44+
streamLike: ReadableStreamLike<ArrayLike<number>>,
4545
options: DecodeAsyncOptions = defaultDecodeOptions,
4646
) {
4747
const stream = ensureAsyncIterabe(streamLike);

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /