sfpm-js
Version:
A lightweight, dependency-free, forward-chaining inference engine for managing complex state and logic in a declarative way.
30 lines (24 loc) • 601 B
JavaScript
// src/FactSource.js
export class FactSource {
getFact(factName) {
throw new Error("getFact() must be implemented by a subclass.");
}
setFact(factName, value) {
throw new Error("setFact() must be implemented by a subclass.");
}
}
export class DictionaryFactSource extends FactSource {
/**
* @param {Map<string, any>} data
*/
constructor(data) {
super();
this._data = data;
}
getFact(factName) {
return this._data.get(factName);
}
setFact(factName, value) {
this._data.set(factName, value);
}
}