scim2-filter
TypeScript icon, indicating that this package has built-in type declarations

0.2.0 • Public • Published

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 "test1@example.com"`));
const users = [
  { userName: "test1@example.com" },
  { userName: "test2@example.com" }
];
const ret = users.filter(f);
assert.deepEqual(ret, [users[0]]);

Readme

Keywords

Package Sidebar

Install

npm i scim2-filter

Weekly Downloads

4,823

Version

0.2.0

License

ISC

Unpacked Size

45 kB

Total Files

23

Last publish

Collaborators

  • nazoking