1
0
Fork 0
mirror of https://github.com/pawelmalak/flame.git synced 2025-07-21 04:19:37 +02:00

Local search for apps

This commit is contained in:
unknown 2021-09-06 12:24:01 +02:00
parent 8521995758
commit 6ae6c58f4c
14 changed files with 297 additions and 4751 deletions

View file

@ -1,26 +1,45 @@
import { queries } from './searchQueries.json';
import { Query } from '../interfaces';
import { Query, SearchResult } from '../interfaces';
import { searchConfig } from '.';
export const searchParser = (searchQuery: string): boolean => {
export const searchParser = (searchQuery: string): SearchResult => {
const result: SearchResult = {
isLocal: false,
prefix: null,
query: '',
};
const splitQuery = searchQuery.match(/^\/([a-z]+)[ ](.+)$/i);
const prefix = splitQuery ? splitQuery[1] : searchConfig('defaultSearchProvider', 'd');
const search = splitQuery ? encodeURIComponent(splitQuery[2]) : encodeURIComponent(searchQuery);
const prefix = splitQuery
? splitQuery[1]
: searchConfig('defaultSearchProvider', 'l');
const search = splitQuery
? encodeURIComponent(splitQuery[2])
: encodeURIComponent(searchQuery);
const query = queries.find((q: Query) => q.prefix === prefix);
if (query) {
const sameTab = searchConfig('searchSameTab', false);
result.prefix = query.prefix;
result.query = search;
if (sameTab) {
document.location.replace(`${query.template}${search}`);
if (prefix === 'l') {
result.isLocal = true;
} else {
window.open(`${query.template}${search}`);
const sameTab = searchConfig('searchSameTab', false);
if (sameTab) {
document.location.replace(`${query.template}${search}`);
} else {
window.open(`${query.template}${search}`);
}
}
return true;
return result;
}
return false;
}
return result;
};