UNPKG

@bigfishtv/cockpit

Version:

88 lines (73 loc) 2.55 kB
'use strict'; exports.__esModule = true; exports.htmlToAbsoluteUrls = htmlToAbsoluteUrls; exports.toAbsoluteUrl = toAbsoluteUrl; exports.toRelativeUrl = toRelativeUrl; exports.parseQuery = parseQuery; exports.stringifyQuery = stringifyQuery; var _queryString = require('query-string'); var _queryString2 = _interopRequireDefault(_queryString); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * URL Utilities * @module Utilities/urlUtils */ /** * Replaces relative urls with absolute ones. Supports src and href attributes. * * @param {String} html * @param {String} baseUrl = window.location.origin * @return {String} */ function htmlToAbsoluteUrls(html) { var baseUrl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window.location.origin; return html.replace(/(src|href)=(["'])(\/[^"']*)/gi, '$1=$2' + baseUrl + '$3'); } /** * Converts a relative url to absolute, ignores if provided an absolute url * @param {String} url Relative url * @param {String} baseUrl Defaults to window.location.origin * @return {String} */ function toAbsoluteUrl(url) { var baseUrl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window.location.origin; if (!url.match(/((http|https|ftp):\/\/)/gi) && url.charAt(0) == '/') return baseUrl + url; return url; } /** * Converts an absolute url to relative, ignores if provided an absolute url * @param {String} url Absolute url * @return {String} */ function toRelativeUrl(url) { var regex = /(http|https|ftp):\/\/([\-_A-z0-9\.]*)((:\d){2,4})?(.*)/gi; if (!url.match(regex)) return url; return url.replace(regex, '$5'); } var defaultConfig = { arrayFormat: 'bracket' /** * Parse a query string into an object. Uses query-string package * * eg. parseQuery('?page=1') -> { page: 1 } * * @param {string} query * @param {object} config * @return {object} */ };function parseQuery(query) { var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultConfig; return _queryString2.default.parse(query, config); } /** * Creates a query string from an object. Uses query-string package * * eg. stringifyQuery({ page: 1 }) -> 'page=1' * * @param {object} queryObj * @param {object} config * @return {string} */ function stringifyQuery(queryObj) { var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultConfig; return _queryString2.default.stringify(queryObj, config); }