1.0.3 • Published 3 years ago

mydata-filter v1.0.3

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

myData 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 mydata-filter

Usage

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

import { Parse } from "mydata-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 "mydata-filter";
import MySqlTransformer from "mydata-filter-mysql";

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

Parse(code, {
    transformer: new MySqlTransformer({
        clause: "WHERE"
    })
}).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

FunctionName(arg1)
FUNCTION_NAME(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/
Sorter ascendingASC
Sorter descendingDESC

Supported Features Identifiers Name

NameDescription
ORLogical Or
ANDLogical And
LTLess Than
GTGreater Than
LELess than or equal
GEGreater Than or Equal
NEQNot Equals
EQEquals
CONTAINSContains Operator
CONTAINS_WORDContains Word Operator
STARTS_WITHStarts With Operator
ENDS_WITHEnds With Operator
ADDITIONArithmetic Addiction
SUBTRACTIONArithmetic Subtraction
MULTIPLICATIONArithmetic Multiplication
DIVISIONArithmetic Division
PARENTHESESParentheses
IDENTIFIER_PATHDeep Identifier separated by dot
IDENTIFIERSimple identifier
BOOLEANBoolean Type
NUMBERNumber Type
STRINGString Type
FUNCTION_CALLCall Function
ASCSort ascending
DESCSort descending
SORTING_LISTMultiple sorters separated by comma