diff options
Diffstat (limited to 'frontend/query.ts')
-rw-r--r-- | frontend/query.ts | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/frontend/query.ts b/frontend/query.ts index 8a5ec2e..a608c57 100644 --- a/frontend/query.ts +++ b/frontend/query.ts @@ -25,18 +25,19 @@ export function load_bangs() { export async function process_query(default_engine: string, query: string) { const bang_prefix = "!" - let url = "" + let url: string | undefined if (query.startsWith(bang_prefix)) { const [engine, ...query_parts] = query.substring(bang_prefix.length).split(" ") url = await search_url(engine, query_parts.join(" ")) } else { url = await search_url(default_engine, query) } + if (!url) return status("error", "Invalid search engine.") status("success", `Forwarding to ${url}`) - setTimeout(() => document.location.href = url, 0) + setTimeout(() => document.location.href = url!, 0) } async function search_url(engine: string, query: string) { - return (await bangs)[engine]!.url.replace("{{{s}}}", encodeURIComponent(query).replaceAll("%20", "+")) + return (await bangs)[engine]?.url.replace("{{{s}}}", encodeURIComponent(query).replaceAll("%20", "+")) } |