/*! * template-obj * * @version 0.0.2 * @license MIT * @author tsuyoshiwada * @url https://github.com/tsuyoshiwada/template-obj */ !function(n){"use strict";function r(n,r){return s.hasOwnProperty.call(n,r)}function t(n,r){var e=s.toString.call(r);return n===c?"[object Array]"===e:n===l?(e=typeof r,e===p||e===l&&!!r&&!t(c,r)):(e=e.slice(8,-1).toLowerCase(),void 0!==r&&null!=r&&e===n)}function e(n){var o=t(c,n),i=t(l,n);if(!o&&!i)return void 0;var u,f,a=o?[]:{};for(u in n)r(n,u)&&(f=n[u],(t(c,f)||t(l,f))&&(f=e(f)),a[u]=f);return a}function o(n,e,o){if(null===n)return n;if(o=o||n,t(l,n)){for(var i in n)if(r(n,i)&&e.call(o,n[i],i)===!1)break}else if(t(c,n)){var u,f=n.length;for(u=0;f>u&&e.call(o,n[u],u)!==!1;u++);}return n}function i(n,t){if(r(n,t))return n[t];t=t.split("[").join(".").split("]").join("");var i=t.split("."),u=e(n);return o(i,function(n){return r(u,n)?void(u=u[n]):(u=null,!1)}),u}function u(n,r){return t(a,n)?n.replace(/\$\{(.*?)\}/g,function(n,t){var e=i(r,t);return null!=e?e:n}):n}function f(n,r){var i=e(n);return r=t(l,r)?r:i,o(i,function(n,e){i[e]=t(l,n)?f(n,r):u(n,r)}),i}var l="object",a="string",c="array",p="function",s=Object.prototype;typeof module===l&&typeof module.exports===l?module.exports=f:typeof define===p&&define.amd?define("template-obj",f):n.templateObj=f}(this);