Searchbox
Text input augmented with Lexer magic
Features
- [x] Parses user input string into a structured formula of literals.
- [x] Supports literal negation.
- [x] Supports unicode.
- [ ] Operators are configurable.
Usage
import * as searchbox from '@webkitty/searchbox';
const inputText = 'Never take title:raisins from -author:rabbits';
const keywords = ['title', 'author'];
const formula = searchbox.parse(inputText, {keywords});
// Formula:
// _: [Never,take,from] // words not matching any keyword (aka fulltext)
// title: [raisins] // "title" keyword match
// -author: [rabbits] // "author" keyword match with NOT operator ("-")
Please note that only case-sensitive keyword matching is supported.
📝 License
Copyright © 2019 stuchl4n3k. This project is MIT licensed.