mirror of
https://github.com/n8n-io/n8n.git
synced 2026-05-31 08:46:58 +02:00
* fix(core): Transform function expressions to arrow functions * Update import path due to lib upgrade * Tighten comments * Simplify * Tighten tests * More accurate naming * Reduce diff * Update lockfile
26 lines
792 B
TypeScript
26 lines
792 B
TypeScript
import { Tournament } from '@n8n/tournament';
|
|
|
|
import {
|
|
DollarSignValidator,
|
|
FunctionThisSanitizer,
|
|
PrototypeSanitizer,
|
|
} from './expression-sandboxing';
|
|
|
|
type Evaluator = (expr: string, data: unknown) => string | null | (() => unknown);
|
|
type ErrorHandler = (error: Error) => void;
|
|
|
|
const errorHandler: ErrorHandler = () => {};
|
|
const tournamentEvaluator = new Tournament(errorHandler, undefined, undefined, {
|
|
before: [FunctionThisSanitizer],
|
|
after: [PrototypeSanitizer, DollarSignValidator],
|
|
});
|
|
const evaluator: Evaluator = tournamentEvaluator.execute.bind(tournamentEvaluator);
|
|
|
|
export const setErrorHandler = (handler: ErrorHandler) => {
|
|
tournamentEvaluator.errorHandler = handler;
|
|
};
|
|
|
|
export const evaluateExpression: Evaluator = (expr, data) => {
|
|
return evaluator(expr, data);
|
|
};
|