3.0.1 • Published 1 year ago

@flowfact/node-flowdsl v3.0.1

Weekly downloads
147
License
MIT*
Repository
-
Last release
1 year 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

1 year ago

3.0.0

2 years ago

2.20220621.49

3 years ago

2.20210922.48

4 years ago

2.20210518.47

4 years ago

2.20210407.46

4 years ago

2.20210323.42

4 years ago

2.20210323.40

4 years ago

2.20210323.43

4 years ago

2.20210324.45

4 years ago

2.20210316.39

4 years ago

2.20201020.38

5 years ago

2.20200810.37

5 years ago

2.20200804.36

5 years ago

2.20200804.35

5 years ago

2.20200803.34

5 years ago

2.20200730.33

5 years ago

2.20200707.32

5 years ago

2.20200703.31

5 years ago

2.20200702.30

5 years ago

2.20200618.28

5 years ago

2.20200327.27

5 years ago

2.20200326.26

5 years ago

2.20200323.24

5 years ago

2.20200323.25

5 years ago

2.20200323.23

5 years ago

2.20200317.22

5 years ago

2.20200317.20

5 years ago

2.20200317.21

5 years ago

2.20200313.19

5 years ago

2.20200123.18

5 years ago

2.20200123.17

5 years ago

2.20200123.16

5 years ago

1.20190520.14

6 years ago

0.20190520.13

6 years ago

0.20190426.11

6 years ago

0.20190426.10

6 years ago

0.20190425.9

6 years ago

0.20190425.8

6 years ago