diff --git a/lib/letter-avatars.js b/lib/letter-avatars.ts similarity index 75% rename from lib/letter-avatars.js rename to lib/letter-avatars.ts index 6fb1888ab..f5c27a9d5 100644 --- a/lib/letter-avatars.js +++ b/lib/letter-avatars.ts @@ -1,12 +1,11 @@ 'use strict' -// external modules -const crypto = require('crypto') -const randomcolor = require('randomcolor') -const config = require('./config') +import { createHash } from 'crypto' +import randomColor from 'randomcolor' +import config from './config' // core -exports.generateAvatar = function (name) { - const color = randomcolor({ +export function generateAvatar (name: string): string { + const color = randomColor({ seed: name, luminosity: 'dark' }) @@ -25,16 +24,16 @@ exports.generateAvatar = function (name) { return svg } -exports.generateAvatarURL = function (name, email = '', big = true) { +export function generateAvatarURL (name: string, email = '', big = true): string { let photo - if (typeof email !== 'string') { + if (email.length === 0) { email = '' + name + '@example.com' } name = encodeURIComponent(name) - let hash = crypto.createHash('md5') + const hash = createHash('md5') hash.update(email.toLowerCase()) - let hexDigest = hash.digest('hex') + const hexDigest = hash.digest('hex') if (email !== '' && config.allowGravatar) { photo = 'https://cdn.libravatar.org/avatar/' + hexDigest diff --git a/package.json b/package.json index 98ca7287b..79bcbfcff 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ }, "dependencies": { "@passport-next/passport-openid": "^1.0.0", + "@types/randomcolor": "^0.5.4", "Idle.Js": "git+https://github.com/shawnmclean/Idle.js", "archiver": "^2.1.1", "async": "^2.1.4", diff --git a/yarn.lock b/yarn.lock index e0c3cfff7..6f0c3f5c3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -202,6 +202,11 @@ resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.1.tgz#937fab3194766256ee09fcd40b781740758617e7" integrity sha512-lhbQXx9HKZAPgBkISrBcmAcMpZsmpe/Cd/hY7LGZS5OfkySUBItnPZHgQPssWYUET8elF+yCFBbP1Q0RZPTdaw== +"@types/randomcolor@^0.5.4": + version "0.5.4" + resolved "https://registry.yarnpkg.com/@types/randomcolor/-/randomcolor-0.5.4.tgz#75230e780326bf372c13015c361dddca1087eb0f" + integrity sha512-7pIw2aYtWXEiqfP01L1+b+Xk3mGGKA14yW492CfaR0lliSM4W6PGB/uhjQX08kFMEK8sAOrT3ufiKUnLlG0ulw== + "@types/range-parser@*": version "1.2.3" resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c"