1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-22 16:18:08 +02:00

Merge pull request #15887 from Snuffleupagus/rm-setPDFNetworkStreamFactory

Inline the `setPDFNetworkStreamFactory` functionality in `src/display/api.js`
This commit is contained in:
Tim van der Meij 2023-01-07 13:16:23 +01:00 committed by GitHub
commit 69113f08f2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 32 additions and 80 deletions

View file

@ -82,32 +82,37 @@ if (typeof PDFJSDev !== "undefined" && PDFJSDev.test("GENERIC") && isNodeJS) {
DefaultStandardFontDataFactory = NodeStandardFontDataFactory;
}
/**
* @typedef {function} IPDFStreamFactory
* @param {DocumentInitParameters} params - The document initialization
* parameters. The "url" key is always present.
* @returns {Promise} A promise, which is resolved with an instance of
* {IPDFStream}.
* @ignore
*/
/**
* @type {IPDFStreamFactory}
* @private
*/
let createPDFNetworkStream;
if (typeof PDFJSDev === "undefined" || !PDFJSDev.test("PRODUCTION")) {
const streamsPromise = Promise.all([
import("./network.js"),
import("./fetch_stream.js"),
]);
/**
* Sets the function that instantiates an {IPDFStream} as an alternative PDF
* data transport.
*
* @param {IPDFStreamFactory} pdfNetworkStreamFactory - The factory function
* that takes document initialization parameters (including a "url") and
* returns a promise which is resolved with an instance of {IPDFStream}.
* @ignore
*/
function setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {
createPDFNetworkStream = pdfNetworkStreamFactory;
createPDFNetworkStream = async params => {
const [{ PDFNetworkStream }, { PDFFetchStream }] = await streamsPromise;
return isValidFetchUrl(params.url)
? new PDFFetchStream(params)
: new PDFNetworkStream(params);
};
} else if (PDFJSDev.test("GENERIC || CHROME")) {
if (PDFJSDev.test("GENERIC") && isNodeJS) {
const { PDFNodeStream } = require("./node_stream.js");
createPDFNetworkStream = params => {
return new PDFNodeStream(params);
};
} else {
const { PDFNetworkStream } = require("./network.js");
const { PDFFetchStream } = require("./fetch_stream.js");
createPDFNetworkStream = params => {
return isValidFetchUrl(params.url)
? new PDFFetchStream(params)
: new PDFNetworkStream(params);
};
}
}
/**
@ -442,6 +447,9 @@ function getDocument(src) {
rangeTransport
);
} else if (!params.data) {
if (typeof PDFJSDev !== "undefined" && PDFJSDev.test("MOZCENTRAL")) {
throw new Error("Not implemented: createPDFNetworkStream");
}
networkStream = createPDFNetworkStream({
url: params.url,
length: params.length,
@ -3353,6 +3361,5 @@ export {
PDFWorker,
PDFWorkerUtil,
RenderTask,
setPDFNetworkStreamFactory,
version,
};

View file

@ -48,7 +48,6 @@ import {
getDocument,
PDFDataRangeTransport,
PDFWorker,
setPDFNetworkStreamFactory,
version,
} from "./display/api.js";
import {
@ -57,7 +56,6 @@ import {
getXfaPageViewport,
isDataScheme,
isPdfFile,
isValidFetchUrl,
loadScript,
PDFDateString,
PixelsPerInch,
@ -69,7 +67,6 @@ import { AnnotationEditorLayer } from "./display/editor/annotation_editor_layer.
import { AnnotationEditorUIManager } from "./display/editor/tools.js";
import { AnnotationLayer } from "./display/annotation_layer.js";
import { GlobalWorkerOptions } from "./display/worker_options.js";
import { isNodeJS } from "./shared/is_node.js";
import { SVGGraphics } from "./display/svg.js";
import { XfaLayer } from "./display/xfa_layer.js";
@ -80,39 +77,6 @@ const pdfjsVersion =
const pdfjsBuild =
typeof PDFJSDev !== "undefined" ? PDFJSDev.eval("BUNDLE_BUILD") : void 0;
if (typeof PDFJSDev === "undefined" || !PDFJSDev.test("PRODUCTION")) {
const streamsPromise = Promise.all([
import("pdfjs/display/network.js"),
import("pdfjs/display/fetch_stream.js"),
]);
setPDFNetworkStreamFactory(async params => {
const [{ PDFNetworkStream }, { PDFFetchStream }] = await streamsPromise;
if (isValidFetchUrl(params.url)) {
return new PDFFetchStream(params);
}
return new PDFNetworkStream(params);
});
} else if (PDFJSDev.test("GENERIC || CHROME")) {
if (PDFJSDev.test("GENERIC") && isNodeJS) {
const { PDFNodeStream } = require("./display/node_stream.js");
setPDFNetworkStreamFactory(params => {
return new PDFNodeStream(params);
});
} else {
const { PDFNetworkStream } = require("./display/network.js");
const { PDFFetchStream } = require("./display/fetch_stream.js");
setPDFNetworkStreamFactory(params => {
if (isValidFetchUrl(params.url)) {
return new PDFFetchStream(params);
}
return new PDFNetworkStream(params);
});
}
}
export {
AbortException,
AnnotationEditorLayer,