UNPKG

@gravatar/js

Version:

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

36 lines 1.49 kB
"use strict"; 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