Enable the arrow-body-style ESLint rule

This manually ignores some cases where the resulting auto-formatting would not, as far as I'm concerned, constitute a readability improvement or where we'd just end up with more overall indentation.

Please see https://eslint.org/docs/latest/rules/arrow-body-style
This commit is contained in:
Jonas Jenwald 2024-01-21 15:47:39 +01:00
parent 998184a00e
commit f9a384d711
20 changed files with 78 additions and 82 deletions

View File

@ -242,6 +242,7 @@
}],
// ECMAScript 6
"arrow-body-style": ["error", "as-needed"],
"constructor-super": "error",
"no-class-assign": "error",
"no-const-assign": "error",

View File

@ -79,6 +79,7 @@ class AnnotationFactory {
// with "GoToE" actions, from throwing and thus breaking parsing:
pdfManager.ensureCatalog("attachments"),
]).then(
// eslint-disable-next-line arrow-body-style
([acroForm, xfaDatasets, structTreeRoot, baseUrl, attachments]) => {
return {
pdfManager,
@ -2133,11 +2134,8 @@ class WidgetAnnotation extends Annotation {
value,
};
const encoder = val => {
return isAscii(val)
? val
: stringToUTF16String(val, /* bigEndian = */ true);
};
const encoder = val =>
isAscii(val) ? val : stringToUTF16String(val, /* bigEndian = */ true);
dict.set("V", Array.isArray(value) ? value.map(encoder) : encoder(value));
this.amendSavedDict(annotationStorage, dict);

View File

@ -893,14 +893,13 @@ class Catalog {
case "PrintPageRange":
// The number of elements must be even.
if (Array.isArray(value) && value.length % 2 === 0) {
const isValid = value.every((page, i, arr) => {
return (
const isValid = value.every(
(page, i, arr) =>
Number.isInteger(page) &&
page > 0 &&
(i === 0 || page >= arr[i - 1]) &&
page <= this.numPages
);
});
);
if (isValid) {
prefValue = value;
}

View File

@ -1577,6 +1577,7 @@ class PDFDocument {
} else {
promise = catalog.getPageDict(pageIndex);
}
// eslint-disable-next-line arrow-body-style
promise = promise.then(([pageDict, ref]) => {
return new Page({
pdfManager: this.pdfManager,

View File

@ -1039,14 +1039,15 @@ class PartialEvaluator {
return translated;
})
.catch(reason => {
return new TranslatedFont({
loadedName: "g_font_error",
font: new ErrorFont(`Type3 font load error: ${reason}`),
dict: translated.font,
evaluatorOptions: this.options,
});
});
.catch(
reason =>
new TranslatedFont({
loadedName: "g_font_error",
font: new ErrorFont(`Type3 font load error: ${reason}`),
dict: translated.font,
evaluatorOptions: this.options,
})
);
})
.then(translated => {
state.font = translated.font;
@ -1129,6 +1130,7 @@ class PartialEvaluator {
case "Font":
isSimpleGState = false;
// eslint-disable-next-line arrow-body-style
promise = promise.then(() => {
return this.handleSetFont(
resources,
@ -1154,6 +1156,7 @@ class PartialEvaluator {
if (value instanceof Dict) {
isSimpleGState = false;
// eslint-disable-next-line arrow-body-style
promise = promise.then(() => {
return this.handleSMask(
value,
@ -1214,6 +1217,7 @@ class PartialEvaluator {
fallbackFontDict = null,
cssFontInfo = null
) {
// eslint-disable-next-line arrow-body-style
const errorFont = async () => {
return new TranslatedFont({
loadedName: "g_font_error",

View File

@ -129,12 +129,10 @@ function getRelevant(data) {
return data
.trim()
.split(/\s+/)
.map(e => {
return {
excluded: e[0] === "-",
viewname: e.substring(1),
};
});
.map(e => ({
excluded: e[0] === "-",
viewname: e.substring(1),
}));
}
function getColor(data, def = [0, 0, 0]) {

View File

@ -1838,9 +1838,10 @@ class ChoiceWidgetAnnotationElement extends WidgetAnnotationElement {
const getItems = event => {
const options = event.target.options;
return Array.prototype.map.call(options, option => {
return { displayValue: option.textContent, exportValue: option.value };
});
return Array.prototype.map.call(options, option => ({
displayValue: option.textContent,
exportValue: option.value,
}));
};
if (this.enableScripting && this.hasJSActions) {

View File

@ -3013,14 +3013,12 @@ class WorkerTransport {
}
const promise = this.messageHandler
.sendWithPromise(name, null)
.then(results => {
return {
info: results[0],
metadata: results[1] ? new Metadata(results[1]) : null,
contentDispositionFilename: this._fullReader?.filename ?? null,
contentLength: this._fullReader?.contentLength ?? null,
};
});
.then(results => ({
info: results[0],
metadata: results[1] ? new Metadata(results[1]) : null,
contentDispositionFilename: this._fullReader?.filename ?? null,
contentLength: this._fullReader?.contentLength ?? null,
}));
this.#methodPromises.set(name, promise);
return promise;
}

View File

@ -2359,8 +2359,8 @@ class CanvasGraphics {
const color = IR[1];
const baseTransform = this.baseTransform || getCurrentTransform(this.ctx);
const canvasGraphicsFactory = {
createCanvasGraphics: ctx => {
return new CanvasGraphics(
createCanvasGraphics: ctx =>
new CanvasGraphics(
ctx,
this.commonObjs,
this.objs,
@ -2370,8 +2370,7 @@ class CanvasGraphics {
optionalContentConfig: this.optionalContentConfig,
markedContentStack: this.markedContentStack,
}
);
},
),
};
pattern = new TilingPattern(
IR,

View File

@ -466,15 +466,13 @@ class DOMCMapReaderFactory extends BaseCMapReaderFactory {
return fetchData(
url,
/* type = */ this.isCompressed ? "arraybuffer" : "text"
).then(data => {
return {
cMapData:
data instanceof ArrayBuffer
? new Uint8Array(data)
: stringToBytes(data),
compressionType,
};
});
).then(data => ({
cMapData:
data instanceof ArrayBuffer
? new Uint8Array(data)
: stringToBytes(data),
compressionType,
}));
}
}

View File

@ -606,15 +606,14 @@ class AnnotationEditorUIManager {
static get _keyboardManager() {
const proto = AnnotationEditorUIManager.prototype;
const arrowChecker = self => {
// If the focused element is an input, we don't want to handle the arrow.
// For example, sliders can be controlled with the arrow keys.
return (
self.#container.contains(document.activeElement) &&
document.activeElement.tagName !== "BUTTON" &&
self.hasSomethingToControl()
);
};
/**
* If the focused element is an input, we don't want to handle the arrow.
* For example, sliders can be controlled with the arrow keys.
*/
const arrowChecker = self =>
self.#container.contains(document.activeElement) &&
document.activeElement.tagName !== "BUTTON" &&
self.hasSomethingToControl();
const textInputChecker = (_self, { target: el }) => {
if (el instanceof HTMLInputElement) {

View File

@ -98,9 +98,7 @@ class NodeCMapReaderFactory extends BaseCMapReaderFactory {
* @ignore
*/
_fetchData(url, compressionType) {
return fetchData(url).then(data => {
return { cMapData: data, compressionType };
});
return fetchData(url).then(data => ({ cMapData: data, compressionType }));
}
}

View File

@ -1039,9 +1039,9 @@ function normalizeUnicode(str) {
/([\u00a0\u00b5\u037e\u0eb3\u2000-\u200a\u202f\u2126\ufb00-\ufb04\ufb06\ufb20-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufba1\ufba4-\ufba9\ufbae-\ufbb1\ufbd3-\ufbdc\ufbde-\ufbe7\ufbea-\ufbf8\ufbfc-\ufbfd\ufc00-\ufc5d\ufc64-\ufcf1\ufcf5-\ufd3d\ufd88\ufdf4\ufdfa-\ufdfb\ufe71\ufe77\ufe79\ufe7b\ufe7d]+)|(\ufb05+)/gu;
NormalizationMap = new Map([["ſt", "ſt"]]);
}
return str.replaceAll(NormalizeRegex, (_, p1, p2) => {
return p1 ? p1.normalize("NFKC") : NormalizationMap.get(p2);
});
return str.replaceAll(NormalizeRegex, (_, p1, p2) =>
p1 ? p1.normalize("NFKC") : NormalizationMap.get(p2)
);
}
function getUuid() {

View File

@ -106,6 +106,7 @@ async function inlineImages(node, silentErrors = false) {
}
return response.blob();
})
// eslint-disable-next-line arrow-body-style
.then(blob => {
return new Promise((resolve, reject) => {
const reader = new FileReader();
@ -117,6 +118,7 @@ async function inlineImages(node, silentErrors = false) {
reader.readAsDataURL(blob);
});
})
// eslint-disable-next-line arrow-body-style
.then(dataUrl => {
return new Promise((resolve, reject) => {
image.onload = resolve;

View File

@ -38,8 +38,8 @@ const getXY = (page, selector) =>
return `${bbox.x}::${bbox.y}`;
}, selector);
const getSpanRectFromText = (page, pageNumber, text) => {
return page.evaluate(
const getSpanRectFromText = (page, pageNumber, text) =>
page.evaluate(
(number, content) => {
for (const el of document.querySelectorAll(
`.page[data-page-number="${number}"] > .textLayer > span`
@ -54,7 +54,6 @@ const getSpanRectFromText = (page, pageNumber, text) => {
pageNumber,
text
);
};
describe("Highlight Editor", () => {
describe("Editor must be removed without exception", () => {

View File

@ -265,9 +265,10 @@ async function serializeBitmapDimensions(page) {
const { map } =
window.PDFViewerApplication.pdfDocument.annotationStorage.serializable;
return map
? Array.from(map.values(), x => {
return { width: x.bitmap.width, height: x.bitmap.height };
})
? Array.from(map.values(), x => ({
width: x.bitmap.width,
height: x.bitmap.height,
}))
: [];
});
}

View File

@ -2689,9 +2689,7 @@ describe("api", function () {
const viewPromises = [];
for (let i = 0; i < numPages; i++) {
viewPromises[i] = pdfDoc.getPage(i + 1).then(pdfPage => {
return pdfPage.view;
});
viewPromises[i] = pdfDoc.getPage(i + 1).then(pdfPage => pdfPage.view);
}
const [page1, page2, page3] = await Promise.all(viewPromises);
@ -3412,7 +3410,9 @@ Caron Broadcasting, Inc., an Ohio corporation (“Lessee”).`)
})
);
// eslint-disable-next-line arrow-body-style
const result1 = loadingTask1.promise.then(pdfDoc => {
// eslint-disable-next-line arrow-body-style
return pdfDoc.getPage(1).then(pdfPage => {
return pdfPage.getOperatorList().then(opList => {
expect(opList.fnArray.length).toBeGreaterThan(100);
@ -3425,7 +3425,9 @@ Caron Broadcasting, Inc., an Ohio corporation (“Lessee”).`)
});
});
// eslint-disable-next-line arrow-body-style
const result2 = loadingTask2.promise.then(pdfDoc => {
// eslint-disable-next-line arrow-body-style
return pdfDoc.getPage(1).then(pdfPage => {
return pdfPage.getOperatorList().then(opList => {
expect(opList.fnArray.length).toEqual(0);

View File

@ -152,14 +152,12 @@ describe("Scripting", function () {
});
it("should get field using a path", async () => {
const base = value => {
return {
id: getId(),
value,
actions: {},
type: "text",
};
};
const base = value => ({
id: getId(),
value,
actions: {},
type: "text",
});
const data = {
objects: {
A: [base(1)],

View File

@ -129,6 +129,7 @@ class PDFDocumentProperties {
this.#parseFileSize(contentLength),
this.#parseDate(info.CreationDate),
this.#parseDate(info.ModDate),
// eslint-disable-next-line arrow-body-style
this.pdfDocument.getPage(currentPageNumber).then(pdfPage => {
return this.#parsePageSize(getPageSizeInches(pdfPage), pagesRotation);
}),

View File

@ -842,12 +842,11 @@ class PDFFindController {
const extractTextCapability = new PromiseCapability();
this._extractTextPromises[i] = extractTextCapability.promise;
// eslint-disable-next-line arrow-body-style
promise = promise.then(() => {
return this._pdfDocument
.getPage(i + 1)
.then(pdfPage => {
return pdfPage.getTextContent(textOptions);
})
.then(pdfPage => pdfPage.getTextContent(textOptions))
.then(
textContent => {
const strBuf = [];