diff --git a/src-tauri/tauri.linux.conf.json b/src-tauri/tauri.linux.conf.json index 7b51020..4a07cc8 100644 --- a/src-tauri/tauri.linux.conf.json +++ b/src-tauri/tauri.linux.conf.json @@ -82,6 +82,11 @@ "cmd": "ffmpeg", "args": ["-version"] }, + { + "name": "is-nodejs-installed", + "cmd": "node", + "args": ["--version"] + }, { "name": "is-pytubepp-installed", "cmd": "pytubepp", @@ -114,8 +119,8 @@ "windows": [ { "title": "PytubePP Helper", - "width": 500, - "height": 320 + "width": 510, + "height": 345 } ], "security": { diff --git a/src-tauri/tauri.macos.conf.json b/src-tauri/tauri.macos.conf.json index 8bb4af5..416abaa 100644 --- a/src-tauri/tauri.macos.conf.json +++ b/src-tauri/tauri.macos.conf.json @@ -82,6 +82,11 @@ "cmd": "ffmpeg", "args": ["-version"] }, + { + "name": "is-nodejs-installed", + "cmd": "node", + "args": ["--version"] + }, { "name": "is-pytubepp-installed", "cmd": "pytubepp", @@ -133,8 +138,8 @@ "windows": [ { "title": "PytubePP Helper", - "width": 500, - "height": 335 + "width": 515, + "height": 365 } ], "security": { diff --git a/src-tauri/tauri.windows.conf.json b/src-tauri/tauri.windows.conf.json index a5cc3f5..d13401b 100644 --- a/src-tauri/tauri.windows.conf.json +++ b/src-tauri/tauri.windows.conf.json @@ -82,6 +82,11 @@ "cmd": "ffmpeg", "args": ["-version"] }, + { + "name": "is-nodejs-installed", + "cmd": "node", + "args": ["--version"] + }, { "name": "is-pytubepp-installed", "cmd": "pytubepp", @@ -121,8 +126,8 @@ "windows": [ { "title": "PytubePP Helper", - "width": 500, - "height": 320 + "width": 510, + "height": 345 } ], "security": { diff --git a/src/App.tsx b/src/App.tsx index 73360c3..1ba10c7 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -65,6 +65,10 @@ function App() { installed: false, version: null, }, + nodejs: { + installed: false, + version: null, + }, pytubepp: { installed: false, version: null, @@ -181,6 +185,15 @@ function App() { } })); }); + isInstalled('nodejs', '--version').then((result) => { + setInstalledPrograms((prevState) => ({ + ...prevState, + nodejs: { + installed: result.installed, + version: result.output ? extractVersion(result.output) : null, + } + })); + }); isInstalled('pytubepp', '--version').then((result) => { setInstalledPrograms((prevState) => ({ ...prevState, @@ -256,6 +269,10 @@ function App() {

FFmpeg: {installedPrograms.ffmpeg.installed ? 'installed' : 'not installed'} {installedPrograms.ffmpeg.version ? `(${installedPrograms.ffmpeg.version})` : ''}

{installedPrograms.ffmpeg.installed ? : installedPrograms.apt.installed ? : null} +
+

Node.js: {installedPrograms.nodejs.installed ? 'installed' : 'not installed'} {installedPrograms.nodejs.version ? `(${installedPrograms.nodejs.version})` : ''}

+ {installedPrograms.nodejs.installed ? : installedPrograms.apt.installed ? : null} +

PytubePP: {installedPrograms.pytubepp.installed ? 'installed' : 'not installed'} {installedPrograms.pytubepp.version ? `(${installedPrograms.pytubepp.version})` : ''}

{installedPrograms.pytubepp.installed ? : installedPrograms.pip3.installed ? : null} @@ -296,7 +313,11 @@ function App() {

FFmpeg: {installedPrograms.ffmpeg.installed ? 'installed' : 'not installed'} {installedPrograms.ffmpeg.version ? `(${installedPrograms.ffmpeg.version})` : ''}

- {installedPrograms.ffmpeg.installed ? : installedPrograms.dnf.installed ? : null} + {installedPrograms.ffmpeg.installed ? : installedPrograms.dnf.installed ? : null} +
+
+

Node.js: {installedPrograms.nodejs.installed ? 'installed' : 'not installed'} {installedPrograms.nodejs.version ? `(${installedPrograms.nodejs.version})` : ''}

+ {installedPrograms.nodejs.installed ? : installedPrograms.dnf.installed ? : null}

PytubePP: {installedPrograms.pytubepp.installed ? 'installed' : 'not installed'} {installedPrograms.pytubepp.version ? `(${installedPrograms.pytubepp.version})` : ''}

@@ -340,6 +361,10 @@ function App() {

FFmpeg: {installedPrograms.ffmpeg.installed ? 'installed' : 'not installed'} {installedPrograms.ffmpeg.version ? `(${installedPrograms.ffmpeg.version})` : ''}

{installedPrograms.ffmpeg.installed ? : installedPrograms.winget.installed ? : null}
+
+

Node.js: {installedPrograms.nodejs.installed ? 'installed' : 'not installed'} {installedPrograms.nodejs.version ? `(${installedPrograms.nodejs.version})` : ''}

+ {installedPrograms.nodejs.installed ? : installedPrograms.winget.installed ? : null} +

PytubePP: {installedPrograms.pytubepp.installed ? 'installed' : 'not installed'} {installedPrograms.pytubepp.version ? `(${installedPrograms.pytubepp.version})` : ''}

{installedPrograms.pytubepp.installed ? : installedPrograms.pip.installed ? : null} @@ -373,6 +398,10 @@ function App() {

FFmpeg: {installedPrograms.ffmpeg.installed ? 'installed' : 'not installed'} {installedPrograms.ffmpeg.version ? `(${installedPrograms.ffmpeg.version})` : ''}

{installedPrograms.ffmpeg.installed ? : installedPrograms.brew.installed ? : null}
+
+

Node.js: {installedPrograms.nodejs.installed ? 'installed' : 'not installed'} {installedPrograms.nodejs.version ? `(${installedPrograms.nodejs.version})` : ''}

+ {installedPrograms.nodejs.installed ? : installedPrograms.brew.installed ? : null} +

PytubePP: {installedPrograms.pytubepp.installed ? 'installed' : 'not installed'} {installedPrograms.pytubepp.version ? `(${installedPrograms.pytubepp.version})` : ''}

{installedPrograms.pytubepp.installed ? : installedPrograms.pip3.installed ? : null} diff --git a/src/lib/utils.ts b/src/lib/utils.ts index 9821f80..6a399c0 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -98,7 +98,7 @@ export function extractVersion(output: string): string | null { /Python (\d+\.\d+\.\d+)/, // Pattern for Python /pytubefix (\d+\.\d+\.\d+)/, // Pattern for pytubefix /pytubepp (\d+\.\d+\.\d+)/, // Pattern for pytubepp - /v(\d+\.\d+\.\d+)/, // Pattern for winget + /v(\d+\.\d+\.\d+)/, // Pattern for winget, Node.js /pip (\d+\.\d+)/, // Pattern for pip /OS Version:.*Build (\d+)/, // Pattern for Windows build /apt (\d+\.\d+\.\d+)/, // Pattern for apt diff --git a/src/types.ts b/src/types.ts index f0535b1..47cffb2 100644 --- a/src/types.ts +++ b/src/types.ts @@ -35,6 +35,10 @@ export interface InstalledPrograms { installed: boolean; version: string | null; }; + nodejs: { + installed: boolean; + version: string | null; + }; pytubepp: { installed: boolean; version: string | null;