fzo
Version:
fzo is simply freeze object library
8 lines (7 loc) • 3.12 kB
JavaScript
/**
* @license
* fzo.js v0.1.3
* Released under the Apache License 2.0 License.
**/
var fzo=function(){"use strict";function r(t){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},r(t)}var t=Object.freeze({fzo:function t(e){if("object"===r(e)&&!Object.isFrozen(e))return Object.keys(e).forEach((function(r){return t(e[r])})),Object.freeze(e),e},deepClone:function t(e){var n,o;return Array.isArray(e)?n=e:(o=e,n=Object.assign({},o)),Array.isArray(n)?n=JSON.parse(JSON.stringify(n)):(Object.keys(n).filter((function(t){return"object"===r(n[t])})).forEach((function(r){return n[r]=t(n[r])})),n)}});return t}();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnpvLm1pbi5qcyIsInNvdXJjZXMiOlsiLi4vc3JjL2Z6by5qcyIsIi4uL3NyYy9pbmRleC5qcyIsIi4uL3NyYy9kZWVwQ2xvbmUuanMiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBmem8ob2JqKSB7XHJcbiAgaWYgKHR5cGVvZiBvYmogPT09ICdvYmplY3QnICYmICFPYmplY3QuaXNGcm96ZW4ob2JqKSkge1xyXG4gICAgT2JqZWN0LmtleXMob2JqKS5mb3JFYWNoKChpZHgpID0+IGZ6byhvYmpbaWR4XSkpO1xyXG4gICAgT2JqZWN0LmZyZWV6ZShvYmopO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG4gIHJldHVybiBvYmo7XHJcbn07XHJcbiIsIm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmZyZWV6ZSh7XHJcbiAgZnpvOiByZXF1aXJlKCcuL2Z6bycpLFxyXG4gIGRlZXBDbG9uZTogcmVxdWlyZSgnLi9kZWVwQ2xvbmUnKSxcclxufSk7XHJcbiIsImNvbnN0IHNoYWxsb3dDbG9uZSA9IChvYmopID0+IHtcclxuICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgb2JqKTtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZGVlcENsb25lKHZhbHVlKSB7XHJcbiAgbGV0IG5ld09iajtcclxuICBBcnJheS5pc0FycmF5KHZhbHVlKSA/IChuZXdPYmogPSB2YWx1ZSkgOiAobmV3T2JqID0gc2hhbGxvd0Nsb25lKHZhbHVlKSk7XHJcblxyXG4gIGlmIChBcnJheS5pc0FycmF5KG5ld09iaikpIHtcclxuICAgIG5ld09iaiA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobmV3T2JqKSk7XHJcbiAgICByZXR1cm4gbmV3T2JqO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBPYmplY3Qua2V5cyhuZXdPYmopXHJcbiAgICAgIC5maWx0ZXIoKGspID0+IHR5cGVvZiBuZXdPYmpba10gPT09ICdvYmplY3QnKVxyXG4gICAgICAuZm9yRWFjaCgoaykgPT4gKG5ld09ialtrXSA9IGRlZXBDbG9uZShuZXdPYmpba10pKSk7XHJcbiAgICByZXR1cm4gbmV3T2JqO1xyXG4gIH1cclxufTtcclxuIl0sIm5hbWVzIjpbInNyYyIsIk9iamVjdCIsImZyZWV6ZSIsImZ6byIsIm9iaiIsIl90eXBlb2YiLCJpc0Zyb3plbiIsImtleXMiLCJmb3JFYWNoIiwiaWR4IiwiZGVlcENsb25lIiwidmFsdWUiLCJuZXdPYmoiLCJBcnJheSIsImlzQXJyYXkiLCJhc3NpZ24iLCJKU09OIiwicGFyc2UiLCJzdHJpbmdpZnkiLCJmaWx0ZXIiLCJrIl0sIm1hcHBpbmdzIjoiOzs7OztzUUFBQSxJQ0FBQSxFQUFpQkMsT0FBT0MsT0FBTyxDQUM3QkMsSUREZSxTQUFTQSxFQUFJQyxHQUM1QixHQUFtQixXQUFmQyxFQUFPRCxLQUFxQkgsT0FBT0ssU0FBU0YsR0FNaEQsT0FMRUgsT0FBT00sS0FBS0gsR0FBS0ksU0FBUSxTQUFDQyxHQUFELE9BQVNOLEVBQUlDLEVBQUlLLE9BQzFDUixPQUFPQyxPQUFPRSxHQUlUQSxHQ0xQTSxVQ0VlLFNBQVNBLEVBQVVDLEdBQ2xDLElBQUlDLEVBTGdCUixFQVFwQixPQUZBUyxNQUFNQyxRQUFRSCxHQUFVQyxFQUFTRCxHQU5iUCxFQU02Q08sRUFBdEJDLEVBTHBDWCxPQUFPYyxPQUFPLEdBQUlYLElBT3JCUyxNQUFNQyxRQUFRRixHQUNoQkEsRUFBU0ksS0FBS0MsTUFBTUQsS0FBS0UsVUFBVU4sS0FHbkNYLE9BQU9NLEtBQUtLLEdBQ1RPLFFBQU8sU0FBQ0MsR0FBRCxNQUE0QixXQUFyQmYsRUFBT08sRUFBT1EsT0FDNUJaLFNBQVEsU0FBQ1ksR0FBT1IsT0FBQUEsRUFBT1EsR0FBS1YsRUFBVUUsRUFBT1EsT0FDekNSIn0=