UNPKG

vuepress-plugin-social-share

Version:

Social sharing plugin for VuePress

61 lines (60 loc) 2.08 kB
"use strict"; /** * @file utils */ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createNetworksData = exports.inBrowser = exports.isSVG = exports.isExternalUrl = exports.isEmail = void 0; exports.getMetaContentByName = getMetaContentByName; const deepmerge_1 = __importDefault(require("deepmerge")); const constants_1 = require("./constants"); const networks_1 = require("./networks"); /** * Check if given val is valid email address * @param val - given val * @returns `true` if given an email address */ const isEmail = (val) => constants_1.RE_EMAIL.test(val); exports.isEmail = isEmail; /** * Check if the given url is external * @param url - given url * @returns `true` is given an external url */ const isExternalUrl = (url) => constants_1.RE_EXTERNAL_LINK.test(url); exports.isExternalUrl = isExternalUrl; /** * Check if the given source string is SVG * @param source - given source string * @returns `true` if given a svg source string */ const isSVG = (source) => constants_1.RE_SVG_SOURCE.test(source); exports.isSVG = isSVG; exports.inBrowser = typeof window !== 'undefined'; /** * Return meta tag's content in browser by name * @param name - meta tag's name * * @returns meta tag's content if exists, or `''` */ function getMetaContentByName(name) { if (!exports.inBrowser) return ''; const tag = document.querySelectorAll(name)[0]; if (!tag) return ''; return tag.getAttribute('content') || ''; } const createNetworksData = (options = {}) => { const { email = '', extendsNetworks = {} } = options; if ((0, exports.isEmail)(email)) { networks_1.BASE_NETWORKS.email.sharer = networks_1.BASE_NETWORKS.email.sharer.replace('@email', email); } else { delete networks_1.BASE_NETWORKS.email; } return (0, deepmerge_1.default)(networks_1.BASE_NETWORKS, extendsNetworks); }; exports.createNetworksData = createNetworksData;