12345678910111213141516171819202122 |
- 'use strict';
- var $ = require('../internals/export');
- var ReflectMetadataModule = require('../internals/reflect-metadata');
- var anObject = require('../internals/an-object');
-
- var toMetadataKey = ReflectMetadataModule.toKey;
- var getOrCreateMetadataMap = ReflectMetadataModule.getMap;
- var store = ReflectMetadataModule.store;
-
- // `Reflect.deleteMetadata` method
- // https://github.com/rbuckton/reflect-metadata
- $({ target: 'Reflect', stat: true }, {
- deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) {
- var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]);
- var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);
- if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false;
- if (metadataMap.size) return true;
- var targetMetadata = store.get(target);
- targetMetadata['delete'](targetKey);
- return !!targetMetadata.size || store['delete'](target);
- }
- });
|