@flowfact/node-flowdsl

3.0.1 • Public • Published
FLOWFACT logo

@flowfact/node-flowdsl

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.

Readme

Keywords

none

Package Sidebar

Install

npm i @flowfact/node-flowdsl

Weekly Downloads

201

Version

3.0.1

License

MIT*

Unpacked Size

30.3 kB

Total Files

22

Last publish

Collaborators

  • aweigl-scout24
  • flowfact_operations