3.0.1 • Published 3 months ago

@flowfact/node-flowdsl v3.0.1

Weekly downloads
147
License
MIT*
Repository
-
Last release
3 months ago

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.

3.0.1

3 months ago

3.0.0

9 months ago

2.20220621.49

2 years ago

2.20210922.48

3 years ago

2.20210518.47

3 years ago

2.20210407.46

3 years ago

2.20210323.42

3 years ago

2.20210323.40

3 years ago

2.20210323.43

3 years ago

2.20210324.45

3 years ago

2.20210316.39

3 years ago

2.20201020.38

4 years ago

2.20200810.37

4 years ago

2.20200804.36

4 years ago

2.20200804.35

4 years ago

2.20200803.34

4 years ago

2.20200730.33

4 years ago

2.20200707.32

4 years ago

2.20200703.31

4 years ago

2.20200702.30

4 years ago

2.20200618.28

4 years ago

2.20200327.27

4 years ago

2.20200326.26

4 years ago

2.20200323.24

4 years ago

2.20200323.25

4 years ago

2.20200323.23

4 years ago

2.20200317.22

4 years ago

2.20200317.20

4 years ago

2.20200317.21

4 years ago

2.20200313.19

4 years ago

2.20200123.18

4 years ago

2.20200123.17

4 years ago

2.20200123.16

4 years ago

1.20190520.14

5 years ago

0.20190520.13

5 years ago

0.20190426.11

5 years ago

0.20190426.10

5 years ago

0.20190425.9

5 years ago

0.20190425.8

5 years ago