UNPKG

dotize

Version:

Convert complex Js object to dot notation Js object

3 lines (2 loc) 2.54 kB
!function(r,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(r||self).dotize=e()}(this,function(){var r={valTypes:{none:"NONE",primitive:"PRIM",object:"OBJECT",array:"ARRAY"},getValType:function(e){return e&&"object"==typeof e||Array.isArray(e)?Array.isArray(e)?r.valTypes.array:"object"==typeof e?r.valTypes.object:void 0:r.valTypes.primitive},getPathType:function(e){var t=[];for(var i in e){var n=e[i];n?r.isNumber(n)?t.push(r.valTypes.array):t.push(r.valTypes.object):t.push(r.valTypes.none)}return t},isUndefined:function(r){return void 0===r},isNumber:function(r){return!isNaN(parseFloat(r))&&isFinite(r)&&-1===r.indexOf(".")},isEmptyObj:function(r){for(var e in r)if(Object.hasOwnProperty.call(r,e))return!1;return JSON.stringify(r)===JSON.stringify({})},isNotObject:function(r){return!r||"object"!=typeof r},isEmptyArray:function(r){return Array.isArray(r)&&0==r.length},isNotArray:function(r){return 0==Array.isArray(r)},removeEmptyArrayItem:function(r){return r.filter(function(r){return null!=r&&""!=r})},getFieldName:function(e,t,i,n,a){return a?(t||"")+(r.isNumber(e)?"["+e+"]":(i&&!t?"":".")+e):n?(t||"")+"["+e+"]":(t?t+".":"")+e},startsWith:function(r,e){return 0==r.indexOf(e)},convert:function(e,t){var i={};return r.isNotObject(e)&&r.isNotArray(e)?t?(i[t]=e,i):e:r.isEmptyArray(e)?e:function e(t,n,a){var s=Array.isArray(t);for(var o in t){var y=t[o];y&&"object"==typeof y?Array.isArray(y)?r.isEmptyArray(y)?i[r.getFieldName(o,n,a,!1,!0)]=y:i=e(y,r.getFieldName(o,n,a,!1,!0),s):s&&0==r.isEmptyObj(y)?i=e(y,r.getFieldName(o,n,a,!0)):0==r.isEmptyObj(y)?i=e(y,r.getFieldName(o,n,a)):r.isEmptyObj(y)&&(i[r.getFieldName(o,n,a,s)]=y):s||r.isNumber(o)?i[r.getFieldName(o,n,a,!0)]=y:i[r.getFieldName(o,n,a)]=y}return i}(e,t,!0)},backward:function(e,t){var i={},n=/\[(\d+)\]/g;if(r.isNotObject(e)&&r.isNotArray(e))return t?e[t]:e;if(r.isEmptyArray(e))return e;for(var a in e){var s=e[a];if(t){var o=new RegExp("^"+t);a=a.replace(o,"")}a=a.replace(n,".$1"),r.startsWith(a,".")&&(a=a.replace(/^\./,""));var y=a.split("."),u=r.getPathType(y);r.isUndefined(u)||u[0]!=r.valTypes.array||0!=Array.isArray(i)||(i=[]),function e(t,n,a,s){var o=y.shift(),f=u.shift();if(void 0!==o&&""!=o){if(o=r.isNumber(o)?parseInt(o):o,y.length>0)return void 0===n[o]&&(n[o]=u[0]==r.valTypes.array?[]:{}),void e(t,n[o],o,n);f==r.valTypes.array&&a&&s?(0==Array.isArray(s[a])&&(s[a]=[]),s[a].push(t)):n[o]=t}else i=t}(s,i)}return i}};return r}); //# sourceMappingURL=dotize.umd.js.map