scim2-filter
v0.2.0
Published
scim 2.0 filter parser
Downloads
22,193
Readme
scim2-filter
RFC7643 SCIM(System for Cross-domain Identity Management) 2.0 filter parser. see section 3.4.2.2. Filtering.
This implements filter syntax parser and json filter function.
usage
You can parse filter query and get ast.
import {parse} from 'scim2-filter';
const f = parse(`userType eq "Employee" and emails[type eq "work" and value co "@example.com"]`);
assert.deepEqual(f, {
op:"and",
filters:[
{
op:"eq",
attrPath:"userType",
compValue:"Employee"
},
{
op:"[]",
attrPath:"emails",
valFilter:{
op:"and",
filters:[
{
op:"eq",
attrPath:"type",
compValue:"work"
},
{
op:"co",
attrPath:"value",
compValue:"@example.com"
}
]
}
}
]
});
and You can use filter in json.
import {parse, filter} from 'scim2-filter';
const f = filter(parse(`userName eq "[email protected]"`));
const users = [
{ userName: "[email protected]" },
{ userName: "[email protected]" }
];
const ret = users.filter(f);
assert.deepEqual(ret, [users[0]]);