From 854a8806dc5c64cbb71dec73ab9819c609b61c2e Mon Sep 17 00:00:00 2001 From: Jaap van Ekris <82339657+JaapvanEkris@users.noreply.github.com> Date: Sat, 3 Feb 2024 10:35:14 +0100 Subject: [PATCH] Upgrade to Node.js V18 (#32) * Update install.sh * Create .npmrc * Update install.sh * Update server.js * Update config.js * Update RowingStatistics.js --- .npmrc | 2 ++ app/engine/RowingStatistics.js | 6 +++--- app/server.js | 2 +- install/config.js | 1 - install/install.sh | 7 +++++-- 5 files changed, 11 insertions(+), 7 deletions(-) create mode 100644 .npmrc diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..2640e1d --- /dev/null +++ b/.npmrc @@ -0,0 +1,2 @@ +unsafe-perm=true +user=0 diff --git a/app/engine/RowingStatistics.js b/app/engine/RowingStatistics.js index 0edc6f9..3bdb0e4 100644 --- a/app/engine/RowingStatistics.js +++ b/app/engine/RowingStatistics.js @@ -370,7 +370,7 @@ function createRowingStatistics (config) { } function getMetrics () { - const cyclePace = cycleLinearVelocity.clean() !== 0 && cycleLinearVelocity.raw() > 0 && sessionStatus === 'Rowing' ? (500.0 / cycleLinearVelocity.clean()) : Infinity + const cyclePace = cycleLinearVelocity.clean() !== 0 && sessionStatus === 'Rowing' ? (500.0 / cycleLinearVelocity.clean()) : Infinity return { sessiontype: intervalTargetDistance > 0 ? 'Distance' : (intervalTargetTime > 0 ? 'Time' : 'JustRow'), sessionStatus, @@ -391,8 +391,8 @@ function createRowingStatistics (config) { cycleDuration: cycleDuration.clean() > minimumStrokeTime && cycleDuration.clean() < maximumStrokeTime && cycleLinearVelocity.raw() > 0 && sessionStatus === 'Rowing' ? cycleDuration.clean() : NaN, // seconds cycleStrokeRate: cycleDuration.clean() > minimumStrokeTime && cycleLinearVelocity.raw() > 0 && sessionStatus === 'Rowing' ? (60.0 / cycleDuration.clean()) : 0, // strokeRate in SPM cycleDistance: cycleDistance.raw() > 0 && cycleLinearVelocity.raw() > 0 && sessionStatus === 'Rowing' ? cycleDistance.clean() : 0, // meters - cycleLinearVelocity: cycleLinearVelocity.clean() > 0 && cycleLinearVelocity.raw() > 0 && sessionStatus === 'Rowing' ? cycleLinearVelocity.clean() : 0, // m/s - cyclePace: cycleLinearVelocity.raw() > 0 ? cyclePace : Infinity, // seconds/50 0m + cycleLinearVelocity: cycleLinearVelocity.clean() > 0 && sessionStatus === 'Rowing' ? cycleLinearVelocity.clean() : 0, // m/s + cyclePace: cycleLinearVelocity.clean() > 0 && sessionStatus === 'Rowing' ? cyclePace : Infinity, // seconds/500m cyclePower: cyclePower.clean() > 0 && cycleLinearVelocity.raw() > 0 && sessionStatus === 'Rowing' ? cyclePower.clean() : 0, // watts cycleProjectedEndTime: intervalTargetDistance > 0 ? distanceOverTime.projectY(intervalTargetDistance) : intervalTargetTime, cycleProjectedEndLinearDistance: intervalTargetTime > 0 ? distanceOverTime.projectX(intervalTargetTime) : intervalTargetDistance, diff --git a/app/server.js b/app/server.js index 7ca8ca6..6534a93 100644 --- a/app/server.js +++ b/app/server.js @@ -303,7 +303,7 @@ function logMetrics (metrics) { /* replayRowingSession(handleRotationImpulse, { -// filename: 'recordings/2021/04/rx800_2021-04-21_1845_Rowing_30Minutes_Damper8.csv', // 30 minutes, damper 10 + filename: 'recordings/Concept2_RowErg_Session_2000meters.csv', // Example row from a Concept 2 RowErg, 2000 meters realtime: true, loop: false }) diff --git a/install/config.js b/install/config.js index 0f434d6..1b05522 100644 --- a/install/config.js +++ b/install/config.js @@ -14,7 +14,6 @@ import rowerProfiles from './rowerProfiles.js' export default { - /* // example: change the default log level: loglevel: { default: 'debug' diff --git a/install/install.sh b/install/install.sh index ed226c7..beba766 100755 --- a/install/install.sh +++ b/install/install.sh @@ -149,7 +149,7 @@ then sudo ln -sfn /opt/nodejs/bin/npm /usr/local/bin/npm else print "Installing Node.js..." - curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - + curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt-get install -y nodejs fi @@ -178,7 +178,10 @@ sudo git reset --hard origin/v1beta_updates echo "export PATH=\"\$PATH:$INSTALL_DIR/bin\"" >> ~/.bashrc # otherwise node-gyp would fail while building the system dependencies -sudo npm config set user 0 +# On newer nodejs versions (> Node 16) we solve this via the .npmrc file +if [[ $ARCHITECTURE == "armv6l" ]]; then + sudo npm config set user 0 +fi print print "Downloading and compiling Runtime dependencies..."