@kitmi/data
Version:
Jacaranda Framework Data Access Model
45 lines (44 loc) • 1.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, /**
* A rule specifies at least one field not null, e.g. email or mobile.
* @module EntityFeatureRuntime_AtLeastOneNotNull
*/ "default", {
enumerable: true,
get: function() {
return _default;
}
});
const _utils = require("@kitmi/utils");
const _types = require("@kitmi/types");
const _Rules = /*#__PURE__*/ _interop_require_default(require("../Rules"));
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
const _default = {
[_Rules.default.RULE_BEFORE_CREATE]: (feature, entityModel, context)=>{
_utils._.each(feature, (item)=>{
if (_utils._.every(item, (fieldName)=>context.latest[fieldName] == null)) {
throw new _types.ValidationError(`At least one of these fields ${item.map((f)=>(0, _utils.quote)(f)).join(', ')} should not be null.`, {
entity: entityModel.meta.name,
fields: feature
});
}
});
},
[_Rules.default.RULE_BEFORE_UPDATE]: (feature, entityModel, context)=>{
context.options.$logicalDeletion || _utils._.each(feature, (item)=>{
if (_utils._.every(item, (fieldName)=>fieldName in context.latest ? context.latest[fieldName] == null : context.existing && context.existing[fieldName] == null)) {
throw new _types.ValidationError(`At least one of these fields ${item.map((f)=>(0, _utils.quote)(f)).join(', ')} should not be null.`, {
entity: entityModel.meta.name,
fields: feature
});
}
});
}
};
//# sourceMappingURL=atLeastOneNotNull.js.map