From 0306e6c7edeefb5b27c6bb486e2b2f03f97131b9 Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Sun, 8 Feb 2026 11:39:18 +0100 Subject: [PATCH] Re-use the `getArrayBuffer` helper from `src/display/fetch_stream.js` with `PDFNodeStreamReader` and `PDFNodeStreamRangeReader` Given that the Node.js code uses standard `ReadableStream`s now, see PR 20594, it can use the same `getArrayBuffer` as the Fetch API implementation. Also, change the `getArrayBuffer` fallback case to an Error (rather than a warning) since that should never actually happen. --- src/display/fetch_stream.js | 7 +++---- src/display/node_stream.js | 14 ++------------ 2 files changed, 5 insertions(+), 16 deletions(-) diff --git a/src/display/fetch_stream.js b/src/display/fetch_stream.js index 932d583b8..4dd9ba276 100644 --- a/src/display/fetch_stream.js +++ b/src/display/fetch_stream.js @@ -13,7 +13,7 @@ * limitations under the License. */ -import { AbortException, assert, warn } from "../shared/util.js"; +import { AbortException, assert } from "../shared/util.js"; import { BasePDFStream, BasePDFStreamRangeReader, @@ -58,8 +58,7 @@ function getArrayBuffer(val) { if (val instanceof ArrayBuffer) { return val; } - warn(`getArrayBuffer - unexpected data format: ${val}`); - return new Uint8Array(val).buffer; + throw new Error(`getArrayBuffer - unexpected data: ${val}`); } class PDFFetchStream extends BasePDFStream { @@ -194,4 +193,4 @@ class PDFFetchStreamRangeReader extends BasePDFStreamRangeReader { } } -export { PDFFetchStream }; +export { getArrayBuffer, PDFFetchStream }; diff --git a/src/display/node_stream.js b/src/display/node_stream.js index a618260cd..0d57ee789 100644 --- a/src/display/node_stream.js +++ b/src/display/node_stream.js @@ -14,13 +14,14 @@ */ /* globals process */ -import { AbortException, assert, warn } from "../shared/util.js"; +import { AbortException, assert } from "../shared/util.js"; import { BasePDFStream, BasePDFStreamRangeReader, BasePDFStreamReader, } from "../shared/base_pdf_stream.js"; import { createResponseError } from "./network_utils.js"; +import { getArrayBuffer } from "./fetch_stream.js"; if (typeof PDFJSDev !== "undefined" && PDFJSDev.test("MOZCENTRAL")) { throw new Error( @@ -44,17 +45,6 @@ function getReadableStream(readStream) { return polyfill.makeDefaultReadableStreamFromNodeReadable(readStream); } -function getArrayBuffer(val) { - if (val instanceof Uint8Array) { - return val.buffer; - } - if (val instanceof ArrayBuffer) { - return val; - } - warn(`getArrayBuffer - unexpected data format: ${val}`); - return new Uint8Array(val).buffer; -} - class PDFNodeStream extends BasePDFStream { constructor(source) { super(source, PDFNodeStreamReader, PDFNodeStreamRangeReader);