@gravatar/js
Version:
Typescript friendly, email to gravatar generator which works seamlesly in Node, Browser and in Electron
36 lines • 1.49 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Gravatar = void 0;
const md5_1 = __importDefault(require("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;
}
function Gravatar(options) {
const emailHash = options.md5Hash || md5_1.default(options.email.trim().toLowerCase());
const urlProtocol = getProtocol(options.protocol);
const queryString = getQueryStringWithOptions(options);
return `${urlProtocol}${BASE_URL}${emailHash}${queryString}`;
}
exports.Gravatar = Gravatar;
//# sourceMappingURL=gravatar.js.map