email-filter
v0.0.1
Published
Parse and format gmail-like email filter queries Edit
Downloads
2,468
Readme
email-filter
Parse and format gmail-like email filter queries
This module parses gmail-style filter queries into an ast-style object, and formats such objects back to a filter-string
Installation
npm install email-filter
Usage
const filter = require("email-filter");
const filterObject = filter.parse("to:[email protected]");
const filterString = filter.format([
{
key: "to",
value: "[email protected]"
}
]);
Example
Gmail lets you search your emails using a simple query language, for example consider the following string:
after:03/19/1979 before:01/21/2032 attachment:true biz baz -{foo bar} from:[email protected] smaller:1M subject:(hello world) to:[email protected]
This would transform into an object like:
[
{
key: "match",
reject: "foo bar",
accept: "biz baz"
},
{
key: "to",
value: "[email protected]"
},
{
key: "from",
value: "[email protected]"
},
{
key: "subject",
value: "hello world"
},
{
key: "date",
before: "01/21/2032",
after: "03/19/1979",
},
{
key: "has",
attachment: true
},
{
key: "size",
predicate: "smaller",
size: "1M"
}
]
Work in progress
Currently email-parse does not parse AND and OR queries into an AST:
// and style query
filter.parse("to:{mom,dad}");
// [ { key: 'to', value: 'mom,dad' } ]
// or style query
filter.parse("to:{mom|dad}");
// [ { key: 'to', value: 'mom|dad' } ]