Enable the no-nested-ternary ESLint rule in the web/ directory

This rule is already enabled in mozilla-central, and helps avoid some confusing formatting[1], see https://searchfox.org/mozilla-central/rev/a92ed79b0bc746159fc31af1586adbfa9e45e264/tools/lint/eslint/eslint-plugin-mozilla/lib/configs/recommended.js#209-210

Since some cases may not be aren't entirely straightforward to convert, and some we probably don't want to change either[2], this patch is limited to the `web/` directory as a proof-of-concept.

Please find additional details about the ESLint rule at https://eslint.org/docs/rules/no-nested-ternary

---
[1] One example with *three* ternary statements: 93aa613db7/src/core/fonts.js (L2623-L2630)

[2] One example that should be whitelisted: 93aa613db7/src/core/jbig2.js (L82-L92)
This commit is contained in:
Jonas Jenwald 2020-01-08 11:56:10 +01:00
parent 93aa613db7
commit 1ceffac9c5
3 changed files with 16 additions and 12 deletions

View File

@ -136,6 +136,7 @@
"new-cap": ["error", { "newIsCap": true, "capIsNew": false, }], "new-cap": ["error", { "newIsCap": true, "capIsNew": false, }],
"no-array-constructor": "error", "no-array-constructor": "error",
"no-multiple-empty-lines": ["error", { "max": 1, "maxEOF": 0, "maxBOF": 1, }], "no-multiple-empty-lines": ["error", { "max": 1, "maxEOF": 0, "maxBOF": 1, }],
"no-nested-ternary": "off",
"no-new-object": "error", "no-new-object": "error",
"spaced-comment": ["error", "always", { "spaced-comment": ["error", "always", {
"block": { "block": {

View File

@ -7,6 +7,9 @@
// Plugins // Plugins
"import/no-unresolved": ["error", { "ignore": ["pdfjs-lib"]}], "import/no-unresolved": ["error", { "ignore": ["pdfjs-lib"]}],
// Stylistic Issues
"no-nested-ternary": "error",
// ECMAScript 6 // ECMAScript 6
"no-var": "error", "no-var": "error",
"prefer-const": "error", "prefer-const": "error",

View File

@ -1375,11 +1375,10 @@ const PDFViewerApplication = {
}); });
} }
const formType = !info.IsAcroFormPresent let formType = null;
? null if (info.IsAcroFormPresent) {
: info.IsXFAPresent formType = info.IsXFAPresent ? "xfa" : "acroform";
? "xfa" }
: "acroform";
this.externalServices.reportTelemetry({ this.externalServices.reportTelemetry({
type: "documentInfo", type: "documentInfo",
version: versionId, version: versionId,
@ -2066,13 +2065,14 @@ function webViewerNamedAction(evt) {
} }
} }
function webViewerPresentationModeChanged(evt) { function webViewerPresentationModeChanged({ active, switchInProgress }) {
const { active, switchInProgress } = evt; let state = PresentationModeState.NORMAL;
PDFViewerApplication.pdfViewer.presentationModeState = switchInProgress if (switchInProgress) {
? PresentationModeState.CHANGING state = PresentationModeState.CHANGING;
: active } else if (active) {
? PresentationModeState.FULLSCREEN state = PresentationModeState.FULLSCREEN;
: PresentationModeState.NORMAL; }
PDFViewerApplication.pdfViewer.presentationModeState = state;
} }
function webViewerSidebarViewChanged(evt) { function webViewerSidebarViewChanged(evt) {