grafana/public/app/core/services/echo/utils.ts

32 lines
932 B
TypeScript

import { CurrentUserDTO } from '@grafana/data';
import { attachDebugger, createLogger } from '@grafana/ui';
/**
* Returns an opaque identifier for a user, for reporting purposes.
* Because this is for use when reporting across multiple Grafana installations
* It cannot simply be user.id because that's not unique across two installations.
*/
export function getUserIdentifier(user: CurrentUserDTO) {
if (user.externalUserId.length) {
return user.externalUserId;
}
return user.email;
}
export function loadScript(url: string, async = false) {
return new Promise((resolve) => {
const script = document.createElement('script');
script.onload = resolve;
script.src = url;
script.async = async;
document.head.appendChild(script);
});
}
/** @internal */
export const echoLogger = createLogger('EchoSrv');
export const echoLog = echoLogger.logger;
attachDebugger('echo', undefined, echoLogger);