[API] Support dynamic telemetry metadata (#1941)

* [API] Support dynamic telemetry metadata

Add support for dynamic telemetry metadata via custom telemetry
metadata providers.  

The metadata provider API should be considered unstable in it's
current invocation.

* Perform deprecation checking at runtime
* SWG uses telemetry metadata provider
* Don't throw with no matched metadata provider
* Update API docs
* Add license header
* Combine metadata providers with general telemetry providers
* Replace `TelemetryAPI.canProvideTelemetry` with
`TelemetryAPI.isTelemetryObject`.  
* CanProvideTelemetry is deprecated
* Change SWG inputs to numberfield
This commit is contained in:
Pete Richards
2018-03-21 14:18:08 -07:00
committed by Andrew Henry
parent 00fb071fe2
commit 8db75bf41e
19 changed files with 689 additions and 324 deletions

View File

@ -91,7 +91,7 @@ define(
mockScope.domainObject = mockDomainObject;
mockTelemetryAPI = jasmine.createSpyObj("telemetryAPI", [
"canProvideTelemetry",
"isTelemetryObject",
"subscribe",
"getMetadata",
"commonValuesForHints",
@ -117,7 +117,7 @@ define(
return formatter;
});
mockTelemetryAPI.canProvideTelemetry.andReturn(false);
mockTelemetryAPI.isTelemetryObject.andReturn(false);
mockTimeout = jasmine.createSpy("timeout");
mockTimeout.andReturn(1); // Return something
@ -199,7 +199,7 @@ define(
mockComposition.load.andReturn(Promise.resolve(mockChildren));
mockCompositionAPI.get.andReturn(mockComposition);
mockTelemetryAPI.canProvideTelemetry.andCallFake(function (obj) {
mockTelemetryAPI.isTelemetryObject.andCallFake(function (obj) {
return obj.identifier.key === mockTelemetryObject.identifier.key;
});
@ -287,7 +287,7 @@ define(
mockChildren = mockChildren.concat(mockTelemetryChildren);
mockComposition.load.andReturn(Promise.resolve(mockChildren));
mockTelemetryAPI.canProvideTelemetry.andCallFake(function (object) {
mockTelemetryAPI.isTelemetryObject.andCallFake(function (object) {
if (object === mockTelemetryObject) {
return false;
} else {