33The Engine stores and executes rules, emits events, and maintains state.
44
55* [ Methods] ( #methods )
6- * [ constructor([ Array rules] , Object [ options] )] ( #constructorarray-rules-object-options )
7- * [ Options] ( #options )
8- * [ engine.addFact(String id, Function [ definitionFunc] , Object [ options] )] ( #engineaddfactstring-id-function-definitionfunc-object-options )
9- * [ engine.removeFact(String id)] ( #engineremovefactstring-id )
10- * [ engine.addRule(Rule instance|Object options)] ( #engineaddrulerule-instanceobject-options )
11- * [ engine.removeRule(Rule instance)] ( #engineremoverulerule-instance )
12- * [ engine.addOperator(String operatorName, Function evaluateFunc(factValue, jsonValue))] ( #engineaddoperatorstring-operatorname-function-evaluatefuncfactvalue-jsonvalue )
13- * [ engine.removeOperator(String operatorName)] ( #engineremoveoperatorstring-operatorname )
14- * [ engine.run([ Object facts] , [ Object options] ) -> ; Promise ({ events: Events, almanac: Almanac, results: [ ] , failureResults: [ ] })] ( #enginerunobject-facts-object-options---promise--events-events- almanac-almanac-successresults --failureresults- )
15- * [ engine.stop() -> ; Engine] ( #enginestop---engine )
16- * [ engine.on('success', Function(Object event, Almanac almanac, RuleResult ruleResult))] ( #engineonsuccess-functionobject-event-almanac-almanac-ruleresult-ruleresult )
17- * [ engine.on('failure', Function(Object event, Almanac almanac, RuleResult ruleResult))] ( #engineonfailure-functionobject-event-almanac-almanac-ruleresult-ruleresult )
6+ * [ constructor([ Array rules] , Object [ options] )] ( #constructorarray-rules-object-options )
7+ * [ Options] ( #options )
8+ * [ engine.addFact(String id, Function [ definitionFunc] , Object [ options] )] ( #engineaddfactstring-id-function-definitionfunc-object-options )
9+ * [ engine.removeFact(String id)] ( #engineremovefactstring-id )
10+ * [ engine.addRule(Rule instance|Object options)] ( #engineaddrulerule-instanceobject-options )
11+ * [ engine.removeRule(Rule instance)] ( #engineremoverulerule-instance )
12+ * [ engine.addOperator(String operatorName, Function evaluateFunc(factValue, jsonValue))] ( #engineaddoperatorstring-operatorname-function-evaluatefuncfactvalue-jsonvalue )
13+ * [ engine.removeOperator(String operatorName)] ( #engineremoveoperatorstring-operatorname )
14+ * [ engine.run([ Object facts] , [ Object options] ) -> ; Promise ({ events: [ ] , failureEvents: [ ] , almanac: Almanac, results: [ ] , failureResults: [ ] })] ( #enginerunobject-facts-object-options---promise--events--failureevents-- almanac-almanac-results --failureresults- )
15+ * [ engine.stop() -> ; Engine] ( #enginestop---engine )
16+ * [ engine.on('success', Function(Object event, Almanac almanac, RuleResult ruleResult))] ( #engineonsuccess-functionobject-event-almanac-almanac-ruleresult-ruleresult )
17+ * [ engine.on('failure', Function(Object event, Almanac almanac, RuleResult ruleResult))] ( #engineonfailure-functionobject-event-almanac-almanac-ruleresult-ruleresult )
1818
1919## Methods
2020
@@ -153,7 +153,7 @@ engine.removeOperator('startsWithLetter');
153153
154154
155155
156- ### engine.run([ Object facts] , [ Object options] ) -> Promise ({ events: Events , almanac: Almanac, results: [ ] , failureResults: [ ] })
156+ ### engine.run([ Object facts] , [ Object options] ) -> Promise ({ events: [ ] , failureEvents: [ ] , almanac: Almanac, results: [ ] , failureResults: [ ] })
157157
158158Runs the rules engine. Returns a promise which resolves when all rules have been run.
159159
@@ -165,13 +165,20 @@ await engine.run()
165165await engine .run ({ userId: 1 })
166166
167167// results
168- const { results , failureResults , events } = await engine .run ({ userId: 1 })
168+ const {
169+ results ,
170+ failureResults ,
171+ events ,
172+ failureEvents ,
173+ almanac
174+ } = await engine .run ({ userId: 1 })
169175
170176/**
171177 * almanac: Almanac instance for the run
172178 * results: rule results for successful rules
173179 * failureResults: rule results for failed rules
174- * events: successful events
180+ * events: successful rule events
181+ * failureEvents: failed rule events
175182 */
176183```
177184Link to the [ Almanac documentation] ( ./almanac.md )
0 commit comments