UNPKG

logicguru-engine

Version:

Advanced JSON-based rule engine with nested conditions, async evaluation, and flexible action system. Perfect for business rules, workflows, and decision automation.

23 lines (20 loc) 890 B
import { evaluateRules } from './src/evaluate.js'; import { resolveFilePath } from './src/utils/filepath.js'; import { resolveDynamicFilePath } from './src/utils/fileLoader.js'; export async function configureRuleEngine(rules, options = {}) { const { basePath = '', defaultContext = {} } = options; const files = { basePath }; return async function runEngine(runtimeData = {}) { const runtimeContext = { ...defaultContext, ...runtimeData }; for (const rule of rules) { if (rule.useFiles) { for (const [key, fileConfig] of Object.entries(rule.useFiles)) { const resolvedPath = await resolveFilePath(fileConfig.path, runtimeContext); const fileData = await resolveDynamicFilePath(files, resolvedPath); runtimeContext[key] = fileData; } } } return await evaluateRules(rules, runtimeContext, files); }; }