UNPKG

@vladbasin/strong-api-mapping

Version:

Strongly typed API models. Mapping & validation

21 lines 1.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getPayloadPropValue = void 0; const lodash_1 = require("lodash"); const _1 = require("."); const getPayloadPropValue = (parser, map, sourceKey, isKeyCaseSensitive, isArrayValueExpected) => { const value = !(0, lodash_1.isNil)(sourceKey) ? (0, _1.getKeyCaseBasedValue)(map || {}, sourceKey, isKeyCaseSensitive) : map; const parsedValue = parser(value); if (!(0, lodash_1.isNil)(parsedValue)) { const parsedValueIsArray = parsedValue.constructor.name === 'Array'; if (parsedValueIsArray && !isArrayValueExpected) { throw new _1.InvalidMappingError(`Source key ${sourceKey} cannot be mapped: parsed value is array which is not expected`); } if (!parsedValueIsArray && isArrayValueExpected) { throw new _1.InvalidMappingError(`Source key ${sourceKey} cannot be mapped: parsed value is expected to be array`); } } return parsedValue; }; exports.getPayloadPropValue = getPayloadPropValue; //# sourceMappingURL=getPayloadPropValue.js.map