commercetools-where-builder
A simple programmatic builder for CommerceTools where
Query Predicates
Performs stringification and quote escaping for string, boolean and numerical values
Usage
import { Field, Equals, And } from "commercetools-where-builder";
Field(
"masterData",
"current",
"masterVariant",
And(
Equals("key", "my-variant-key"),
Field(
"attributes",
And(
Equals("name", "my-attribute-key"),
Equals("value", "my-attribute-value")
)
)
)
);
This snippet builds the following where query string
masterData(current(masterVariant((key = "my-variant-key") and (attributes((name = "my-attribute-key") and (value = "my-attribute-value"))))))
Predicates
Field: (...fields: Array<string>) => string
Field("bar", "baz", "foo");
And: (...fields: Array<string | Array>) => string
And("bar", "baz");
Or: (...fields: Array<string | Array>) => string
Or("bar", "baz");
Compare: (field: string, operator: "=" | "!=" | ">" | "<" | ">=" | "<=" | "<>", value: number | boolean | string) => string
Compare("bar", "<=", 5);
Equals: (field: string, value: number | boolean | string) => string
Equals("bar", 5);
NotEquals: (field: string, value: number | boolean | string) => string
NotEquals("bar", 5);
GreaterThan: (field: string, value: number | string) => string
GreaterThan("bar", 5);
LessThan: (field: string, value: number | string) => string
LessThan("bar", 5);
GreaterOrEqualThan: (field: string, value: number | string) => string
GreaterOrEqualThan("bar", 5);
LessOrEqualThan: (field: string, value: number | string) => string
LessOrEqualThan("bar", 5);
Contains: (field: string, kind: "any" | "all", values: Array<number | boolean | string>) => string
Contains("bar", "any", ["str", 123, true]);
ContainsAll: (field: string, values: Array<number | boolean | string>) => string
ContainsAll("bar", ["str", 123, true]);
ContainsAny: (field: string, values: Array<number | boolean | string>) => string
ContainsAny("bar", ["str", 123, true]);
IsDefined: (field: string) => string
IsDefined("bar");
IsNotDefined: (field: string) => string
IsNotDefined("bar");
HasChanged: (field: string) => string
HasChanged("bar");
HasNotChanged: (field: string) => string
HasNotChanged("bar");
WithinCircle: (field: string, latitude: number, longitude: number, radius: number) => string
WithinCircle("bar", 75.2345, 12.2345, 100);