1.0.1 • Published 4 months ago

object-criteria v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

object-criteria

Usage:

import { Eval, RegisterFunction } from "object-criteria";

const Data = {
  View: {
    Name: "DefaultView",
    Version: "1.0.0",
  },
  CurrentUser: {
    UserId: "User#007",
    DisplayName: "John Doe",
    DateOfBirth: "2000-04-30T00:00:00.000Z",
  },
  Permissions: ["create-permission", "update-permission"],
};

RegisterFunction({
  Name: "CheckPermission",
  Action: (context: any, parameter: any) => {
    return context.Permissions.includes(parameter);
  },
});

//This returns true.
console.log(
  "Checks if it has create permission AND userid is User#007",
  Eval(Data, {
    AndOr: "and",
    Conditions: [
      {
        Function: "CheckPermission",
        Parameter: "create-permission",
      },
      {
        DataType: "string",
        Property: "CurrentUser.UserId",
        Operator: "eq",
        Value: "User#007",
      },
    ],
  })
);

//This return false.
console.log(
  "Checks if it has delete permission AND userid is User#007",
  Eval(Data, {
    AndOr: "and",
    Conditions: [
      {
        Function: "CheckPermission",
        Parameter: "delete-permission",
      },
      {
        DataType: "string",
        Property: "CurrentUser.UserId",
        Operator: "eq",
        Value: "User#007",
      },
    ],
  })
);