1
0
Fork 0
mirror of https://github.com/pawelmalak/flame.git synced 2025-07-21 20:39:36 +02:00
flame/client/src/utility/searchParser.ts

45 lines
963 B
TypeScript
Raw Normal View History

2021-06-24 12:53:45 +02:00
import { queries } from './searchQueries.json';
2021-09-06 12:24:01 +02:00
import { Query, SearchResult } from '../interfaces';
2021-06-24 12:53:45 +02:00
import { searchConfig } from '.';
2021-09-06 12:24:01 +02:00
export const searchParser = (searchQuery: string): SearchResult => {
const result: SearchResult = {
isLocal: false,
2021-09-06 12:47:17 +02:00
sameTab: false,
search: '',
query: {
name: '',
prefix: '',
template: '',
},
2021-09-06 12:24:01 +02:00
};
const splitQuery = searchQuery.match(/^\/([a-z]+)[ ](.+)$/i);
2021-09-06 12:24:01 +02:00
const prefix = splitQuery
? splitQuery[1]
: searchConfig('defaultSearchProvider', 'l');
const search = splitQuery
? encodeURIComponent(splitQuery[2])
: encodeURIComponent(searchQuery);
2021-06-24 12:53:45 +02:00
const query = queries.find((q: Query) => q.prefix === prefix);
if (query) {
2021-09-06 12:47:17 +02:00
result.query = query;
result.search = search;
2021-06-24 12:53:45 +02:00
2021-09-06 12:24:01 +02:00
if (prefix === 'l') {
result.isLocal = true;
2021-06-24 12:53:45 +02:00
} else {
2021-09-06 12:47:17 +02:00
result.sameTab = searchConfig('searchSameTab', false);
2021-06-24 12:53:45 +02:00
}
2021-09-06 12:24:01 +02:00
return result;
2021-06-24 12:53:45 +02:00
}
2021-09-06 12:24:01 +02:00
return result;
};