aboutsummaryrefslogtreecommitdiff
path: root/frontend/query.ts
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/query.ts')
-rw-r--r--frontend/query.ts7
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", "+"))
}