From 16958db8cead194b02caa04cb65a9fa43633277c Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Tue, 19 Sep 2023 21:57:09 +0200 Subject: [PATCH] -s flag for server to skip data fetching --- locales/en.json | 15 +-------------- package-lock.json | 14 +++----------- server.js | 7 ++++--- 3 files changed, 8 insertions(+), 28 deletions(-) diff --git a/locales/en.json b/locales/en.json index fa2d33c..3f67be7 100644 --- a/locales/en.json +++ b/locales/en.json @@ -10,39 +10,31 @@ "Suche": "Search", "Preisänderungen": "Price changes", "Warenkörbe": "Shopping carts", - "Noch keine Produkte im Warenkorb.": "No products in your shopping cart yet.", "Produkte suchen und mit '+' zum Warenkorb hinzufügen.": "Search for products and add them to the shopping cart with '+'.", "Filtern...": "Filter...", "(min. 3 Zeichen)": "(at least 3 characters)", "Produkt hinzufügen...": "Add product...", - "Neuer Warenkorb": "New shopping cart", "Exportieren": "Export", "Importieren": "Import", - "Medieninhaber": "Owner", "Kontakt": "Contact", "Adresse": "Address", "Diese nicht-kommerzielle Seite dient KonsumentInnen dazu, Preise von Produkten im Lebensmittelhandel vergleichen zu können.": "This non-commercial site allows consumers to compare prices of products in the grocery store.", - "Video Anleitung": "Video instructions (in German)", "Text Anleitung": "Text instructions (in German)", "Medienberichte": "Media reports", "Produktsuche": "Product search", - "Radio & Fernsehen": "Radio & Television", "Print & Online": "Print & Online", - "CartsList_Name": "Name", "CartsList_Produkte": "Product", "CartsList_Preis": "Price", - "CartsList_Preisänderungen": "Price changes", "CartsList_Teilen": "Share", "CartsList_JSON": "JSON", "CartsList_Löschen": "Delete", - "ItemsChart_Keine Daten ausgewählt": "No data selected", "ItemsChart_Preissumme Gesamt": "Total price", "ItemsChart_Preissumme Ketten": "Store price", @@ -50,19 +42,17 @@ "ItemsChart_Änderung in % seit": "Change in % since", "ItemsChart_Änderung in % seit {{date}}": "Change in % since {{date}}", "ItemsChart_Preissumme {{s}}": "Price {{s}}", - "ItemsFilter_Produkte suchen...": "Product search...", "ItemsFilter_Filter anzeigen/ausblenden": "Show/hide filters", "ItemsFilter_Alle": "All", "ItemsFilter_Datum": "Date", "ItemsFilter_Billiger seit letzter Änderung": "Cheaper since last change", - "ItemsFilter_Nur Diskont-Eigenmarken": "Private brands only", + "ItemsFilter_Nur Diskont-Eigenmarken": "Discount store brands only", "ItemsFilter_Nur Bio": "Only bio", "ItemsFilter_Exaktes Wort": "Exact word", "ItemsFilter_Preis €": "Price €", "ItemsFilter_Teurer": "More expensive", "ItemsFilter_Billiger": "Cheaper", - "ItemsList_Resultate": "Results", "ItemsList_Diagramm": "Chart", "ItemsList_Verkaufspreis": "Unit price", @@ -77,18 +67,15 @@ "ItemsList_Kette": "Store chain", "ItemsList_Name": "Name", "ItemsList_Preis": "Price", - "Cart_Teilen": "Detail", "Cart_Speichern": "Save", "Cart_Warenkorb {{name}}": "Shopping cart {{name}}", "Cart_Warenkorb '{{name}}' existiert bereits. Bitte einen anderen Namen für den zu speichernden Warenkorb eingeben": "Shopping cart '{{name}}' already exists. Please enter a different name for the shopping cart to be saved", "Cart_Warenkorb '{{name}}' existiert nicht.": "Shopping cart '{{name}}' does not exist.", "Cart_Artikel": "Item", - "Carts_Name für Warenkorb eingeben:": "Enter name for shopping cart:", "Carts_Warenkorb mit Namen '{{name}}' existiert bereits": "Shopping cart with name '{{name}}' already exists", "Carts_Warenkorb '{{name}}' existiert bereits. Bitte einen anderen Namen für den zu importierenden Warenkorb eingeben": "Shopping cart '{{name}}' already exists. Please enter a different name for the shopping cart to be imported", - "Settings_Vorselektierte Ketten": "Pre-selected store chains", "Settings_Start-Datum für Diagramme": "Start date for charts", "Settings_Diagramm Typ": "Chart type", diff --git a/package-lock.json b/package-lock.json index 7954cfa..0f24f8b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,9 @@ "chartjs-adapter-moment": "^1.0.1", "chokidar": "^3.5.3", "compression": "^1.7.4", + "cross-env": "^7.0.3", "express": "^4.18.2", + "husky": "^8.0.3", "hyphen": "^1.6.6", "moment": "^2.29.4", "node-html-parser": "^6.1.5", @@ -26,9 +28,7 @@ "devDependencies": { "autoprefixer": "^10.4.14", "concurrently": "^8.1.0", - "cross-env": "^7.0.3", "esbuild": "^0.17.19", - "husky": "^8.0.3", "postcss": "^8.4.24", "prettier": "^2.8.8", "pretty-quick": "^3.1.3", @@ -1417,7 +1417,6 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", - "dev": true, "dependencies": { "cross-spawn": "^7.0.1" }, @@ -1462,7 +1461,6 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -2378,7 +2376,6 @@ "version": "8.0.3", "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", - "dev": true, "bin": { "husky": "lib/bin.js" }, @@ -2534,8 +2531,7 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/jiti": { "version": "1.18.2", @@ -3132,7 +3128,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, "engines": { "node": ">=8" } @@ -3746,7 +3741,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -3758,7 +3752,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, "engines": { "node": ">=8" } @@ -4320,7 +4313,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "dependencies": { "isexe": "^2.0.0" }, diff --git a/server.js b/server.js index 985fcd9..a0c835e 100644 --- a/server.js +++ b/server.js @@ -56,14 +56,15 @@ function parseArguments() { throw new Error("Live reload is only supported in development mode"); } liveReload = true; - } else if (args[i] === "--skip-data-update") { + } else if (args[i] === "-s" || args[i] === "--skip-data-update") { skipDataUpdate = true; } else if (args[i] === "-h" || args[i] === "--help") { console.log("Usage: node server.js [-p|--port PORT] [-l|--live-reload]"); console.log(); console.log("Options:"); - console.log(" -p, --port PORT Port to listen on (default: 3000)"); - console.log(" -l, --live-reload Enable live reload (automatically enabled if NODE_ENV is development)"); + console.log(" -p, --port PORT Port to listen on (default: 3000)"); + console.log(" -l, --live-reload Enable live reload (automatically enabled if NODE_ENV is development)"); + console.log(" -s, --skip-data-update Skip fetching data"); process.exit(0); } }