query-utilities v0.0.1
Query Utilities
Query utilities for javascript with zero dependencies.
Search "Anything" AND (Get better >= results) OR build TO extend- ✅ No Dependencies
- ✅ ES Modules
- ✅ Full Browser Support
- ✅ 100% Typescript
Methods
'parseQuery`
Returns a query from a given string.
const result = parseQuery("this AND that");
console.log(result); // Returns AndQueryhighlight
Highlight function that wraps the referenced text with a <mark> tag.
const result = highlight("test highlight", "test");
console.log(result); // Returns "<mark>test</mark> highlight"Classes
SearchQuery
const query = new SearchQuery<any>();
query.addSource("todos", todos, (item, search) => ({
type: "TODO",
item,
search,
}));
query.addSource("users", users, (item, search) => ({
type: "USER",
item,
search,
}));
const search = 'userId: 1';
const results = query.getResults(search);
console.log(results); // One result with user id === 1This package also includes all the classes used in parsing and for building results:
Query
Base class that all extend from and implement.
TextQuery and PhraseQuery
Basic text query that can optionally be an exact match if the source starts and ends with a quote character. The returned string is trimmed.
"test" --> test
hello world --> hello world
test "inner" quotes --> test "inner" quotes
"trimmed " --> trimmedAndQuery
Joins two statements with the AND token and each side can extend Query.
this AND thatOrQuery
Joins two statements with the OR token and each side can extend Query.
this OR thatNotQuery
Negates the targeted query.
NOT thisSectionQuery
Specifies a query on a given section or return the section if not specified.
@users userId:1 -> user with id = 1
@todos -> all todosGroupQuery
Group a query with ().
active todos AND NOT (completed:true OR stale)FieldScope
Target a query on a specified field.
active:true -> fields where active field === trueFieldCompareQuery
Target a query on a specified field with a operator and text query.
id >= 2 -> ids where value is greater or equal to 2RangeQuery
Search a range (inclusive or exclusive) with a start and end query.
[200 TO 2000} -> range from inclusive 200 to exclusive 20004 years ago