diff --git a/eslint.config.cjs b/eslint.config.cjs index 343b0508231..92bdc286c07 100644 --- a/eslint.config.cjs +++ b/eslint.config.cjs @@ -28,7 +28,7 @@ module.exports = [ ], }, - // Configuration for build and config files (CommonJS) - MUST come before js.configs.recommended + // Configuration for build and config files (CommonJS) { files: [ "webpack.config.js", @@ -50,7 +50,7 @@ module.exports = [ }, }, - // Configuration for Vite config files (ES modules) - MUST come before js.configs.recommended + // Configuration for Vite config files (ES modules) { files: [ "openlibrary/components/vite.config.mjs", @@ -68,7 +68,7 @@ module.exports = [ }, }, - // Configuration for Storybook preview files (ES modules) - MUST come before js.configs.recommended + // Configuration for Storybook preview files (ES modules) { files: ["stories/.storybook/preview.js"], languageOptions: { @@ -89,7 +89,7 @@ module.exports = [ // Vue plugin configuration ...vuePlugin.configs["flat/recommended"], - // Base configuration for all JS/Vue files (except config and build files) + // Base configuration for all JS/Vue files { files: ["**/*.js", "**/*.vue"], plugins: { @@ -135,6 +135,12 @@ module.exports = [ "quote-props": ["error", "as-needed"], "keyword-spacing": ["error", { before: true, after: true }], "key-spacing": ["error", { mode: "strict" }], + + // GLOBALLY ENFORCED FORMATTING RULES + "semi": ["error", "always"], + "space-before-function-paren": ["error", "never"], + "comma-spacing": ["error", { "before": false, "after": true }], + "vue/no-mutating-props": "off", "vue/multi-word-component-names": [ "error", @@ -142,7 +148,7 @@ module.exports = [ ignores: ["Bookshelf", "Shelf"], }, ], - // jQuery deprecated rules (from plugin:no-jquery/deprecated) + // jQuery deprecated rules "no-jquery/no-box-model": "warn", "no-jquery/no-browser": "warn", "no-jquery/no-live": "warn", @@ -222,4 +228,82 @@ module.exports = [ }, }, }, + + // TEMPORARY EXEMPTIONS: Turn off new formatting rules for files locked in active PRs + { + files: [ + "openlibrary/components/BarcodeScanner.vue", + "openlibrary/components/BarcodeScanner/components/LazyBookCard.vue", + "openlibrary/components/BarcodeScanner/utils/classes.js", + "openlibrary/components/BulkSearch.vue", + "openlibrary/components/BulkSearch/components/BookCard.vue", + "openlibrary/components/BulkSearch/components/BulkSearchControls.vue", + "openlibrary/components/BulkSearch/components/MatchRow.vue", + "openlibrary/components/BulkSearch/components/MatchTable.vue", + "openlibrary/components/BulkSearch/components/NoBookCard.vue", + "openlibrary/components/BulkSearch/utils/classes.js", + "openlibrary/components/BulkSearch/utils/searchUtils.js", + "openlibrary/components/HelloWorld.vue", + "openlibrary/components/IdentifiersInput.vue", + "openlibrary/components/IdentifiersInput/utils/utils.js", + "openlibrary/components/LibraryExplorer.vue", + "openlibrary/components/LibraryExplorer/components/BookCover3D.vue", + "openlibrary/components/LibraryExplorer/components/BookRoom.vue", + "openlibrary/components/LibraryExplorer/components/BooksCarousel.vue", + "openlibrary/components/LibraryExplorer/components/CSSBox.vue", + "openlibrary/components/LibraryExplorer/components/ClassSlider.vue", + "openlibrary/components/LibraryExplorer/components/DemoA.vue", + "openlibrary/components/LibraryExplorer/components/FlatBookCover.vue", + "openlibrary/components/LibraryExplorer/components/LibraryToolbar.vue", + "openlibrary/components/LibraryExplorer/components/OLCarousel.vue", + "openlibrary/components/LibraryExplorer/components/Shelf.vue", + "openlibrary/components/LibraryExplorer/components/ShelfIndex.vue", + "openlibrary/components/LibraryExplorer/components/ShelfLabel.vue", + "openlibrary/components/LibraryExplorer/components/ShelfProgressBar.vue", + "openlibrary/components/LibraryExplorer/utils.js", + "openlibrary/components/LibraryExplorer/utils/lcc.js", + "openlibrary/components/MergeUI/MergeTable.vue", + "openlibrary/components/MergeUI/utils.js", + "openlibrary/components/ObservationForm/ObservationService.js", + "openlibrary/components/ObservationForm/Utils.js", + "openlibrary/components/lit/OLChip.js", + "openlibrary/components/lit/OLChipGroup.js", + "openlibrary/components/lit/OLReadMore.js", + "openlibrary/components/lit/OlPagination.js", + "openlibrary/components/lit/OlPopover.js", + "openlibrary/components/rollupInputCore.js", + "openlibrary/plugins/openlibrary/js/Browser.js", + "openlibrary/plugins/openlibrary/js/SearchBar.js", + "openlibrary/plugins/openlibrary/js/SearchPage.js", + "openlibrary/plugins/openlibrary/js/SearchUtils.js", + "openlibrary/plugins/openlibrary/js/Toast.js", + "openlibrary/plugins/openlibrary/js/add-book.js", + "openlibrary/plugins/openlibrary/js/add_provider.js", + "openlibrary/plugins/openlibrary/js/admin.js", + "openlibrary/plugins/openlibrary/js/affiliate-links.js", + "openlibrary/plugins/openlibrary/js/autocomplete.js", + "openlibrary/plugins/openlibrary/js/banner/index.js", + "openlibrary/plugins/openlibrary/js/bulk-tagger/BulkTagger.js", + "openlibrary/plugins/openlibrary/js/carousel/Carousel.js", + "openlibrary/plugins/openlibrary/js/carousel/index.js", + "openlibrary/plugins/openlibrary/js/dialog.js", + "openlibrary/plugins/openlibrary/js/edit.js", + "openlibrary/plugins/openlibrary/js/goodreads_import.js", + "openlibrary/plugins/openlibrary/js/i18n.js", + "openlibrary/plugins/openlibrary/js/ile/index.js", + "openlibrary/plugins/openlibrary/js/ile/utils/SelectionManager/SelectionManager.js", + "openlibrary/plugins/openlibrary/js/markdown-editor/index.js", + "openlibrary/plugins/openlibrary/js/merge-request-table/MergeRequestService.js", + "openlibrary/plugins/openlibrary/js/merge.js", + "openlibrary/plugins/openlibrary/js/modals/index.js", + "openlibrary/plugins/openlibrary/js/my-books/MyBooksDropper/ReadingLogForms.js", + "openlibrary/plugins/openlibrary/js/password-toggle.js", + "openlibrary/plugins/openlibrary/js/service-worker-init.js" + ], + rules: { + "semi": "off", + "space-before-function-paren": "off", + "comma-spacing": "off" + } + } ]; diff --git a/openlibrary/components/BulkSearch/utils/samples.js b/openlibrary/components/BulkSearch/utils/samples.js index e9c08adddf5..1d5f9531a85 100644 --- a/openlibrary/components/BulkSearch/utils/samples.js +++ b/openlibrary/components/BulkSearch/utils/samples.js @@ -19,4 +19,4 @@ export const sampleData = [ source: 'https://en.wikipedia.org/wiki/Bibliography_of_the_Holocaust#Historical_studies', text: 'Bauer, Yehuda (1994). Jews for Sale? Nazi-Jewish Negotiations 1933-1945. Yale University Press. ISBN 0-300-06852-2.\nBerenbaum, Michael (1990). A Mosaic of Victims: Non-Jews Persecuted and Murdered by the Nazis.\nBergen, Doris (2009). War and Genocide: Concise History of the Holocaust.\nBlack, Edwin (2010). The Farhud: The Arab-Nazi Alliance in the Holocaust. Dialog Press. ISBN 0-914153-14-5.\nBraham, Randolph (1994) [1981]. The Politics of Genocide: The Holocaust in Hungary. Columbia University Press. ISBN 0-88033-247-6.\nBraham, Randolph (2011). The Auschwitz Reports and the Holocaust in Hungary. Columbia University Press.\nChalmers, Beverley (2015). Birth, Sex and Abuse: Women\'s Voices Under Nazi Rule. Grosvenor House Publishing Ltd. ISBN 1781483531.\nDavies, Norman; Lukas, Richard C. (2001) [1996]. Forgotten Holocaust: The Poles Under German Occupation.\nDean, Martin (2008). Robbing the Jews: The Confiscation of Jewish Property in the Holocaust. Cambridge University Press.\nEvans, Suzanne (2004). Forgotten Crimes: The Holocaust and People with Disabilities.\nFriedländer, Saul (1998). The Years of Persecution: Nazi Germany and the Jews, 1933-1939. Vol. 1.\nGrau, Gunter; Shoppmann, Claudia (1995). The Hidden Holocaust?: Gay and Lesbian Persecution in Germany 1933-45.\nHedgepeth, Sonja; Saidel, Rochelle (2010). Sexual Violence against Jewish Women during the Holocaust.\nPeukert, Detlev (1994). "The Genesis of the \'Final Solution\' from the Spirit of Science". In Thomas Childers; Jane Caplan (eds.). Reevaluating the Third Reich. New York: Holmes & Meier. pp. 234–252. ISBN 0-8419-1178-9.\nRees, Laurence (2017). The Holocaust: A New History. London: Viking Press. ISBN 978-1610398442.\nAméry, Jean (1980). At the Mind\'s Limits: Contemplations by a Survivor on Auschwitz and its Realities.\nBlitz Konig, Nanette (2018). Holocaust Memoirs of a Bergen-Belsen Survivor and Classmate of Anne Frank. Amsterdam Publishers. ISBN 9789492371614.\nDittman, Anita (2005). Trapped in Hitler\'s Hell. ISBN 0-9721512-8-1.\nGerrard, Mady. Full Circle. KLPM. ISBN 978-0955865008.\nKogon, Eugen (1974). Der SS-Staat. Das System der deutschen Konzentrationslager (in German).\nRittner, Carol; Roth, John K. (1998). Different Voices: Women and the Holocaust.\nStojka, Ceija (1988). We Live in Seclusion: The Memories of a Romni.\nSteinberg, Manny (2014). Outcry: Holocaust Memoirs. Amsterdam Publishers. ISBN 978-9-082103137.\nWetzler, Alfréd (2007). Escape from Hell: The True Story of the Auschwitz Protocol. Berghahn Books.\nWinter, Walter (2004). Winter Time: Memoirs of a German Sinto who Survived Auschwitz.\nCzech, Danuta (1999). Auschwitz Chronicle: 1939-1945.\nDean, Martin (1999). Collaboration in the Holocaust: Crimes of the Local Police in Belorussia and Ukraine.\nFings, Karola; Kenrick, Donald, eds. (1999). The Gypsies During the Second World War.\nHogan, David J.; Aretha, David, eds. (2000). The Holocaust Chronicle: A History in Words and Pictures. Lincolnwood, IL: Publications International.\nPressac, Jean-Claude (1989). Auschwitz: Technique and operation of the gas chambers.\nAgamben, Giorgio (1999). Remnants of Auschwitz: The Witness and the Archive.\nBloxham, Donald (2009). The Final Solution: A Genocide.\nLawson, Tom (2010). Debates on the Holocaust. University of Manchester Press.\nLeff, Laurel (2005). Buried By The Times: The Holocaust And America\'s Most Important Newspaper. Cambridge University Press. ISBN 0-521-81287-9.\nMason, Timothy. "Intention and Explanation: A Current Controversy about the Interpretation of National Socialism". In Marrus, Michael R. (ed.). The Nazi Holocaust Part 3, The "Final Solution": The Implementation of Mass Murder. Vol. 1. Westpoint, CT: Mecler. pp. 3–20.\nNiewyk, Donald L. (1992). Holocaust: Problems & Perspective of Interpretation.' } -] +]; diff --git a/openlibrary/components/MergeUI.vue b/openlibrary/components/MergeUI.vue index ff56fcd9913..0a0ced8c1c8 100644 --- a/openlibrary/components/MergeUI.vue +++ b/openlibrary/components/MergeUI.vue @@ -52,13 +52,13 @@