I am working on server that uses hapi
and executes rules from node-rules
.
I have a callback which is called by the R.execute
method from node-rules
. I need to return a Promise
from the exec
method as the result of executing the callback
.
Code
const callback = data => {
const {matchPath, result} = data
descision.setMatchPath(matchPath)
if (!result) {
descision.addMessage(
'No match could be found in the rules provided, either incorrect or non-matching information was provided'
)
}
}
function exec (input) {
const {medicineType, facts: data} = input
const R = new RuleEngine()
R.register(rules)
if (medicineType !== 'generic') {
const facts = {
data
}
R.execute(facts, callback)
}
}
I noticed from the source code that R.execute
does not return anything that I can use. I notice that in execute
calls this function here recursively but does not terminate without the callback.
How can I convert this to a function that returns a Promise?