1.0.17 • Published 2 years ago

searchqueryparser v1.0.17

Weekly downloads
56
License
-
Repository
-
Last release
2 years ago

Search-query Parser

Turns a query like tag:mytag (property:value|property:value2) into an object:

{
  "type": "and",
  "e1": {
    "type": "token",
    "token": "mytag",
    "tag": "tag"
  },
  "e2": {
    "type": "par",
    "e": {
      "type": "or",
      "e1": {
        "type": "token",
        "token": "value",
        "tag": "property"
      },
      "e2": {
        "type": "token",
        "token": "value2",
        "tag": "property"
      }
    }
  }
}

It supports :

  • parentheses. Can be nested indefinitely
  • not (!)
  • and ()
  • or (|)
  • quotes (""). Can contain spaces

Sample usage with async/await:

let SearchQueryParser = require("searchqueryparser")

let parser = new SearchQueryParser();
await parser.init()
let result = parser.parse("tag:mytag (property:value|property:value2)")
console.log(JSON.stringify(result, null, 2))

Sample usage without async/await

let SearchQueryParser = require("searchqueryparser")

let parser = new SearchQueryParser();
parser.init().then(() => {
  let result = parser.parse("tag:mytag (property:value|property:value2)")
  console.log(JSON.stringify(result, null, 2))
})
1.0.17

2 years ago

1.0.16

3 years ago

1.0.14

3 years ago

1.0.13

4 years ago

1.0.12

4 years ago

1.0.11

4 years ago

1.0.10

5 years ago

1.0.9

5 years ago

1.0.8

5 years ago

1.0.7

6 years ago

1.0.6

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

7 years ago