UNPKG

@kitmi/data

Version:

Jacaranda Framework Data Access Model

43 lines (42 loc) 1.69 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, /** * A rule specifies the change of state will be tracked automatically. * @module EntityFeatureRuntime_StateTracking */ "default", { enumerable: true, get: function() { return _default; } }); const _utils = require("@kitmi/utils"); const _Rules = /*#__PURE__*/ _interop_require_default(require("../Rules")); const _TypeGenerators = /*#__PURE__*/ _interop_require_default(require("../TypeGenerators")); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const _default = { [_Rules.default.RULE_AFTER_VALIDATION]: (feature, entityModel, context)=>{ feature.forEach((featureItem)=>{ if (featureItem.field in context.latest) { const targetState = context.latest[featureItem.field]; if ((0, _utils.isPlainObject)(targetState) && (targetState.$xr || targetState.$case)) { return; } const timestampField = featureItem.stateMapping[targetState]; if (!timestampField) { throw new Error(`State "${targetState}" is not one of the pre-defined states of field "${featureItem.field}" of entity "${entityModel.meta.name}".`); } if (context.latest[timestampField] == null) { context.latest[timestampField] = (0, _TypeGenerators.default)(entityModel.meta.fields[timestampField], context.i18n); } } }); return true; } }; //# sourceMappingURL=stateTracking.js.map