@nimey/expressions
v0.1.3
Published
Mit dieser Bibliothek kannst du Bedingungen in Konfigurationsdateien oder in Datenbanken ablegen und diese später evaluieren.
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/expressionsVerwendung:
import { Expression } from '@nimey/expressions';
const exp = new Expression('${a} > ${b}')
const vars = {a: 1, b: 2}
console.log( exp.exec(vars) )
// >> falseBeispiele
| 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 |
