applyDecoratedDescriptor.js 908 B

123456789101112131415161718192021222324252627282930
  1. function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {
  2. var desc = {};
  3. Object.keys(descriptor).forEach(function (key) {
  4. desc[key] = descriptor[key];
  5. });
  6. desc.enumerable = !!desc.enumerable;
  7. desc.configurable = !!desc.configurable;
  8. if ('value' in desc || desc.initializer) {
  9. desc.writable = true;
  10. }
  11. desc = decorators.slice().reverse().reduce(function (desc, decorator) {
  12. return decorator(target, property, desc) || desc;
  13. }, desc);
  14. if (context && desc.initializer !== void 0) {
  15. desc.value = desc.initializer ? desc.initializer.call(context) : void 0;
  16. desc.initializer = undefined;
  17. }
  18. if (desc.initializer === void 0) {
  19. Object.defineProperty(target, property, desc);
  20. desc = null;
  21. }
  22. return desc;
  23. }
  24. module.exports = _applyDecoratedDescriptor, module.exports.__esModule = true, module.exports["default"] = module.exports;