/**
 * Minified by jsDelivr using Terser v5.37.0.
 * Original file: /npm/json-typescript-mapper@1.1.3/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
"use strict";require("reflect-metadata");var utils_1=require("./libs/utils"),JSON_META_DATA_KEY="JsonProperty",DecoratorMetaData=function(e,r){this.name=e,this.clazz=r};function JsonProperty(e){var r;if(utils_1.isTargetType(e,"string"))r=new DecoratorMetaData(e);else{if(!utils_1.isTargetType(e,"object"))throw new Error("index.ts: meta data in Json property is undefined. meta data: "+e);r=e}return Reflect.metadata(JSON_META_DATA_KEY,r)}function getClazz(e,r){return Reflect.getMetadata("design:type",e,r)}function getJsonProperty(e,r){return Reflect.getMetadata(JSON_META_DATA_KEY,e,r)}function hasAnyNullOrUndefined(){for(var e=[],r=0;r<arguments.length;r++)e[r-0]=arguments[r];return e.some((function(e){return null==e}))}function mapFromJson(e,r,t,i){var a=e.name||i,s=t?t[a]:void 0,n=getClazz(r,i);if(utils_1.isArrayOrArrayClass(n)){var o=getJsonProperty(r,i);return o&&o.clazz||utils_1.isPrimitiveOrPrimitiveClass(n)?s&&utils_1.isArrayOrArrayClass(s)?s.map((function(e){return deserialize(o.clazz,e)})):void 0:s}return utils_1.isPrimitiveOrPrimitiveClass(n)?t?t[a]:void 0:deserialize(n,s)}function deserialize(e,r){if(!hasAnyNullOrUndefined(e,r)&&utils_1.isTargetType(r,"object")){var t=new e;return Object.keys(t).forEach((function(e){var i=getJsonProperty(t,e);i&&i.customConverter?t[e]=i.customConverter.fromJson(r[i.name||e]):t[e]=i?mapFromJson(i,t,r,e):r[e]})),t}}function serialize(e){if(!utils_1.isTargetType(e,"object")||utils_1.isArrayOrArrayClass(e))return e;var r={};return Object.keys(e).forEach((function(t){var i=getJsonProperty(e,t);r[i&&i.name?i.name:t]=serializeProperty(i,e[t])})),r}function serializeProperty(e,r){if(e&&!0!==e.excludeToJson)return e.customConverter?e.customConverter.toJson(r):e.clazz?utils_1.isArrayOrArrayClass(r)?r.map((function(e){return serialize(e)})):serialize(r):r}exports.JsonProperty=JsonProperty,exports.deserialize=deserialize,exports.serialize=serialize;
//# sourceMappingURL=/sm/6293cafebb37b94b52e4b6ba94f963ddbb29a43d1de678c1d8f2fcb382d36771.map