mct1
Version:
Repo for mct1
63 lines (62 loc) • 2.65 kB
JavaScript
;
var _this = this;
Object.defineProperty(exports, "__esModule", { value: true });
var NanoFlux = require('nanoflux-fusion');
exports.fusionStore = NanoFlux.getFusionStore();
exports.getState = function () { return exports.fusionStore.getState(); };
NanoFlux.createFusionator({
changeBGL: function (previousState, args) {
var BGL = previousState.BGL;
var delta = args[0];
var newBGL = BGL + delta;
return { BGL: newBGL };
},
changeRapidInsulin: function (previousState, args) {
var rapidInsulinOnBoard = previousState.rapidInsulinOnBoard;
var delta = args[0];
var newRapidInsulinOnBoard = rapidInsulinOnBoard + delta;
return { rapidInsulinOnBoard: newRapidInsulinOnBoard };
},
changeBasalInsulin: function (previousState, args) {
var basalInsulinOnBoard = previousState.basalInsulinOnBoard;
var delta = args[0];
var newBasalInsulinOnBoard = basalInsulinOnBoard + delta;
return { basalInsulinOnBoard: newBasalInsulinOnBoard };
},
changeCarbs: function (previousState, args) {
var carbsOnBoard = previousState.carbsOnBoard;
var delta = args[0];
var newCarbsOnboard = carbsOnBoard + delta;
return { carbsOnBoard: newCarbsOnboard };
},
addEffectMutex: function (previousState, args) {
var effects = previousState.effects;
var effect = args[0];
if (effects.indexOf(effect) != -1) {
return { effects: effects };
}
var newEffects = effects.slice(0);
newEffects.push(effect);
return { effects: newEffects };
},
removeEffectMutex: function (previousState, args) {
var effects = previousState.effects;
var effect = args[0];
var newEffects = effects.filter(function (eff) { return (eff != effect); });
return { effects: newEffects };
}
}, {
BGL: 4,
rapidInsulinOnBoard: 0,
basalInsulinOnBoard: 0,
carbsOnBoard: 0,
effects: ['NOTHING']
});
exports.changeBGL = NanoFlux.getFusionActor("changeBGL");
exports.changeRapidInsulin = NanoFlux.getFusionActor("changeRapidInsulin");
exports.changeBasalInsulin = NanoFlux.getFusionActor("changeBasalInsulin");
exports.changeCarbs = NanoFlux.getFusionActor("changeCarbs");
exports.addEffectMutex = NanoFlux.getFusionActor("addEffectMutex");
exports.removeEffectMutex = NanoFlux.getFusionActor("removeEffectMutex");
exports.hasEffect = function (effect) { return (exports.getState().effects.indexOf(effect) != -1); };
exports.subscribe = function (callback) { return exports.fusionStore.subscribe(_this, callback); };