Skip to content
Test object with search query syntax.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

search-query-tester Build Status

Test object with search query syntax.

Search query syntax

search-query-tester use following library:


Install with npm:

npm install search-query-tester



export declare class SearchQueryTester<T extends object> {
     * Return true if the `searchQuery` with the `data`.
    test(searchQuery: string, data: T): boolean;


import { SearchQueryTester } from "search-query-tester";
const tester = new SearchQueryTester();
const data = {
    id: "idValue",
    title: "titleValue",
    author: "authorValue",
    body: "bodyValue"
// search all property by default
assert.ok(tester.test("idValue", data));
assert.ok(tester.test("titleValue", data));
assert.ok(tester.test("authorValue", data));
assert.ok(tester.test("bodyValue", data));
// "AND" operator
assert.ok(tester.test("idValue AND titleValue", data));
// "OR" operator
assert.ok(tester.test("idValue OR noMatchValue", data));
// "-" operator
assert.ok(tester.test("bodyValue -notMatchValue", data));

Supported Keywords

Currently, It is same syntax with Philtre.

Note that except for values before a colon in keywords using them (which must match the regex [A-z]*), anything may be quoted to preserve whitespace or otherwise special characters.

keyword effect
(default) non-special words check for a string match on every field of the object.
:has:[something] true if the object has a field named something
:is:[something] same as :has:
[key]:[value] true if value equals the key property
AND does nothing (it's the default)
OR logical OR of the conditions on either side
NOT negates the next keyword
-[something] negates the next keyword; unlike not doesn't need a space
( and ) allows grouping of terms
#[xxx] true if the .tags property contains xxx
:before:[xxx] true if the .date property is less than xxx
:after:[xxx] true if the .date property is greater than xxx


See Releases page.

Running tests

Install devDependencies and Run npm test:

npm i -d && npm test


Pull requests and stars are always welcome.

For bugs and feature requests, please create an issue.

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D



MIT © azu

You can’t perform that action at this time.