1.1.2 • Published 3 years ago

odata-filter v1.1.2

Weekly downloads
-
License
MIT
Repository
-
Last release
3 years ago

oData Filter

Small filter library for working with immutable AST(abstract syntax trees) and queries

npm version GitHub issues GitHub license

GitHub stars GitHub forks

Installation

npm install odata-filter

Usage

Compile a JSON-AST code that can be used later by a transformer:

import { Parse } from "odata-filter";

const code = `(user.username == "Ana") or (username == "Mari")`;

Parse(code).then(ast => {
    console.log(ast); // { type: "...", ... }
}).catch(error => {
    console.error(error);
});

Compile a mysql where clause from a string using a transformer:

import { Parse } from "odata-filter";
import MySqlTransformer from "odata-filter-mysql";

const code = `(user.username == "Ana") or (username == "Ana")`;

Parse(code, {
    transformer: new MySqlTransformer()
}).then(query => {
    console.log(query); // (`user`.`username` == 'Ana') OR (`username` == 'Ana')
}).catch(error => {
    console.error(error);
});

Supported Functions

Parse(code, {
  cache?: boolean,
  transformer?: ITransformer
}): Promise<any>;
ParseSync(code, {
  cache?: boolean,
  transformer?: ITransformer
}): any;

Available Common Transformers

Functions Syntax

FUNCTION_NAME(arg1, arg2, ...)
LOWER(arg1)
concat(arg1, arg2)

Supported Operators

NameOperatorAlias
Equals==
Not Equals!=
Less than or equal<=
Greater Than or Equal>=
Less Than<
Greater Than>
Logical And&&and
Logical Or||or
Contains*=
Contains Word~=
Starts With^=
Ends With=$
Arithmetic Add+
Arithmetic Subtraction-
Arithmetic Multiplication*
Arithmetic Division/
1.1.2

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.0.9

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago