System.register(['core-js'], function (_export) {
'use strict';
var core, originStorage, unknownOrigin, Origin;
function _classCallCheck(instance, Constructor) { Iif (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
return {
setters: [function (_coreJs) {
core = _coreJs['default'];
}],
execute: function () {
originStorage = new Map();
unknownOrigin = Object.freeze({ moduleId: undefined, moduleMember: undefined });
Iif (!window.System) {
window.System = {};
}
Eif (!System.forEachModule) {
System.forEachModule = function () {};
}
/**
* A metadata annotation that describes the origin module of the function to which it's attached.
*
* @class Origin
* @constructor
* @param {string} moduleId The origin module id.
* @param {string} moduleMember The name of the export in the origin module.
*/
Origin = (function () {
function Origin(moduleId, moduleMember) {
_classCallCheck(this, Origin);
this.moduleId = moduleId;
this.moduleMember = moduleMember;
}
/**
* Get the Origin annotation for the specified function.
*
* @method get
* @static
* @param {Function} fn The function to inspect for Origin metadata.
* @return {Origin} Returns the Origin metadata.
*/
Origin.get = function get(fn) {
var origin = originStorage.get(fn);
if (origin === undefined) {
System.forEachModule(function (key, value) {
for (var name in value) {
var exp = value[name];
if (exp === fn) {
originStorage.set(fn, origin = new Origin(key, name));
return;
}
}
if (value === fn) {
originStorage.set(fn, origin = new Origin(key, 'default'));
return;
}
});
}
return origin || unknownOrigin;
};
/**
* Set the Origin annotation for the specified function.
*
* @method set
* @static
* @param {Function} fn The function to set the Origin metadata on.
* @param {origin} fn The Origin metadata to store on the function.
* @return {Origin} Returns the Origin metadata.
*/
Origin.set = function set(fn, origin) {
originStorage.set(fn, origin);
};
return Origin;
})();
_export('Origin', Origin);
}
};
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9FaXNlbmJlcmdFZmZlY3QvRG9jdW1lbnRzL0dpdEh1Yi9UaGUgRHVyYW5kYWwgUHJvamVjdC9hdXJlbGlhL21ldGFkYXRhL3NyYy9vcmlnaW4uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O1lBRUksYUFBYSxFQUNiLGFBQWEsRUFrQkosTUFBTTs7Ozs7Ozs7O0FBbkJmLG1CQUFhLEdBQUcsSUFBSSxHQUFHLEVBQUU7QUFDekIsbUJBQWEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxZQUFZLEVBQUMsU0FBUyxFQUFDLENBQUM7O0FBRTlFLFVBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFDO0FBQ2hCLGNBQU0sQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO09BQ3BCOztBQUVELFVBQUcsQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFDO0FBQ3ZCLGNBQU0sQ0FBQyxhQUFhLEdBQUcsWUFBVSxFQUFFLENBQUM7T0FDckM7Ozs7Ozs7Ozs7O0FBVVksWUFBTTtBQUNOLGlCQURBLE1BQU0sQ0FDTCxRQUFRLEVBQUUsWUFBWSxFQUFDO2dDQUR4QixNQUFNOztBQUVmLGNBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0FBQ3pCLGNBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1NBQ2xDOzs7Ozs7Ozs7OztBQUpVLGNBQU0sQ0FjVixHQUFHLEdBQUEsYUFBQyxFQUFFLEVBQUM7QUFDWixjQUFJLE1BQU0sR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDOztBQUVuQyxjQUFHLE1BQU0sS0FBSyxTQUFTLEVBQUM7QUFDdEIsa0JBQU0sQ0FBQyxhQUFhLENBQUMsVUFBQyxHQUFHLEVBQUUsS0FBSyxFQUFLO0FBQ25DLG1CQUFJLElBQUksSUFBSSxJQUFJLEtBQUssRUFBQztBQUNwQixvQkFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3RCLG9CQUFHLEdBQUcsS0FBSyxFQUFFLEVBQUM7QUFDWiwrQkFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3RELHlCQUFPO2lCQUNSO2VBQ0Y7O0FBRUQsa0JBQUcsS0FBSyxLQUFLLEVBQUUsRUFBQztBQUNkLDZCQUFhLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7QUFDM0QsdUJBQU87ZUFDUjthQUNGLENBQUMsQ0FBQztXQUNKOztBQUVELGlCQUFPLE1BQU0sSUFBSSxhQUFhLENBQUM7U0FDaEM7Ozs7Ozs7Ozs7OztBQW5DVSxjQUFNLENBOENWLEdBQUcsR0FBQSxhQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUM7QUFDcEIsdUJBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQy9COztlQWhEVSxNQUFNOzs7d0JBQU4sTUFBTSIsImZpbGUiOiIvVXNlcnMvRWlzZW5iZXJnRWZmZWN0L0RvY3VtZW50cy9HaXRIdWIvVGhlIER1cmFuZGFsIFByb2plY3QvYXVyZWxpYS9tZXRhZGF0YS9zcmMvb3JpZ2luLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvcmUgZnJvbSAnY29yZS1qcyc7XG5cbnZhciBvcmlnaW5TdG9yYWdlID0gbmV3IE1hcCgpLFxuICAgIHVua25vd25PcmlnaW4gPSBPYmplY3QuZnJlZXplKHttb2R1bGVJZDp1bmRlZmluZWQsbW9kdWxlTWVtYmVyOnVuZGVmaW5lZH0pO1xuXG5pZighd2luZG93LlN5c3RlbSl7XG4gIHdpbmRvdy5TeXN0ZW0gPSB7fTtcbn1cblxuaWYoIVN5c3RlbS5mb3JFYWNoTW9kdWxlKXtcbiAgU3lzdGVtLmZvckVhY2hNb2R1bGUgPSBmdW5jdGlvbigpe307XG59XG5cbi8qKlxuKiBBIG1ldGFkYXRhIGFubm90YXRpb24gdGhhdCBkZXNjcmliZXMgdGhlIG9yaWdpbiBtb2R1bGUgb2YgdGhlIGZ1bmN0aW9uIHRvIHdoaWNoIGl0J3MgYXR0YWNoZWQuXG4qXG4qIEBjbGFzcyBPcmlnaW5cbiogQGNvbnN0cnVjdG9yXG4qIEBwYXJhbSB7c3RyaW5nfSBtb2R1bGVJZCBUaGUgb3JpZ2luIG1vZHVsZSBpZC5cbiogQHBhcmFtIHtzdHJpbmd9IG1vZHVsZU1lbWJlciBUaGUgbmFtZSBvZiB0aGUgZXhwb3J0IGluIHRoZSBvcmlnaW4gbW9kdWxlLlxuKi9cbmV4cG9ydCBjbGFzcyBPcmlnaW4ge1xuICBjb25zdHJ1Y3Rvcihtb2R1bGVJZCwgbW9kdWxlTWVtYmVyKXtcbiAgICB0aGlzLm1vZHVsZUlkID0gbW9kdWxlSWQ7XG4gICAgdGhpcy5tb2R1bGVNZW1iZXIgPSBtb2R1bGVNZW1iZXI7XG4gIH1cblxuICAvKipcbiAgKiBHZXQgdGhlIE9yaWdpbiBhbm5vdGF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIGZ1bmN0aW9uLlxuICAqXG4gICogQG1ldGhvZCBnZXRcbiAgKiBAc3RhdGljXG4gICogQHBhcmFtIHtGdW5jdGlvbn0gZm4gVGhlIGZ1bmN0aW9uIHRvIGluc3BlY3QgZm9yIE9yaWdpbiBtZXRhZGF0YS5cbiAgKiBAcmV0dXJuIHtPcmlnaW59IFJldHVybnMgdGhlIE9yaWdpbiBtZXRhZGF0YS5cbiAgKi9cbiAgc3RhdGljIGdldChmbil7XG4gICAgdmFyIG9yaWdpbiA9IG9yaWdpblN0b3JhZ2UuZ2V0KGZuKTtcblxuICAgIGlmKG9yaWdpbiA9PT0gdW5kZWZpbmVkKXtcbiAgICAgIFN5c3RlbS5mb3JFYWNoTW9kdWxlKChrZXksIHZhbHVlKSA9PiB7XG4gICAgICAgIGZvcih2YXIgbmFtZSBpbiB2YWx1ZSl7XG4gICAgICAgICAgdmFyIGV4cCA9IHZhbHVlW25hbWVdO1xuICAgICAgICAgIGlmKGV4cCA9PT0gZm4pe1xuICAgICAgICAgICAgb3JpZ2luU3RvcmFnZS5zZXQoZm4sIG9yaWdpbiA9IG5ldyBPcmlnaW4oa2V5LCBuYW1lKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYodmFsdWUgPT09IGZuKXtcbiAgICAgICAgICBvcmlnaW5TdG9yYWdlLnNldChmbiwgb3JpZ2luID0gbmV3IE9yaWdpbihrZXksICdkZWZhdWx0JykpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9yaWdpbiB8fCB1bmtub3duT3JpZ2luO1xuICB9XG5cbiAgLyoqXG4gICogU2V0IHRoZSBPcmlnaW4gYW5ub3RhdGlvbiBmb3IgdGhlIHNwZWNpZmllZCBmdW5jdGlvbi5cbiAgKlxuICAqIEBtZXRob2Qgc2V0XG4gICogQHN0YXRpY1xuICAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIFRoZSBmdW5jdGlvbiB0byBzZXQgdGhlIE9yaWdpbiBtZXRhZGF0YSBvbi5cbiAgKiBAcGFyYW0ge29yaWdpbn0gZm4gVGhlIE9yaWdpbiBtZXRhZGF0YSB0byBzdG9yZSBvbiB0aGUgZnVuY3Rpb24uXG4gICogQHJldHVybiB7T3JpZ2lufSBSZXR1cm5zIHRoZSBPcmlnaW4gbWV0YWRhdGEuXG4gICovXG4gIHN0YXRpYyBzZXQoZm4sIG9yaWdpbil7XG4gICAgb3JpZ2luU3RvcmFnZS5zZXQoZm4sIG9yaWdpbik7XG4gIH1cbn1cbiJdfQ== |