@gravatar/js
Version:
Typescript friendly, email to gravatar generator which works seamlesly in Node, Browser and in Electron
29 lines • 1.19 kB
JavaScript
import md5 from 'md5';
const BASE_URL = '://www.gravatar.com/avatar/';
// when a protocol is not provided check. If the code is running in a browser with https protocol use 'https', else use 'http'
const getProtocol = (protocol) => {
if (protocol)
return protocol;
if (window && window.location && (window.location.protocol === 'http' || window.location.protocol === 'https'))
return window.location.protocol;
return 'http';
};
function getQueryStringWithOptions(options) {
const { size, defaultImage } = options;
let queryString = '?';
if (size)
queryString += `s=${size}&`;
if (defaultImage)
queryString += `d=${defaultImage}&`;
if (queryString.endsWith('&') || queryString.endsWith('?')) {
return queryString.substr(0, queryString.length - 1);
}
return queryString;
}
export function Gravatar(options) {
const emailHash = options.md5Hash || md5(options.email.trim().toLowerCase());
const urlProtocol = getProtocol(options.protocol);
const queryString = getQueryStringWithOptions(options);
return `${urlProtocol}${BASE_URL}${emailHash}${queryString}`;
}
//# sourceMappingURL=gravatar.js.map