From 6aab7d1d70c8ca305def259644e3010d07404c06 Mon Sep 17 00:00:00 2001 From: Phil Pluckthun Date: Sun, 14 Aug 2022 12:40:43 +0100 Subject: [PATCH] temp: Implement fetchSource as async iterator --- package.json | 5 +- packages/core/src/internal/fetchSource.ts | 254 ++++++++++------------ wonka-v6.0.1-rc-iterables.tgz | Bin 0 -> 40722 bytes yarn.lock | 7 +- 4 files changed, 121 insertions(+), 145 deletions(-) create mode 100644 wonka-v6.0.1-rc-iterables.tgz diff --git a/package.json b/package.json index 8f0671447e..8c0fa7e59a 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "react": "^17.0.2", "react-dom": "^17.0.2", "react-is": "^17.0.2", - "wonka": "^6.0.0" + "wonka": "./wonka-v6.0.1-rc-iterables.tgz" }, "devDependencies": { "@actions/artifact": "^0.5.1", @@ -115,5 +115,8 @@ "tar": "^6.1.0", "terser": "^5.14.1", "typescript": "^4.7.3" + }, + "dependencies": { + "wonka": "./wonka-v6.0.1-rc-iterables.tgz" } } diff --git a/packages/core/src/internal/fetchSource.ts b/packages/core/src/internal/fetchSource.ts index aaeb1a7d75..bef416f9d6 100644 --- a/packages/core/src/internal/fetchSource.ts +++ b/packages/core/src/internal/fetchSource.ts @@ -1,14 +1,12 @@ -import { Source, make } from 'wonka'; +import { Source, fromAsyncIterable } from 'wonka'; import { Operation, OperationResult } from '../types'; import { makeResult, makeErrorResult, mergeResultPatch } from '../utils'; -const asyncIterator = - typeof Symbol !== 'undefined' ? Symbol.asyncIterator : null; const decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder() : null; const jsonHeaderRe = /content-type:[^\r\n]*application\/json/i; const boundaryHeaderRe = /boundary="?([^=";]+)"?/i; -type ChunkData = { done: false; value: Buffer | Uint8Array } | { done: true }; +type ChunkData = Buffer | Uint8Array; // NOTE: We're avoiding referencing the `Buffer` global here to prevent // auto-polyfilling in Webpack @@ -17,168 +15,144 @@ const toString = (input: Buffer | ArrayBuffer): string => ? (input as Buffer).toString() : decoder!.decode(input as ArrayBuffer); -export const makeFetchSource = ( +async function* fetchOperation( operation: Operation, url: string, fetchOptions: RequestInit -): Source => { +) { const maxStatus = fetchOptions.redirect === 'manual' ? 400 : 300; const fetcher = operation.context.fetch; - return make(({ next, complete }) => { - const abortController = - typeof AbortController !== 'undefined' ? new AbortController() : null; - if (abortController) { + let abortController: AbortController | void; + let response: Response; + let hasResults = false; + let statusNotOk = false; + + try { + if (typeof AbortController !== 'undefined') { + abortController = new AbortController(); fetchOptions.signal = abortController.signal; } - let hasResults = false; - // DERIVATIVE: Copyright (c) 2021 Marais Rossouw - // See: https://github.com/maraisr/meros/blob/219fe95/src/browser.ts - const executeIncrementalFetch = ( - onResult: (result: OperationResult) => void, - operation: Operation, - response: Response - ): Promise => { - // NOTE: Guarding against fetch polyfills here - const contentType = - (response.headers && response.headers.get('Content-Type')) || ''; - if (/text\//i.test(contentType)) { - return response.text().then(text => { - onResult(makeErrorResult(operation, new Error(text), response)); - }); - } else if (!/multipart\/mixed/i.test(contentType)) { - return response.text().then(payload => { - onResult(makeResult(operation, JSON.parse(payload), response)); - }); - } - - let boundary = '---'; - const boundaryHeader = contentType.match(boundaryHeaderRe); - if (boundaryHeader) boundary = '--' + boundaryHeader[1]; + response = await (fetcher || fetch)(url, fetchOptions); + statusNotOk = response.status < 200 || response.status >= maxStatus; + + const contentType = + (response.headers && response.headers.get('Content-Type')) || ''; + if (/text\//i.test(contentType)) { + const text = await response.text(); + return yield makeErrorResult(operation, new Error(text), response); + } else if (!/multipart\/mixed/i.test(contentType)) { + const text = await response.text(); + return yield makeResult(operation, JSON.parse(text), response); + } - let read: () => Promise; - let cancel = () => { - /*noop*/ + let boundary = '---'; + const boundaryHeader = contentType.match(boundaryHeaderRe); + if (boundaryHeader) boundary = '--' + boundaryHeader[1]; + + let iterator: AsyncIterableIterator; + if (response[Symbol.asyncIterator]) { + iterator = response[Symbol.asyncIterator](); + } else if (response.body) { + const reader = response.body.getReader(); + iterator = { + next() { + return reader.read() as Promise>; + }, + async return() { + await reader.cancel(); + return { done: true } as IteratorReturnResult; + }, + [Symbol.asyncIterator]() { + return iterator; + }, }; - if (asyncIterator && response[asyncIterator]) { - const iterator = response[asyncIterator](); - read = iterator.next.bind(iterator); - } else if ('body' in response && response.body) { - const reader = response.body.getReader(); - cancel = reader.cancel.bind(reader); - read = reader.read.bind(reader); - } else { - throw new TypeError('Streaming requests unsupported'); - } + } else { + throw new TypeError('Streaming requests unsupported'); + } + try { let buffer = ''; let isPreamble = true; let nextResult: OperationResult | null = null; let prevResult: OperationResult | null = null; + for await (const data of iterator) { + hasResults = true; - function next(data: ChunkData): Promise | void { - if (!data.done) { - const chunk = toString(data.value); - let boundaryIndex = chunk.indexOf(boundary); - if (boundaryIndex > -1) { - boundaryIndex += buffer.length; - } else { - boundaryIndex = buffer.indexOf(boundary); - } + const chunk = toString(data); + let boundaryIndex = chunk.indexOf(boundary); + if (boundaryIndex > -1) { + boundaryIndex += buffer.length; + } else { + boundaryIndex = buffer.indexOf(boundary); + } - buffer += chunk; - while (boundaryIndex > -1) { - const current = buffer.slice(0, boundaryIndex); - const next = buffer.slice(boundaryIndex + boundary.length); - - if (isPreamble) { - isPreamble = false; - } else { - const headersEnd = current.indexOf('\r\n\r\n') + 4; - const headers = current.slice(0, headersEnd); - const body = current.slice( - headersEnd, - current.lastIndexOf('\r\n') - ); - - let payload: any; - if (jsonHeaderRe.test(headers)) { - try { - payload = JSON.parse(body); - nextResult = prevResult = prevResult - ? mergeResultPatch(prevResult, payload, response) - : makeResult(operation, payload, response); - } catch (_error) {} - } - - if (next.slice(0, 2) === '--' || (payload && !payload.hasNext)) { - if (!prevResult) - return onResult(makeResult(operation, {}, response)); - break; - } + buffer += chunk; + while (boundaryIndex > -1) { + const current = buffer.slice(0, boundaryIndex); + const next = buffer.slice(boundaryIndex + boundary.length); + + if (isPreamble) { + isPreamble = false; + } else { + const headersEnd = current.indexOf('\r\n\r\n') + 4; + const headers = current.slice(0, headersEnd); + const body = current.slice(headersEnd, current.lastIndexOf('\r\n')); + + let payload: any; + if (jsonHeaderRe.test(headers)) { + try { + payload = JSON.parse(body); + nextResult = prevResult = prevResult + ? mergeResultPatch(prevResult, payload, response) + : makeResult(operation, payload, response); + } catch (_error) {} } - buffer = next; - boundaryIndex = buffer.indexOf(boundary); + if (next.slice(0, 2) === '--' || (payload && !payload.hasNext)) { + if (!prevResult) yield makeResult(operation, {}, response); + break; + } } - } else { - hasResults = true; + + buffer = next; + boundaryIndex = buffer.indexOf(boundary); } if (nextResult) { - onResult(nextResult); + yield nextResult; nextResult = null; } - - if (!data.done && (!prevResult || prevResult.hasNext)) { - return read().then(next); - } } + } finally { + iterator.return?.(); + } + } catch (error: any) { + if (hasResults) { + throw error; + } - return read().then(next).finally(cancel); - }; - - let ended = false; - let statusNotOk = false; - let response: Response; - - Promise.resolve() - .then(() => { - if (ended) return; - return (fetcher || fetch)(url, fetchOptions); - }) - .then((_response: Response | void) => { - if (!_response) return; - response = _response; - statusNotOk = response.status < 200 || response.status >= maxStatus; - return executeIncrementalFetch(next, operation, response); - }) - .then(complete) - .catch((error: Error) => { - if (hasResults) { - throw error; - } + yield makeErrorResult( + operation, + statusNotOk + ? response!.statusText + ? new Error(response!.statusText) + : error + : error, + response! + ); + } finally { + if (abortController) { + abortController.abort(); + } + } +} - const result = makeErrorResult( - operation, - statusNotOk - ? response.statusText - ? new Error(response.statusText) - : error - : error, - response - ); - - next(result); - complete(); - }); - - return () => { - ended = true; - if (abortController) { - abortController.abort(); - } - }; - }); -}; +export function makeFetchSource( + operation: Operation, + url: string, + fetchOptions: RequestInit +): Source { + return fromAsyncIterable(fetchOperation(operation, url, fetchOptions)); +} diff --git a/wonka-v6.0.1-rc-iterables.tgz b/wonka-v6.0.1-rc-iterables.tgz new file mode 100644 index 0000000000000000000000000000000000000000..9d76b4e75b290c9e687a487741e3945aafa65b73 GIT binary patch literal 40722 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 ag!1OM`E7oi-{!ZB-~R{xvEo_))&l^S;YmFJ literal 0 HcmV?d00001 diff --git a/yarn.lock b/yarn.lock index f3637da4d4..941d1bef30 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17538,10 +17538,9 @@ windows-release@^3.1.0: dependencies: execa "^1.0.0" -"wonka@>= 4.0.9", wonka@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/wonka/-/wonka-6.0.0.tgz#38cd39a517fc3ff721ea3bf353642b353bf48860" - integrity sha512-TEiIOqkhQXbcmL1RrjxPCzTX15V5FSyJvZRSiTxvgTgrJMaOVKmzGTdRVh349CfaNo9dsIhWDyg1/GNq4NWrEg== +wonka@./wonka-v6.0.1-rc-iterables.tgz, "wonka@>= 4.0.9", wonka@^6.0.0: + version "6.0.1-rc-iterables" + resolved "./wonka-v6.0.1-rc-iterables.tgz#927222feca605a28de4168a42b4c5fb1169f211c" word-wrap@^1.2.3, word-wrap@~1.2.3: version "1.2.3"