Skip to content

Commit 8451e7b

Browse files
committed
Issue #18: add queryParser module
1 parent abd7860 commit 8451e7b

File tree

3 files changed

+41
-0
lines changed

3 files changed

+41
-0
lines changed

package-lock.json

Lines changed: 24 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
"@testing-library/user-event": "^14.4.3",
3333
"@types/jest": "^29.5.0",
3434
"@types/lodash": "^4.14.194",
35+
"@types/lucene": "^2.1.7",
3536
"@types/node": "^18.15.11",
3637
"@types/react": "17.0.42",
3738
"@types/react-dom": "17.0.14",
@@ -66,6 +67,7 @@
6667
"@grafana/runtime": "9.5.14",
6768
"@grafana/ui": "9.5.14",
6869
"@reduxjs/toolkit": "^1.9.5",
70+
"lucene": "^2.1.1",
6971
"react": "17.0.2",
7072
"react-dom": "17.0.2",
7173
"tslib": "2.5.3"

src/queryParser.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import lucene from 'lucene';
2+
3+
function normalizeQuery(query: string) {
4+
return query.replace(/(\w+)\s(:)/gi, '$1$2');
5+
}
6+
7+
function parseQuery(query: string) {
8+
try {
9+
return lucene.parse(normalizeQuery(query));
10+
} catch (e) {
11+
return null;
12+
}
13+
}
14+
15+
export default parseQuery;

0 commit comments

Comments
 (0)