@nimey/expressions
v0.1.2
Published
Mit dieser Bibliothek kannst du Bedingungen in Konfigurationsdateien oder in Datenbanken ablegen und diese später evaluieren.
Downloads
93
Readme
@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 |