ObjectHelper.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. 'use strict';
  2. var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
  3. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  4. /**
  5. * Licensed Materials - Property of IBM
  6. * IBM Cognos Products: Dashboard
  7. * (C) Copyright IBM Corp. 2018, 2019
  8. * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  9. */
  10. define([], function () {
  11. 'use strict';
  12. var _isObject = function _isObject(arg) {
  13. return arg && (typeof arg === 'undefined' ? 'undefined' : _typeof(arg)) === 'object';
  14. };
  15. var _isFreezable = function _isFreezable(arg) {
  16. return _isObject(arg) && !Object.isFrozen(arg);
  17. };
  18. var ObjectHelper = function () {
  19. function ObjectHelper() {
  20. _classCallCheck(this, ObjectHelper);
  21. }
  22. ObjectHelper.deepFreezeObject = function deepFreezeObject(objToFreeze) {
  23. if (_isFreezable(objToFreeze)) {
  24. Object.freeze(objToFreeze);
  25. var props = Array.isArray(objToFreeze) ? Object.keys(objToFreeze) : Object.getOwnPropertyNames(objToFreeze);
  26. for (var _iterator = props, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
  27. var _ref;
  28. if (_isArray) {
  29. if (_i >= _iterator.length) break;
  30. _ref = _iterator[_i++];
  31. } else {
  32. _i = _iterator.next();
  33. if (_i.done) break;
  34. _ref = _i.value;
  35. }
  36. var name = _ref;
  37. var value = objToFreeze[name];
  38. ObjectHelper.deepFreezeObject(value);
  39. }
  40. }
  41. return objToFreeze;
  42. };
  43. return ObjectHelper;
  44. }();
  45. return ObjectHelper;
  46. });
  47. //# sourceMappingURL=ObjectHelper.js.map