From 079b6f4b6ecbe2c9a5d568d61cad1d4b082bd9c3 Mon Sep 17 00:00:00 2001 From: Eric Amodio Date: Thu, 6 Dec 2018 16:24:32 -0500 Subject: [PATCH] Optimizes gravatar lookup, since this is perf sensative code --- src/git/models/commit.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/git/models/commit.ts b/src/git/models/commit.ts index 933958d..b6f5980 100644 --- a/src/git/models/commit.ts +++ b/src/git/models/commit.ts @@ -8,6 +8,8 @@ import { Git } from '../git'; import { GitUri } from '../gitUri'; const gravatarCache: Map = new Map(); +const missingGravatarHash = '00000000000000000000000000000000'; + export function clearGravatarCache() { gravatarCache.clear(); } @@ -178,16 +180,16 @@ export abstract class GitCommit { } getGravatarUri(fallback: GravatarDefaultStyle, size: number = 16): Uri { - const key = this.email ? `${this.email.trim().toLowerCase()}:${size}` : ''; + const hash = + this.email != null && this.email.length !== 0 + ? Strings.md5(this.email.trim().toLowerCase(), 'hex') + : missingGravatarHash; + const key = `${hash}:${size}`; let gravatar = gravatarCache.get(key); if (gravatar !== undefined) return gravatar; - gravatar = Uri.parse( - `https://www.gravatar.com/avatar/${ - this.email ? Strings.md5(this.email.trim().toLowerCase(), 'hex') : '00000000000000000000000000000000' - }.jpg?s=${size}&d=${fallback}` - ); + gravatar = Uri.parse(`https://www.gravatar.com/avatar/${hash}.jpg?s=${size}&d=${fallback}`); gravatarCache.set(key, gravatar); return gravatar;