1.0.17 • Published 3 years ago

searchqueryparser v1.0.17

Weekly downloads
56
License
-
Repository
-
Last release
3 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

3 years ago

1.0.16

4 years ago

1.0.14

4 years ago

1.0.13

5 years ago

1.0.12

5 years ago

1.0.11

6 years ago

1.0.10

6 years ago

1.0.9

6 years ago

1.0.8

6 years ago

1.0.7

7 years ago

1.0.6

7 years ago

1.0.5

7 years ago

1.0.4

7 years ago

1.0.3

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

8 years ago