
Évaluateur d'expressions sécurisé - Remplacement direct pour expr-eval sans la vulnérabilité CVE-2025-12735
Évaluateur d'expressions rapide et léger pour JavaScript et TypeScript.
Un analyseur d'expressions moderne avec une API familière, zéro dépendance et un support complet de TypeScript.
npm install safe-expr-eval
import { Parser } from 'safe-expr-eval';
const parser = new Parser();
const expr = parser.parse('2 * x + 1');
console.log(expr.evaluate({ x: 3 })); // 7
console.log(expr.evaluate({ x: 10 })); // 21
import { evaluate } from 'safe-expr-eval';
const result = evaluate('10 + 5 * 2');
console.log(result); // 20
import { compile } from 'safe-expr-eval';
const fn = compile('price * quantity * (1 - discount)');
console.log(
fn({
price: 100,
quantity: 2,
discount: 0.1
})
); // 180
+ - * / %
== != > < >= <=
and or not
&& || !
Numbers → 42, 3.14
Strings → "hello"
Booleans → true, false
Variables → price, user.name
const parser = new Parser();
parser.functions.max = Math.max;
parser.functions.min = Math.min;
parser.functions.round = Math.round;
const expr = parser.parse(
'round(max(a, b) * 1.5)'
);
console.log(
expr.evaluate({
a: 10,
b: 20
})
); // 30
const parser = new Parser();
parser.consts.PI = Math.PI;
parser.consts.TAX_RATE = 0.15;
const expr = parser.parse(
'price * (1 + TAX_RATE)'
);
console.log(
expr.evaluate({
price: 100
})
); // 115
new Parser()
parser.parse(expression)
parser.evaluate(expression, variables?)
parser.functions
parser.consts
evaluate(expression, variables?)
compile(expression)
npm test
npm run test:coverage
MIT
Consultez le fichier LICENSE pour plus de détails.
Les pull requests et les contributions sont les bienvenues.
Veuillez ouvrir un issue si vous trouvez un bug ou avez une demande de fonctionnalité.
Alejandro Castrillon
GitHub: https://github.com/