1.0.3 • Published 3 years ago

mydata-filter-postgresql v1.0.3

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

myData Filter - PostgreSql Transformer

Postgre transformer for mydata-filter package

npm version GitHub issues GitHub license

GitHub stars GitHub forks

Installation

npm install mydata-filter-postgresql

Usage

Transform a filter query string into a MySQL WHERE clause query

import { ParseSync } from "mydata-filter";
import PostgreSqlTransformer from "mydata-filter-postgresql";

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

try {
    const query = ParseSync(filter, {
        transformer: new PostgreSqlTransformer({
            clause: "WHERE"
        })
    });

    console.log(query); // (`user`.`username" = 'Ana') OR (`username` = 'Ana')
} catch (error) {
    console.error(error);
}

Transform a filter query string into a MySQL ORDER BY clause query

import { ParseSync } from "mydata-filter";
import PostgreSqlTransformer from "mydata-filter-postgresql";

const filter = `person.age ASC`;

try {
    const query = ParseSync(filter, {
        transformer: new PostgreSqlTransformer({
            clause: "ORDER"
        })
    });

    console.log(query); // "person"."age" ASC
} catch (error) {
    console.error(error);
}

Transform a filter query string into a MySQL query with specific features

import { ParseSync } from "mydata-filter";
import PostgreSqlTransformer from "mydata-filter-postgresql";

const filter = `"ana" == "Ana"`;

try {
    const query = ParseSync(filter, {
        transformer: new PostgreSqlTransformer({
            features: [
                "EQ",
                "NEQ",

                "BOOLEAN",
                "NUMBER",
                "STRING",
            ],
            root_features: [
                "EQ",
                "NEQ",
            ]
        })
    });

    console.log(query); // "ana" == "Ana"
} catch (error) {
    console.error(error);
}

Constructor optional options

NameTypeDescription
max_inline_functionsnumberDefine max inline call functions
scopestringDefine scope with available identifiers
clause"WHERE" | "ORDER"Specify pre-available features model
featuresstring[]Defines all available features
root_featuresstring[]Defines the specific features available in the root

Supported Inline Functions

NameArguments
ROUNDNumber | Identifier
CEILNumber | Identifier
FLOORNumber | Identifier
LOWERString | Identifier
UPPERString | Identifier
TRIMString | Identifier
CONTAINSString | Identifier, String | Identifier | Number
STARTS_WITHString | Identifier, String | Identifier | Number
ENDS_WITHString | Identifier, String | Identifier | Number
CONCATString | Identifier | Number, ...
YEARString | Identifier
MONTHString | Identifier
HOURString | Identifier
MINUTEString | Identifier
SECONDString | Identifier

Supported Sorting

NameAlias
AscendingASC
DescendingDESC