@smithy/eventstream-serde-browser 4.2.13 → 4.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-cjs/index.js +9 -58
- package/dist-es/index.js +3 -3
- package/dist-types/index.d.ts +5 -10
- package/package.json +7 -24
- package/README.md +0 -17
- package/dist-es/EventStreamMarshaller.js +0 -20
- package/dist-es/provider.js +0 -2
- package/dist-es/utils.js +0 -28
- package/dist-types/EventStreamMarshaller.d.ts +0 -47
- package/dist-types/provider.d.ts +0 -3
- package/dist-types/utils.d.ts +0 -13
package/dist-cjs/index.js
CHANGED
|
@@ -1,58 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const { done, value } = await reader.read();
|
|
11
|
-
if (done)
|
|
12
|
-
return;
|
|
13
|
-
yield value;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
finally {
|
|
17
|
-
reader.releaseLock();
|
|
18
|
-
}
|
|
19
|
-
},
|
|
20
|
-
});
|
|
21
|
-
const iterableToReadableStream = (asyncIterable) => {
|
|
22
|
-
const iterator = asyncIterable[Symbol.asyncIterator]();
|
|
23
|
-
return new ReadableStream({
|
|
24
|
-
async pull(controller) {
|
|
25
|
-
const { done, value } = await iterator.next();
|
|
26
|
-
if (done) {
|
|
27
|
-
return controller.close();
|
|
28
|
-
}
|
|
29
|
-
controller.enqueue(value);
|
|
30
|
-
},
|
|
31
|
-
});
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
class EventStreamMarshaller {
|
|
35
|
-
universalMarshaller;
|
|
36
|
-
constructor({ utf8Encoder, utf8Decoder }) {
|
|
37
|
-
this.universalMarshaller = new eventstreamSerdeUniversal.EventStreamMarshaller({
|
|
38
|
-
utf8Decoder,
|
|
39
|
-
utf8Encoder,
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
deserialize(body, deserializer) {
|
|
43
|
-
const bodyIterable = isReadableStream(body) ? readableStreamtoIterable(body) : body;
|
|
44
|
-
return this.universalMarshaller.deserialize(bodyIterable, deserializer);
|
|
45
|
-
}
|
|
46
|
-
serialize(input, serializer) {
|
|
47
|
-
const serialziedIterable = this.universalMarshaller.serialize(input, serializer);
|
|
48
|
-
return typeof ReadableStream === "function" ? iterableToReadableStream(serialziedIterable) : serialziedIterable;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
const isReadableStream = (body) => typeof ReadableStream === "function" && body instanceof ReadableStream;
|
|
52
|
-
|
|
53
|
-
const eventStreamSerdeProvider = (options) => new EventStreamMarshaller(options);
|
|
54
|
-
|
|
55
|
-
exports.EventStreamMarshaller = EventStreamMarshaller;
|
|
56
|
-
exports.eventStreamSerdeProvider = eventStreamSerdeProvider;
|
|
57
|
-
exports.iterableToReadableStream = iterableToReadableStream;
|
|
58
|
-
exports.readableStreamtoIterable = readableStreamtoIterable;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.readableStreamtoIterable = exports.iterableToReadableStream = exports.eventStreamSerdeProvider = exports.EventStreamMarshaller = void 0;
|
|
4
|
+
const event_streams_1 = require("@smithy/core/event-streams");
|
|
5
|
+
var event_streams_2 = require("@smithy/core/event-streams");
|
|
6
|
+
Object.defineProperty(exports, "EventStreamMarshaller", { enumerable: true, get: function () { return event_streams_2.EventStreamMarshaller; } });
|
|
7
|
+
Object.defineProperty(exports, "eventStreamSerdeProvider", { enumerable: true, get: function () { return event_streams_2.eventStreamSerdeProvider; } });
|
|
8
|
+
Object.defineProperty(exports, "iterableToReadableStream", { enumerable: true, get: function () { return event_streams_2.iterableToReadableStream; } });
|
|
9
|
+
exports.readableStreamtoIterable = event_streams_1.readableStreamToIterable;
|
package/dist-es/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
3
|
-
export
|
|
1
|
+
import { readableStreamToIterable } from "@smithy/core/event-streams";
|
|
2
|
+
export { EventStreamMarshaller, eventStreamSerdeProvider, iterableToReadableStream } from "@smithy/core/event-streams";
|
|
3
|
+
export const readableStreamtoIterable = readableStreamToIterable;
|
package/dist-types/index.d.ts
CHANGED
|
@@ -1,12 +1,7 @@
|
|
|
1
|
+
/** @deprecated Use @smithy/core/event-streams instead. */
|
|
2
|
+
export { EventStreamMarshaller, eventStreamSerdeProvider, iterableToReadableStream } from "@smithy/core/event-streams";
|
|
3
|
+
export type { EventStreamMarshallerOptions } from "@smithy/core/event-streams";
|
|
1
4
|
/**
|
|
2
|
-
* @
|
|
5
|
+
* @deprecated capitalization typo.
|
|
3
6
|
*/
|
|
4
|
-
export
|
|
5
|
-
/**
|
|
6
|
-
* @internal
|
|
7
|
-
*/
|
|
8
|
-
export * from "./provider";
|
|
9
|
-
/**
|
|
10
|
-
* @internal
|
|
11
|
-
*/
|
|
12
|
-
export * from "./utils";
|
|
7
|
+
export declare const readableStreamtoIterable: <T>(readableStream: ReadableStream<T>) => AsyncIterable<T>;
|
package/package.json
CHANGED
|
@@ -1,16 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@smithy/eventstream-serde-browser",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.3.0",
|
|
4
4
|
"scripts": {
|
|
5
|
-
"build": "
|
|
6
|
-
"build:es:cjs": "yarn g:tsc -p tsconfig.es.json && node ../../scripts/inline eventstream-serde-browser",
|
|
7
|
-
"build:types": "yarn g:tsc -p tsconfig.types.json",
|
|
8
|
-
"build:types:downlevel": "premove dist-types/ts3.4 && downlevel-dts dist-types dist-types/ts3.4",
|
|
5
|
+
"build": "yarn g:tsc -p tsconfig.cjs.json && yarn g:tsc -p tsconfig.es.json && yarn g:tsc -p tsconfig.types.json",
|
|
9
6
|
"clean": "premove dist-cjs dist-es dist-types tsconfig.cjs.tsbuildinfo tsconfig.es.tsbuildinfo tsconfig.types.tsbuildinfo",
|
|
10
|
-
"
|
|
11
|
-
"lint": "eslint -c ../../.eslintrc.js \"src/**/*.ts\"",
|
|
12
|
-
"stage-release": "premove .release && yarn pack && mkdir ./.release && tar zxvf ./package.tgz --directory ./.release && rm ./package.tgz",
|
|
13
|
-
"test": "exit 0"
|
|
7
|
+
"stage-release": "premove .release && yarn pack && mkdir ./.release && tar zxvf ./package.tgz --directory ./.release && rm ./package.tgz"
|
|
14
8
|
},
|
|
15
9
|
"main": "./dist-cjs/index.js",
|
|
16
10
|
"module": "./dist-es/index.js",
|
|
@@ -22,20 +16,15 @@
|
|
|
22
16
|
"license": "Apache-2.0",
|
|
23
17
|
"sideEffects": false,
|
|
24
18
|
"dependencies": {
|
|
25
|
-
"@smithy/
|
|
26
|
-
"@smithy/types": "^4.14.0",
|
|
19
|
+
"@smithy/core": "^3.24.0",
|
|
27
20
|
"tslib": "^2.6.2"
|
|
28
21
|
},
|
|
22
|
+
"devDependencies": {
|
|
23
|
+
"premove": "4.0.0"
|
|
24
|
+
},
|
|
29
25
|
"engines": {
|
|
30
26
|
"node": ">=18.0.0"
|
|
31
27
|
},
|
|
32
|
-
"typesVersions": {
|
|
33
|
-
"<4.5": {
|
|
34
|
-
"dist-types/*": [
|
|
35
|
-
"dist-types/ts3.4/*"
|
|
36
|
-
]
|
|
37
|
-
}
|
|
38
|
-
},
|
|
39
28
|
"files": [
|
|
40
29
|
"dist-*/**"
|
|
41
30
|
],
|
|
@@ -45,12 +34,6 @@
|
|
|
45
34
|
"url": "https://github.com/smithy-lang/smithy-typescript.git",
|
|
46
35
|
"directory": "packages/eventstream-serde-browser"
|
|
47
36
|
},
|
|
48
|
-
"devDependencies": {
|
|
49
|
-
"concurrently": "7.0.0",
|
|
50
|
-
"downlevel-dts": "0.10.1",
|
|
51
|
-
"premove": "4.0.0",
|
|
52
|
-
"typedoc": "0.23.23"
|
|
53
|
-
},
|
|
54
37
|
"typedoc": {
|
|
55
38
|
"entryPoint": "src/index.ts"
|
|
56
39
|
},
|
package/README.md
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
# @smithy/eventstream-serde-browser
|
|
2
|
-
|
|
3
|
-
[](https://www.npmjs.com/package/@smithy/eventstream-serde-browser)
|
|
4
|
-
[](https://www.npmjs.com/package/@smithy/eventstream-serde-browser)
|
|
5
|
-
|
|
6
|
-
### :warning: Internal API :warning:
|
|
7
|
-
|
|
8
|
-
> This is an internal package.
|
|
9
|
-
> That means this is used as a dependency for other, public packages, but
|
|
10
|
-
> should not be taken directly as a dependency in your application's `package.json`.
|
|
11
|
-
|
|
12
|
-
> If you are updating the version of this package, for example to bring in a
|
|
13
|
-
> bug-fix, you should do so by updating your application lockfile with
|
|
14
|
-
> e.g. `npm up @scope/package` or equivalent command in another
|
|
15
|
-
> package manager, rather than taking a direct dependency.
|
|
16
|
-
|
|
17
|
-
---
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { EventStreamMarshaller as UniversalEventStreamMarshaller } from "@smithy/eventstream-serde-universal";
|
|
2
|
-
import { iterableToReadableStream, readableStreamtoIterable } from "./utils";
|
|
3
|
-
export class EventStreamMarshaller {
|
|
4
|
-
universalMarshaller;
|
|
5
|
-
constructor({ utf8Encoder, utf8Decoder }) {
|
|
6
|
-
this.universalMarshaller = new UniversalEventStreamMarshaller({
|
|
7
|
-
utf8Decoder,
|
|
8
|
-
utf8Encoder,
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
deserialize(body, deserializer) {
|
|
12
|
-
const bodyIterable = isReadableStream(body) ? readableStreamtoIterable(body) : body;
|
|
13
|
-
return this.universalMarshaller.deserialize(bodyIterable, deserializer);
|
|
14
|
-
}
|
|
15
|
-
serialize(input, serializer) {
|
|
16
|
-
const serialziedIterable = this.universalMarshaller.serialize(input, serializer);
|
|
17
|
-
return typeof ReadableStream === "function" ? iterableToReadableStream(serialziedIterable) : serialziedIterable;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
const isReadableStream = (body) => typeof ReadableStream === "function" && body instanceof ReadableStream;
|
package/dist-es/provider.js
DELETED
package/dist-es/utils.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
export const readableStreamtoIterable = (readableStream) => ({
|
|
2
|
-
[Symbol.asyncIterator]: async function* () {
|
|
3
|
-
const reader = readableStream.getReader();
|
|
4
|
-
try {
|
|
5
|
-
while (true) {
|
|
6
|
-
const { done, value } = await reader.read();
|
|
7
|
-
if (done)
|
|
8
|
-
return;
|
|
9
|
-
yield value;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
finally {
|
|
13
|
-
reader.releaseLock();
|
|
14
|
-
}
|
|
15
|
-
},
|
|
16
|
-
});
|
|
17
|
-
export const iterableToReadableStream = (asyncIterable) => {
|
|
18
|
-
const iterator = asyncIterable[Symbol.asyncIterator]();
|
|
19
|
-
return new ReadableStream({
|
|
20
|
-
async pull(controller) {
|
|
21
|
-
const { done, value } = await iterator.next();
|
|
22
|
-
if (done) {
|
|
23
|
-
return controller.close();
|
|
24
|
-
}
|
|
25
|
-
controller.enqueue(value);
|
|
26
|
-
},
|
|
27
|
-
});
|
|
28
|
-
};
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import type { Decoder, Encoder, EventStreamMarshaller as IEventStreamMarshaller, Message } from "@smithy/types";
|
|
2
|
-
/**
|
|
3
|
-
* @internal
|
|
4
|
-
*/
|
|
5
|
-
export interface EventStreamMarshaller extends IEventStreamMarshaller {
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* @internal
|
|
9
|
-
*/
|
|
10
|
-
export interface EventStreamMarshallerOptions {
|
|
11
|
-
utf8Encoder: Encoder;
|
|
12
|
-
utf8Decoder: Decoder;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* @internal
|
|
16
|
-
*
|
|
17
|
-
* Utility class used to serialize and deserialize event streams in
|
|
18
|
-
* browsers and ReactNative.
|
|
19
|
-
*
|
|
20
|
-
* In browsers where ReadableStream API is available:
|
|
21
|
-
* * deserialize from ReadableStream to an async iterable of output structure
|
|
22
|
-
* * serialize from async iterable of input structure to ReadableStream
|
|
23
|
-
* In ReactNative where only async iterable API is available:
|
|
24
|
-
* * deserialize from async iterable of binaries to async iterable of output structure
|
|
25
|
-
* * serialize from async iterable of input structure to async iterable of binaries
|
|
26
|
-
*
|
|
27
|
-
* We use ReadableStream API in browsers because of the consistency with other
|
|
28
|
-
* streaming operations, where ReadableStream API is used to denote streaming data.
|
|
29
|
-
* Whereas in ReactNative, ReadableStream API is not available, we use async iterable
|
|
30
|
-
* for streaming data although it has lower throughput.
|
|
31
|
-
*/
|
|
32
|
-
export declare class EventStreamMarshaller {
|
|
33
|
-
private readonly universalMarshaller;
|
|
34
|
-
constructor({ utf8Encoder, utf8Decoder }: EventStreamMarshallerOptions);
|
|
35
|
-
deserialize<T>(body: ReadableStream<Uint8Array> | AsyncIterable<Uint8Array>, deserializer: (input: Record<string, Message>) => Promise<T>): AsyncIterable<T>;
|
|
36
|
-
/**
|
|
37
|
-
* Generate a stream that serialize events into stream of binary chunks;
|
|
38
|
-
*
|
|
39
|
-
* Caveat is that streaming request payload doesn't work on browser with native
|
|
40
|
-
* xhr or fetch handler currently because they don't support upload streaming.
|
|
41
|
-
* reference:
|
|
42
|
-
* * https://bugs.chromium.org/p/chromium/issues/detail?id=688906
|
|
43
|
-
* * https://bugzilla.mozilla.org/show_bug.cgi?id=1387483
|
|
44
|
-
*
|
|
45
|
-
*/
|
|
46
|
-
serialize<T>(input: AsyncIterable<T>, serializer: (event: T) => Message): ReadableStream | AsyncIterable<Uint8Array>;
|
|
47
|
-
}
|
package/dist-types/provider.d.ts
DELETED
package/dist-types/utils.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @internal
|
|
3
|
-
*
|
|
4
|
-
* A util function converting ReadableStream into an async iterable.
|
|
5
|
-
* Reference: https://jakearchibald.com/2017/async-iterators-and-generators/#making-streams-iterate
|
|
6
|
-
*/
|
|
7
|
-
export declare const readableStreamtoIterable: <T>(readableStream: ReadableStream<T>) => AsyncIterable<T>;
|
|
8
|
-
/**
|
|
9
|
-
* @internal
|
|
10
|
-
*
|
|
11
|
-
* A util function converting async iterable to a ReadableStream.
|
|
12
|
-
*/
|
|
13
|
-
export declare const iterableToReadableStream: <T>(asyncIterable: AsyncIterable<T>) => ReadableStream<T>;
|