Merge pull request #21607 from Snuffleupagus/viewerPreferences-Map

[api-minor] Convert `getViewerPreferences` to return data in a Map
This commit is contained in:
Jonas Jenwald 2026-07-20 22:14:55 +02:00 committed by GitHub
commit 028c02f539
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 14 additions and 14 deletions

View File

@ -1,5 +1,5 @@
{
"stableVersion": "6.1.200",
"baseVersion": "b168293c173b0b9befe462c0b254136cf038c3ef",
"versionPrefix": "6.1."
"baseVersion": "eddd70a2ca1054ad2e0792972c3f2774b89f0cd2",
"versionPrefix": "6.2."
}

View File

@ -1076,17 +1076,18 @@ class Catalog {
break;
case "PrintPageRange":
// The number of elements must be even.
if (Array.isArray(value) && value.length % 2 === 0) {
const isValid = value.every(
if (
Array.isArray(value) &&
value.length % 2 === 0 &&
value.every(
(page, i, arr) =>
Number.isInteger(page) &&
page > 0 &&
(i === 0 || page >= arr[i - 1]) &&
page <= this.numPages
);
if (isValid) {
prefValue = value;
}
)
) {
prefValue = value;
}
break;
case "NumCopies":
@ -1103,8 +1104,7 @@ class Catalog {
warn(`Bad value, for key "${key}", in ViewerPreferences: ${value}.`);
continue;
}
prefs ??= Object.create(null);
prefs[key] = prefValue;
(prefs ??= new Map()).set(key, prefValue);
}
return shadow(this, "viewerPreferences", prefs);
}

View File

@ -820,9 +820,9 @@ class PDFDocumentProxy {
}
/**
* @returns {Promise<Object | null>} A promise that is resolved with an
* {Object} containing the viewer preferences, or `null` when no viewer
* preferences are present in the PDF file.
* @returns {Promise<Map | null>} A promise that is resolved with a {Map}
* containing the viewer preferences, or `null` when no viewer preferences
* are present in the PDF file.
*/
getViewerPreferences() {
return this._transport.getViewerPreferences();

View File

@ -1760,7 +1760,7 @@ describe("api", function () {
it("gets non-default viewer preferences", async function () {
const prefs = await pdfDocument.getViewerPreferences();
expect(prefs).toEqual({ Direction: "L2R" });
expect(prefs).toEqual(new Map([["Direction", "L2R"]]));
});
it("gets default open action", async function () {