Merge pull request #17052 from Snuffleupagus/web-pdfjsLib-export

Use a standard `export` statement in the `web/pdfjs.js` file
This commit is contained in:
Tim van der Meij 2023-10-01 12:09:36 +02:00 committed by GitHub
commit 71bffcc7a9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 158 additions and 49 deletions

View File

@ -23,6 +23,7 @@ import {
FeatureTest,
ImageKind,
InvalidPDFException,
isNodeJS,
MissingPDFException,
normalizeUnicode,
OPS,
@ -66,18 +67,7 @@ import { AnnotationLayer } from "../../src/display/annotation_layer.js";
import { GlobalWorkerOptions } from "../../src/display/worker_options.js";
import { XfaLayer } from "../../src/display/xfa_layer.js";
describe("pdfjs_api", function () {
it("checks that the *official* PDF.js API exposes the expected functionality", async function () {
// eslint-disable-next-line no-unsanitized/method
const pdfjsAPI = await import(
typeof PDFJSDev !== "undefined" && PDFJSDev.test("LIB")
? "../../pdf.js"
: "../../src/pdf.js"
);
// The imported Object contains an (automatically) inserted Symbol,
// hence we copy the data to allow using a simple comparison below.
expect({ ...pdfjsAPI }).toEqual({
const expectedAPI = Object.freeze({
AbortException,
AnnotationEditorLayer,
AnnotationEditorParamsType,
@ -123,5 +113,35 @@ describe("pdfjs_api", function () {
version,
XfaLayer,
});
describe("pdfjs_api", function () {
it("checks that the *official* PDF.js API exposes the expected functionality", async function () {
// eslint-disable-next-line no-unsanitized/method
const pdfjsAPI = await import(
typeof PDFJSDev !== "undefined" && PDFJSDev.test("LIB")
? "../../pdf.js"
: "../../src/pdf.js"
);
// The imported Object contains an (automatically) inserted Symbol,
// hence we copy the data to allow using a simple comparison below.
expect({ ...pdfjsAPI }).toEqual(expectedAPI);
});
});
describe("web_pdfjsLib", function () {
it("checks that the viewer re-exports the expected API functionality", async function () {
if (isNodeJS) {
pending("loadScript is not supported in Node.js.");
}
await loadScript(
"../../build/generic/build/pdf.js",
/* removeScriptElement = */ true
);
const webPdfjsLib = await import("../../web/pdfjs.js");
expect(Object.keys(webPdfjsLib).sort()).toEqual(
Object.keys(expectedAPI).sort()
);
});
});

View File

@ -12,8 +12,97 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/* globals module */
"use strict";
const {
AbortException,
AnnotationEditorLayer,
AnnotationEditorParamsType,
AnnotationEditorType,
AnnotationEditorUIManager,
AnnotationLayer,
AnnotationMode,
build,
CMapCompressionType,
createValidAbsoluteUrl,
DOMSVGFactory,
FeatureTest,
getDocument,
getFilenameFromUrl,
getPdfFilenameFromUrl,
getXfaPageViewport,
GlobalWorkerOptions,
ImageKind,
InvalidPDFException,
isDataScheme,
isPdfFile,
loadScript,
MissingPDFException,
noContextMenu,
normalizeUnicode,
OPS,
PasswordResponses,
PDFDataRangeTransport,
PDFDateString,
PDFWorker,
PermissionFlag,
PixelsPerInch,
PromiseCapability,
RenderingCancelledException,
renderTextLayer,
setLayerDimensions,
shadow,
SVGGraphics,
UnexpectedResponseException,
updateTextLayer,
Util,
VerbosityLevel,
version,
XfaLayer,
} = globalThis.pdfjsLib;
module.exports = globalThis.pdfjsLib;
export {
AbortException,
AnnotationEditorLayer,
AnnotationEditorParamsType,
AnnotationEditorType,
AnnotationEditorUIManager,
AnnotationLayer,
AnnotationMode,
build,
CMapCompressionType,
createValidAbsoluteUrl,
DOMSVGFactory,
FeatureTest,
getDocument,
getFilenameFromUrl,
getPdfFilenameFromUrl,
getXfaPageViewport,
GlobalWorkerOptions,
ImageKind,
InvalidPDFException,
isDataScheme,
isPdfFile,
loadScript,
MissingPDFException,
noContextMenu,
normalizeUnicode,
OPS,
PasswordResponses,
PDFDataRangeTransport,
PDFDateString,
PDFWorker,
PermissionFlag,
PixelsPerInch,
PromiseCapability,
RenderingCancelledException,
renderTextLayer,
setLayerDimensions,
shadow,
SVGGraphics,
UnexpectedResponseException,
updateTextLayer,
Util,
VerbosityLevel,
version,
XfaLayer,
};