1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>
This commit is contained in:
Iku-turso 2022-09-02 15:12:32 +03:00
parent 95babe245c
commit 64467b08ce

View File

@ -25,7 +25,7 @@ const telemetryDecoratorInjectable = getInjectable({
const emitTelemetry = diForDecorator.inject(emitTelemetryInjectable); const emitTelemetry = diForDecorator.inject(emitTelemetryInjectable);
const whiteList = diForDecorator.inject( const whiteList = diForDecorator.inject(
telemetryWhiteListForFunctionsInjectable telemetryWhiteListForFunctionsInjectable,
); );
const shouldEmitTelemetry = shouldEmitTelemetryFor(whiteList); const shouldEmitTelemetry = shouldEmitTelemetryFor(whiteList);
@ -33,25 +33,25 @@ const telemetryDecoratorInjectable = getInjectable({
return { return {
decorate: decorate:
(instantiateToBeDecorated: any) => (instantiateToBeDecorated: any) =>
(di: DiContainerForInjection, instantiationParameter: any) => { (di: DiContainerForInjection, instantiationParameter: any) => {
const instance = instantiateToBeDecorated(di, instantiationParameter); const instance = instantiateToBeDecorated(di, instantiationParameter);
if (isFunction(instance)) { if (isFunction(instance)) {
return (...args: any[]) => { return (...args: any[]) => {
const currentContext = di.context.at(-1); const currentContext = di.context.at(-1);
assert(currentContext); assert(currentContext);
if (shouldEmitTelemetry(currentContext.injectable)) { if (shouldEmitTelemetry(currentContext.injectable)) {
emitTelemetry({ action: currentContext.injectable.id, args }); emitTelemetry({ action: currentContext.injectable.id, args });
} }
return instance(...args); return instance(...args);
}; };
} }
return instance; return instance;
}, },
}; };
}, },
@ -61,10 +61,9 @@ const telemetryDecoratorInjectable = getInjectable({
injectionToken: instantiationDecoratorToken, injectionToken: instantiationDecoratorToken,
}); });
const shouldEmitTelemetryFor = (whiteList: string[]) => ( const shouldEmitTelemetryFor =
injectable: Injectable<any, any, any>, (whiteList: string[]) => (injectable: Injectable<any, any, any>) =>
) => injectable.tags?.includes("emit-telemetry") ||
injectable.tags?.includes("emit-telemetry") || whiteList.includes(injectable.id);
whiteList.includes(injectable.id);
export default telemetryDecoratorInjectable; export default telemetryDecoratorInjectable;