UNPKG

@gravatar/js

Version:

Typescript friendly, email to gravatar generator which works seamlesly in Node, Browser and in Electron

29 lines 1.19 kB
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