UNPKG

@kitmi/data

Version:

Jacaranda Framework Data Access Model

45 lines (44 loc) 1.79 kB
"use strict"; 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