A simple programmatic builder for CommerceTools where
Query Predicates
Performs stringification and quote escaping for string, boolean and numerical values
Made with β€οΈ atΒ Β , join us in making a difference!
import { Field, Equals, And } from "@treedom/commercetools-where-string-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"))))))
Field("bar", "baz", "foo"); // bar(baz(foo)))
And("bar", "baz"); // (bar) and (baz)
Or("bar", "baz"); // (bar) or (baz)
Compare: (field: string, operator: "=" | "!=" | ">" | "<" | ">=" | "<=" | "<>", value: number | boolean | string) => string
Compare("bar", "<=", 5); // bar <= 5
Equals("bar", 5); // bar = 5
NotEquals("bar", 5); // bar != 5
GreaterThan("bar", 5); // bar > 5
LessThan("bar", 5); // bar > 5
GreaterOrEqualThan("bar", 5); // bar >= 5
LessOrEqualThan("bar", 5); // bar <= 5
Contains("bar", "any", ["str", 123, true]); // bar contains any ("str", 123, true)
ContainsAll("bar", ["str", 123, true]); // bar contains all ("str", 123, true)
ContainsAny("bar", ["str", 123, true]); // bar contains any ("str", 123, true)
In("bar", ["str", 123, true]); // bar in ("str", 123, true)
NotIn("bar", ["str", 123, true]); // bar not in ("str", 123, true)
IsDefined("bar"); // bar is defined
IsNotDefined("bar"); // bar is defined
HasChanged("bar"); // bar has changed
HasNotChanged("bar"); // bar has not changed
WithinCircle("bar", 75.2345, 12.2345, 100); // bar within circle(75.2345, 12.2345, 100)
We invite all developers who use Treedom's open-source code to support our mission of sustainability by planting a tree with us. By contributing to reforestation efforts, you help create a healthier planet and give back to the environment. Visit our Treedom Open Source Forest to plant your tree today and join our community of eco-conscious developers.
Additionally, you can integrate the Treedom GitHub badge into your repository to showcase the number of trees in your Treedom forest and encourage others to plant new ones. Check out our integration guide to get started.
Together, we can make a lasting impact! ππ
Contributions are welcome! Please read the contributing guidelines before submitting a pull request.
This project is licensed under the MIT License.