Skip to content

Commit 19fddb2

Browse files
authored
chore(eventstream-marshaller): deprecate EventStreamMarshaller (#3749)
1 parent df6d203 commit 19fddb2

31 files changed

+25
-1135
lines changed

packages/eventstream-marshaller/package.json

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,11 @@
1919
},
2020
"license": "Apache-2.0",
2121
"dependencies": {
22-
"@aws-crypto/crc32": "2.0.0",
22+
"@aws-sdk/eventstream-codec": "*",
2323
"@aws-sdk/types": "*",
24-
"@aws-sdk/util-hex-encoding": "*",
2524
"tslib": "^2.3.1"
2625
},
2726
"devDependencies": {
28-
"@aws-sdk/util-utf8-browser": "*",
29-
"@aws-sdk/util-utf8-node": "*",
3027
"@tsconfig/recommended": "1.0.1",
3128
"@types/node": "^10.0.0",
3229
"concurrently": "7.0.0",
@@ -35,12 +32,6 @@
3532
"typedoc": "0.19.2",
3633
"typescript": "~4.6.2"
3734
},
38-
"browser": {
39-
"@aws-sdk/util-utf8-node": "@aws-sdk/util-utf8-browser"
40-
},
41-
"react-native": {
42-
"@aws-sdk/util-utf8-node": "@aws-sdk/util-utf8-browser"
43-
},
4435
"typesVersions": {
4536
"<4.0": {
4637
"dist-types/*": [

packages/eventstream-marshaller/scripts/buildTestVectorsFixture.js

Lines changed: 0 additions & 91 deletions
This file was deleted.

packages/eventstream-marshaller/src/EventStreamMarshaller.spec.ts

Lines changed: 0 additions & 20 deletions
This file was deleted.
Lines changed: 9 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,61 +1,29 @@
1-
import { Crc32 } from "@aws-crypto/crc32";
1+
import { EventStreamCodec } from "@aws-sdk/eventstream-codec";
22
import { Message, MessageHeaders } from "@aws-sdk/types";
33
import { Decoder, Encoder } from "@aws-sdk/types";
44

5-
import { HeaderMarshaller } from "./HeaderMarshaller";
6-
import { splitMessage } from "./splitMessage";
7-
85
/**
96
* A marshaller that can convert binary-packed event stream messages into
107
* JavaScript objects and back again into their binary format.
8+
*
9+
* @deprecated Use EventStreamCodec from @aws-sdk/eventstream-codec instead.
1110
*/
1211
export class EventStreamMarshaller {
13-
private readonly headerMarshaller: HeaderMarshaller;
12+
private readonly codec: EventStreamCodec;
1413

1514
constructor(toUtf8: Encoder, fromUtf8: Decoder) {
16-
this.headerMarshaller = new HeaderMarshaller(toUtf8, fromUtf8);
15+
this.codec = new EventStreamCodec(toUtf8, fromUtf8);
1716
}
1817

19-
/**
20-
* Convert a structured JavaScript object with tagged headers into a binary
21-
* event stream message.
22-
*/
23-
marshall({ headers: rawHeaders, body }: Message): Uint8Array {
24-
const headers = this.headerMarshaller.format(rawHeaders);
25-
const length = headers.byteLength + body.byteLength + 16;
26-
27-
const out = new Uint8Array(length);
28-
const view = new DataView(out.buffer, out.byteOffset, out.byteLength);
29-
const checksum = new Crc32();
30-
31-
// Format message
32-
view.setUint32(0, length, false);
33-
view.setUint32(4, headers.byteLength, false);
34-
view.setUint32(8, checksum.update(out.subarray(0, 8)).digest(), false);
35-
out.set(headers, 12);
36-
out.set(body, headers.byteLength + 12);
37-
38-
// Write trailing message checksum
39-
view.setUint32(length - 4, checksum.update(out.subarray(8, length - 4)).digest(), false);
40-
41-
return out;
18+
marshall(message: Message): Uint8Array {
19+
return this.codec.encode(message);
4220
}
4321

44-
/**
45-
* Convert a binary event stream message into a JavaScript object with an
46-
* opaque, binary body and tagged, parsed headers.
47-
*/
4822
unmarshall(message: ArrayBufferView): Message {
49-
const { headers, body } = splitMessage(message);
50-
51-
return { headers: this.headerMarshaller.parse(headers), body };
23+
return this.codec.decode(message);
5224
}
5325

54-
/**
55-
* Convert a structured JavaScript object with tagged headers into a binary
56-
* event stream message header.
57-
*/
5826
formatHeaders(rawHeaders: MessageHeaders): Uint8Array {
59-
return this.headerMarshaller.format(rawHeaders);
27+
return this.codec.formatHeaders(rawHeaders);
6028
}
6129
}

0 commit comments

Comments
 (0)