open-index/open-npm huggingface dataset:
npm package: @nimey/expressions
Description: Mit dieser Bibliothek kannst du Bedingungen in Konfigurationsdateien oder in Datenbanken ablegen und diese später evaluieren.
Author: Nikolas Meyer
Latest version: 0.1.3

# @nimey Expression Language

Mit dieser Bibliothek kannst du Bedingungen in Konfigurationsdateien oder in Datenbanken ablegen und diese später evaluieren.

Eine Bedingung setzt sich dabei immer aus mindestens zwei Operanten und einem Operator zusammen. Einfache Berechnungen sind ebenfalls möglich.

## Unterstützte Operatoren
| Textform | Kurzform | JavaScript |
|---|---|---|
| is equal | == | a === b |
| and |  | a && b |
| or |  | a \|\| b |
| is not equal | != | a !== b |
| lower | < | a < b|
| lower equal | <= | a <= b|
| greater | > | a > b|
| greater equal | >= | a >= b|
| starts with | ^= | a.startsWith(b)|
| ends with | $= | a.endsWith(b)|
|  | * | a * b |
|  | / | a / b |
|  | + | a + b |
|  | - | a - b |

## Unterstützte Operanten

| Bezeichnung | Beispiel |
|---|---|
| QuotedString | 'test' |
| DoubleQuotedString | "test" |
| Integer | 123 |
| Float | 1234.5 |
| True | true |
| False | false |
| Variable | ${a} |
| Constant | NOW |

## Gruppierung
Die Operatoren sind untereinander gewichtet. Der Operator mit dem höchsten Gewicht wird also zuerst angewendet. Zusätzlich können mit einfachen Klammern Gruppen gebildet werden.

## Verwendung der Bibliothek
**Installation**:
```
yarn add @nimey/expressions
```
**Verwendung**:
```
import { Expression } from '@nimey/expressions';

const exp = new Expression('${a} > ${b}')
const vars = {a: 1, b: 2}
console.log( exp.exec(vars) )
// >> false
```

## Beispiele
| Bedingungen | Variablen | Ergebnis |
|---|---|---|
| ```${a} > ${b}``` | {a: 1, b: 2} | false |
| ```${a} + ${b} < 10``` | {a: 1, b: 2} | true |
| ```${a} == true and (${b} == true or ${c == true})``` | {a: true, c: true} | true |
| ```${a} == true and (${b} == true or ${c == true})``` | {a: true, b: false} | false |
| ```${a} == true and (${b} == true or ${c == true})``` | {a: true, b: false} | false |