Code coverage report for src/metadata.js

Statements: 75.86% (22 / 29)      Branches: 71.43% (10 / 14)      Functions: 85.71% (6 / 7)      Lines: 75.86% (22 / 29)      Ignored: none     

All files » src/ » metadata.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 731     1   1 4   4 2   2     4 4 4           1   1                 1         4       4 4     11 2     9 4     9                           1        
System.register(['./reflect-metadata'], function (_export) {
  'use strict';
 
  var meta, Metadata;
 
  function ensureDecorators(target) {
    var applicator;
 
    if (typeof target.decorators === 'function') {
      applicator = target.decorators();
    } else {
      applicator = target.decorators;
    }
 
    Eif (typeof applicator._decorate === 'function') {
      delete target.decorators;
      applicator._decorate(target);
    } else {
      throw new Error('The return value of your decorator\'s method was not valid.');
    }
  }
 
  return {
    setters: [function (_reflectMetadata) {
      meta = _reflectMetadata['default'];
    }],
    execute: function () {
      /**
      * Provides helpers for working with metadata.
      *
      * @class Metadata
      * @static
      */
      Metadata = {
        resource: 'aurelia:resource',
        paramTypes: 'design:paramtypes',
        properties: 'design:properties',
        get: function get(metadataKey, target, propertyKey) {
          Iif (!target) {
            return undefined;
          }
 
          var result = Metadata.getOwn(metadataKey, target, propertyKey);
          return result === undefined ? Metadata.get(metadataKey, Object.getPrototypeOf(target), propertyKey) : result;
        },
        getOwn: function getOwn(metadataKey, target, propertyKey) {
          if (!target) {
            return undefined;
          }
 
          if (target.hasOwnProperty('decorators')) {
            ensureDecorators(target);
          }
 
          return Reflect.getOwnMetadata(metadataKey, target, propertyKey);
        },
        getOrCreateOwn: function getOrCreateOwn(metadataKey, Type, target, propertyKey) {
          var result = Metadata.getOwn(metadataKey, target, propertyKey);
 
          if (result === undefined) {
            result = new Type();
            Reflect.defineMetadata(metadataKey, result, target, propertyKey);
          }
 
          return result;
        }
      };
 
      _export('Metadata', Metadata);
    }
  };
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9FaXNlbmJlcmdFZmZlY3QvRG9jdW1lbnRzL0dpdEh1Yi9UaGUgRHVyYW5kYWwgUHJvamVjdC9hdXJlbGlhL21ldGFkYXRhL3NyYy9tZXRhZGF0YS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7WUF5QlcsUUFBUTs7QUF2Qm5CLFdBQVMsZ0JBQWdCLENBQUMsTUFBTSxFQUFDO0FBQy9CLFFBQUksVUFBVSxDQUFDOztBQUVmLFFBQUcsT0FBTyxNQUFNLENBQUMsVUFBVSxLQUFLLFVBQVUsRUFBQztBQUN6QyxnQkFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztLQUNsQyxNQUFJO0FBQ0gsZ0JBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO0tBQ2hDOztBQUVELFFBQUcsT0FBTyxVQUFVLENBQUMsU0FBUyxLQUFLLFVBQVUsRUFBQztBQUM1QyxhQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUM7QUFDekIsZ0JBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDOUIsTUFBSTtBQUNILFlBQU0sSUFBSSxLQUFLLENBQUMsNkRBQTZELENBQUMsQ0FBQztLQUNoRjtHQUNGOzs7Ozs7Ozs7Ozs7O0FBUVUsY0FBUSxHQUFHO0FBQ3BCLGdCQUFRLEVBQUMsa0JBQWtCO0FBQzNCLGtCQUFVLEVBQUMsbUJBQW1CO0FBQzlCLGtCQUFVLEVBQUMsbUJBQW1CO0FBQzlCLFdBQUcsRUFBQSxhQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFDO0FBQ25DLGNBQUcsQ0FBQyxNQUFNLEVBQUM7QUFDVCxtQkFBTyxTQUFTLENBQUM7V0FDbEI7O0FBRUQsY0FBSSxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQy9ELGlCQUFPLE1BQU0sS0FBSyxTQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBRSxXQUFXLENBQUMsR0FBRyxNQUFNLENBQUM7U0FDOUc7QUFDRCxjQUFNLEVBQUEsZ0JBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUM7QUFDdEMsY0FBRyxDQUFDLE1BQU0sRUFBQztBQUNULG1CQUFPLFNBQVMsQ0FBQztXQUNsQjs7QUFFRCxjQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLEVBQUM7QUFDckMsNEJBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7V0FDMUI7O0FBRUQsaUJBQU8sT0FBTyxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1NBQ2pFO0FBQ0Qsc0JBQWMsRUFBQSx3QkFBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUM7QUFDcEQsY0FBSSxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDOztBQUUvRCxjQUFHLE1BQU0sS0FBSyxTQUFTLEVBQUM7QUFDdEIsa0JBQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0FBQ3BCLG1CQUFPLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1dBQ2xFOztBQUVELGlCQUFPLE1BQU0sQ0FBQztTQUNmO09BQ0Y7OzBCQWpDVSxRQUFRIiwiZmlsZSI6Ii9Vc2Vycy9FaXNlbmJlcmdFZmZlY3QvRG9jdW1lbnRzL0dpdEh1Yi9UaGUgRHVyYW5kYWwgUHJvamVjdC9hdXJlbGlhL21ldGFkYXRhL3NyYy9tZXRhZGF0YS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtZXRhIGZyb20gJy4vcmVmbGVjdC1tZXRhZGF0YSc7XG5cbmZ1bmN0aW9uIGVuc3VyZURlY29yYXRvcnModGFyZ2V0KXtcbiAgdmFyIGFwcGxpY2F0b3I7XG5cbiAgaWYodHlwZW9mIHRhcmdldC5kZWNvcmF0b3JzID09PSAnZnVuY3Rpb24nKXtcbiAgICBhcHBsaWNhdG9yID0gdGFyZ2V0LmRlY29yYXRvcnMoKTtcbiAgfWVsc2V7XG4gICAgYXBwbGljYXRvciA9IHRhcmdldC5kZWNvcmF0b3JzO1xuICB9XG5cbiAgaWYodHlwZW9mIGFwcGxpY2F0b3IuX2RlY29yYXRlID09PSAnZnVuY3Rpb24nKXtcbiAgICBkZWxldGUgdGFyZ2V0LmRlY29yYXRvcnM7XG4gICAgYXBwbGljYXRvci5fZGVjb3JhdGUodGFyZ2V0KTtcbiAgfWVsc2V7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgcmV0dXJuIHZhbHVlIG9mIHlvdXIgZGVjb3JhdG9yXFwncyBtZXRob2Qgd2FzIG5vdCB2YWxpZC4nKTtcbiAgfVxufVxuXG4vKipcbiogUHJvdmlkZXMgaGVscGVycyBmb3Igd29ya2luZyB3aXRoIG1ldGFkYXRhLlxuKlxuKiBAY2xhc3MgTWV0YWRhdGFcbiogQHN0YXRpY1xuKi9cbmV4cG9ydCB2YXIgTWV0YWRhdGEgPSB7XG4gIHJlc291cmNlOidhdXJlbGlhOnJlc291cmNlJyxcbiAgcGFyYW1UeXBlczonZGVzaWduOnBhcmFtdHlwZXMnLFxuICBwcm9wZXJ0aWVzOidkZXNpZ246cHJvcGVydGllcycsXG4gIGdldChtZXRhZGF0YUtleSwgdGFyZ2V0LCBwcm9wZXJ0eUtleSl7XG4gICAgaWYoIXRhcmdldCl7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGxldCByZXN1bHQgPSBNZXRhZGF0YS5nZXRPd24obWV0YWRhdGFLZXksIHRhcmdldCwgcHJvcGVydHlLZXkpO1xuICAgIHJldHVybiByZXN1bHQgPT09IHVuZGVmaW5lZCA/IE1ldGFkYXRhLmdldChtZXRhZGF0YUtleSwgT2JqZWN0LmdldFByb3RvdHlwZU9mKHRhcmdldCksIHByb3BlcnR5S2V5KSA6IHJlc3VsdDtcbiAgfSxcbiAgZ2V0T3duKG1ldGFkYXRhS2V5LCB0YXJnZXQsIHByb3BlcnR5S2V5KXtcbiAgICBpZighdGFyZ2V0KXtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYodGFyZ2V0Lmhhc093blByb3BlcnR5KCdkZWNvcmF0b3JzJykpe1xuICAgICAgZW5zdXJlRGVjb3JhdG9ycyh0YXJnZXQpO1xuICAgIH1cblxuICAgIHJldHVybiBSZWZsZWN0LmdldE93bk1ldGFkYXRhKG1ldGFkYXRhS2V5LCB0YXJnZXQsIHByb3BlcnR5S2V5KTtcbiAgfSxcbiAgZ2V0T3JDcmVhdGVPd24obWV0YWRhdGFLZXksIFR5cGUsIHRhcmdldCwgcHJvcGVydHlLZXkpe1xuICAgIGxldCByZXN1bHQgPSBNZXRhZGF0YS5nZXRPd24obWV0YWRhdGFLZXksIHRhcmdldCwgcHJvcGVydHlLZXkpO1xuXG4gICAgaWYocmVzdWx0ID09PSB1bmRlZmluZWQpe1xuICAgICAgcmVzdWx0ID0gbmV3IFR5cGUoKTtcbiAgICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEobWV0YWRhdGFLZXksIHJlc3VsdCwgdGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuIl19