123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- 'use strict';
- const parseChunked = require('./parse-chunked.cjs');
- const stringifyChunked = require('./stringify-chunked.cjs');
- const utils = require('./utils.cjs');
- function parseFromWebStream(stream) {
-
-
-
- return parseChunked.parseChunked(utils.isIterable(stream) ? stream : async function*() {
- const reader = stream.getReader();
- try {
- while (true) {
- const { value, done } = await reader.read();
- if (done) {
- break;
- }
- yield value;
- }
- } finally {
- reader.releaseLock();
- }
- });
- }
- function createStringifyWebStream(value, replacer, space) {
-
-
- if (typeof ReadableStream.from === 'function') {
- return ReadableStream.from(stringifyChunked.stringifyChunked(value, replacer, space));
- }
-
- return new ReadableStream({
- start() {
- this.generator = stringifyChunked.stringifyChunked(value, replacer, space);
- },
- pull(controller) {
- const { value, done } = this.generator.next();
- if (done) {
- controller.close();
- } else {
- controller.enqueue(value);
- }
- },
- cancel() {
- this.generator = null;
- }
- });
- }
- exports.createStringifyWebStream = createStringifyWebStream;
- exports.parseFromWebStream = parseFromWebStream;
|