@kitmi/data
Version:
Jacaranda Framework Data Access Model
43 lines (42 loc) • 1.69 kB
JavaScript
;
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