@flowfact/node-flowdsl
v3.0.1
Published
A builder to create valid FlowDsl-queries which can be used to retrieve entities in the FLOWFACT platform
Downloads
256
Readme
The DslBuilder is the main component to start writing search-queries for the FLOWFACT platform. It generates a valid FlowDsl-query in the json format. This can be used as a payload to retrieve entities via the search-service
Installation
@flowfact/node-flowdsl is available as an npm package.
// with npm
npm install @flowfact/node-flowdsl
// with yarn
yarn add @flowfact/node-flowdsl
Examples
Retrieve an entity which has a certain field
new DslBuilder()
.withCondition(c => c.hasField('status'))
.build();
which results in:
{
"target": "ENTITY",
"fetch": [],
"aggregations": [],
"conditions": [
{
"type": "HASFIELD",
"field": "status",
"joinField": [],
"alsoNotEmpty": false
}
],
"distinct": false,
"joins": [],
"sorts": [],
"schemaIds": []
}
Retrieve an entity which has a certain field and value
new DslBuilder()
.withCondition(c => c.hasField('status'))
.build();
which results in:
{
"target": "ENTITY",
"fetch": [],
"aggregations": [],
"conditions": [
{
"type": "HASFIELDWITHVALUE",
"field": "status",
"value": "active",
"operator": "EQUALS"
}
],
"distinct": false,
"joins": [],
"sorts": [],
"schemaIds": []
}
Retrieve 2 entities by their entityId's and only return the fields id and status
new DslBuilder()
.fetch('id', 'status')
.withCondition(c => c.hasEntityIds(['eacdb1d0-741a-407f-8daa-90806f46b7c3', 'aaedb1d0-781a-417f-8daa-90807f42e7c3']))
.build();
which results in:
{
"target": "ENTITY",
"fetch": [
"id",
"status"
],
"aggregations": [],
"conditions": [
{
"type": "ENTITYID",
"values": [
"eacdb1d0-741a-407f-8daa-90806f46b7c3",
"aaedb1d0-781a-417f-8daa-90807f42e7c3"
]
}
],
"distinct": false,
"joins": [],
"sorts": [],
"schemaIds": []
}
Issue tracking
Please open a issue if you find a bug or you want to make a feature request.
Be a contributor
Please make pull-requests, if you want to make some changes :)
Testing
Tests are implemented using jest and can be found in /src/__tests__
License
This project is licensed under the terms of the MIT license.