Initial implementation of an extension-based default analytics API
Signed-off-by: Eric Peterson <ericpeterson@spotify.com>
This commit is contained in:
@@ -101,6 +101,24 @@ export const apis: AnyApiFactory[] = [
|
||||
},
|
||||
}),
|
||||
];
|
||||
|
||||
// Or, when building for the new frontend system:
|
||||
import { AnalyticsBlueprint } from '@backstage/frontend-plugin-api';
|
||||
|
||||
export const acmeAnalyticsImplementation = AnalyticsBlueprint.make({
|
||||
name: 'acme',
|
||||
params: define =>
|
||||
define({
|
||||
deps: {},
|
||||
factory() {
|
||||
return {
|
||||
captureEvent: event => {
|
||||
window._AcmeAnalyticsQ.push(event);
|
||||
},
|
||||
};
|
||||
},
|
||||
}),
|
||||
});
|
||||
```
|
||||
|
||||
In reality, you would likely want to encapsulate instantiation logic and pull
|
||||
@@ -140,6 +158,18 @@ export const apis: AnyApiFactory[] = [
|
||||
factory: ({ configApi }) => AcmeAnalytics.fromConfig(configApi),
|
||||
}),
|
||||
];
|
||||
|
||||
// Or, when building for the new frontend system:
|
||||
import { AnalyticsBlueprint } from '@backstage/frontend-plugin-api';
|
||||
|
||||
export const acmeAnalyticsImplementation = AnalyticsBlueprint.make({
|
||||
name: 'acme',
|
||||
params: define =>
|
||||
define({
|
||||
deps: { configApi: configApiRef },
|
||||
factory: ({ configApi }) => AcmeAnalytics.fromConfig(configApi),
|
||||
}),
|
||||
});
|
||||
```
|
||||
|
||||
If you are integrating with an analytics service (as opposed to an internal
|
||||
|
||||
Reference in New Issue
Block a user