{"map":"{\"version\":3,\"file\":\"index.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/freeze/index.ts\"],\"names\":[],\"mappings\":\"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD,SAAS,MAAM,CAAE,MAAc,EAAE,IAAY,EAAE,OAAY;IAA1B,qBAAA,EAAA,YAAY;IAAE,wBAAA,EAAA,YAAY;IACzD,IAAI,CAAC,MAAM;QAAE,OAAM;IACnB,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;IAC5D,IAAI,IAAI,EAAE;QACR,IAAI,SAAS,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAA;QAElD,yCAAyC;QACzC,KAAiB,UAAS,EAAT,uBAAS,EAAT,uBAAS,EAAT,IAAS,EAAE;YAAvB,IAAI,MAAI,kBAAA;YACX,IAAI,KAAK,GAAG,MAAM,CAAC,MAAI,CAAC,CAAA;YACxB,IAAI,MAAM,GAAG,OAAO,CAAC,MAAI,CAAC,CAAA;YAE1B,IAAI,CAAC,KAAK;gBAAE,MAAK;YACjB,IAAI,QAAQ,CAAC,KAAK,CAAC;gBAAE,MAAK;YAC1B,IAAI,MAAM;gBAAE,MAAK;YAEjB,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;YACtC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;YAEtC,IAAI,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,MAAI,CAAC,IAAI,EAAE,CAAA;YAEpE,IAAI,CAAC,UAAU,CAAC,QAAQ;gBAAE,MAAK;YAE/B,MAAM,CAAC,MAAI,CAAC,GAAG,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC;gBACjD,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;SAC9B;KACF;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AAC9B,CAAC;AAED,SAAS,QAAQ,CAAE,GAAW;IAC5B,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AAC7B,CAAC;AAED,OAAO,EACL,MAAM,EACN,QAAQ,EACT,CAAA\",\"sourcesContent\":[\"'use strict'\\n\\nimport { getObjectType } from '../objectType/index'\\n\\nfunction freeze (object: object, deep = false, exclude = {}) {\\n  if (!object) return\\n  exclude = getObjectType(exclude) === 'Object' ? exclude : {}\\n  if (deep) {\\n    let propNames = Object.getOwnPropertyNames(object)\\n\\n    // Freeze properties before freezing self\\n    for (let name of propNames) {\\n      let value = object[name]\\n      let ignore = exclude[name]\\n\\n      if (!value) break\\n      if (isFrozen(value)) break\\n      if (ignore) break\\n\\n      freeze(value.prototype, true, exclude)\\n      freeze(value.__proto__, true, exclude)\\n\\n      let descriptor = Object.getOwnPropertyDescriptor(object, name) || {}\\n\\n      if (!descriptor.writable) break\\n\\n      object[name] = value && typeof value === 'object' ?\\n        freeze(value, true) : value\\n    }\\n  }\\n\\n  return Object.freeze(object)\\n}\\n\\nfunction isFrozen (obj: object) {\\n  return Object.isFrozen(obj)\\n}\\n\\nexport {\\n  freeze,\\n  isFrozen\\n}\\n\"]}","code":"'use strict';\r\nimport { getObjectType } from '../objectType/index';\r\nfunction freeze(object, deep, exclude) {\r\n    if (deep === void 0) { deep = false; }\r\n    if (exclude === void 0) { exclude = {}; }\r\n    if (!object)\r\n        return;\r\n    exclude = getObjectType(exclude) === 'Object' ? exclude : {};\r\n    if (deep) {\r\n        var propNames = Object.getOwnPropertyNames(object);\r\n        // Freeze properties before freezing self\r\n        for (var _i = 0, propNames_1 = propNames; _i < propNames_1.length; _i++) {\r\n            var name_1 = propNames_1[_i];\r\n            var value = object[name_1];\r\n            var ignore = exclude[name_1];\r\n            if (!value)\r\n                break;\r\n            if (isFrozen(value))\r\n                break;\r\n            if (ignore)\r\n                break;\r\n            freeze(value.prototype, true, exclude);\r\n            freeze(value.__proto__, true, exclude);\r\n            var descriptor = Object.getOwnPropertyDescriptor(object, name_1) || {};\r\n            if (!descriptor.writable)\r\n                break;\r\n            object[name_1] = value && typeof value === 'object' ?\r\n                freeze(value, true) : value;\r\n        }\r\n    }\r\n    return Object.freeze(object);\r\n}\r\nfunction isFrozen(obj) {\r\n    return Object.isFrozen(obj);\r\n}\r\nexport { freeze, isFrozen };\r\n//# sourceMappingURL=index.js.map"}
