serverless-spy
Version:
CDK-based library for writing elegant integration tests on AWS serverless architecture and an additional web console to monitor events in real time.
19 lines (18 loc) • 783 B
JavaScript
import { EventStreamMarshaller as UniversalEventStreamMarshaller } from "@smithy/eventstream-serde-universal";
import { Readable } from "stream";
import { readabletoIterable } from "./utils";
export class EventStreamMarshaller {
constructor({ utf8Encoder, utf8Decoder }) {
this.universalMarshaller = new UniversalEventStreamMarshaller({
utf8Decoder,
utf8Encoder,
});
}
deserialize(body, deserializer) {
const bodyIterable = typeof body[Symbol.asyncIterator] === "function" ? body : readabletoIterable(body);
return this.universalMarshaller.deserialize(bodyIterable, deserializer);
}
serialize(input, serializer) {
return Readable.from(this.universalMarshaller.serialize(input, serializer));
}
}