diff --git a/packages/gui/src/components/SearchPackages/SearchPackages.svelte b/packages/gui/src/components/SearchPackages/SearchPackages.svelte index 435af28..e6a2bbd 100644 --- a/packages/gui/src/components/SearchPackages/SearchPackages.svelte +++ b/packages/gui/src/components/SearchPackages/SearchPackages.svelte @@ -20,7 +20,7 @@ let sortBy = 'popularity'; let sortDirection: 'asc' | 'desc' = 'desc'; - const searchLimit = 5; + const searchLimit = 10; const setPackages = (pkgs: GUIPackage[], isSearch?: boolean) => { packages = isSearch @@ -42,7 +42,7 @@ packagesStore.subscribe((v) => { allPackages = v; setPackages(allPackages); - if (!packagesIndex) { + if (!packagesIndex && allPackages.length) { // dont remove or this can get crazy packagesIndex = new Fuse(allPackages, { keys: ['name', 'full_name', 'desc'] diff --git a/packages/gui/src/libs/api/tauri.ts b/packages/gui/src/libs/api/tauri.ts index dc25694..e091803 100644 --- a/packages/gui/src/libs/api/tauri.ts +++ b/packages/gui/src/libs/api/tauri.ts @@ -92,17 +92,26 @@ async function installPackageCommand(full_name: string) { const teaInstallCommand = new Command('tea-install', [`+${full_name}`, 'true']); teaInstallCommand.on('error', reject); - const handleLineOutput = async (line: string) => { + const handleLineOutput = async (line: string | any) => { const c = await child; - if (line.includes('installed:')) { + if (line?.code === 0 || line.includes('installed:')) { c.kill(); resolve(c.pid); + } else if (line?.code === 1) { + reject(); } }; teaInstallCommand.stdout.on('data', handleLineOutput); teaInstallCommand.stderr.on('data', handleLineOutput); - + teaInstallCommand.on('close', (line: string) => { + console.log('command closed!'); + handleLineOutput(line || ''); + }); + teaInstallCommand.on('error', (line: string) => { + console.log('command error!', line); + handleLineOutput(line || ''); + }); const child = teaInstallCommand.spawn(); }); }