UNPKG

@just-in/core

Version:

A TypeScript-first framework for building adaptive digital health interventions.

78 lines 2.53 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.setDecisionRuleResultRecorder = setDecisionRuleResultRecorder; exports.setTaskResultRecorder = setTaskResultRecorder; exports.handleDecisionRuleResult = handleDecisionRuleResult; exports.handleTaskResult = handleTaskResult; exports.hasResultRecord = hasResultRecord; const data_manager_1 = __importDefault(require("../data-manager/data-manager")); const data_manager_constants_1 = require("../data-manager/data-manager.constants"); const dataManager = data_manager_1.default.getInstance(); let recordDecisionRuleResultFn = null; let recordTaskResultFn = null; /** * Registers the function to handle results from decision rules. * * @param fn - Callback function */ function setDecisionRuleResultRecorder(fn) { recordDecisionRuleResultFn = fn; } /** * Registers the function to handle results from tasks. * * @param fn - Callback function */ function setTaskResultRecorder(fn) { recordTaskResultFn = fn; } /** * Handles a decision rule result (or task fallback). * * @param record - The result of executing the handler */ async function handleDecisionRuleResult(record) { if (!hasResultRecord(record)) { return; } if (recordDecisionRuleResultFn) { await recordDecisionRuleResultFn(record); } else { // Default fallback: persist via DataManager await dataManager.addItemToCollection(data_manager_constants_1.DECISION_RULE_RESULTS, record); } } /** * Handles a task result (delegates to decision rule handler if none set). * * @param record - The result of executing the handler */ async function handleTaskResult(record) { if (!hasResultRecord(record)) { return; } if (recordTaskResultFn) { await recordTaskResultFn(record); } else if (recordDecisionRuleResultFn) { await recordDecisionRuleResultFn(record); } else { // Default fallback: persist via DataManager await dataManager.addItemToCollection(data_manager_constants_1.TASK_RESULTS, record); } } /* * Will determine if there are steps in the result object * * @param record - The result of executing the handler * @returns boolean - false if no steps are found true if there are */ function hasResultRecord(record) { return record.steps.length > 0; } //# sourceMappingURL=result-recorder.js.map