UNPKG

geopf-extensions-openlayers

Version:

French Geoportal Extensions for OpenLayers libraries

52 lines (47 loc) 1.74 kB
import Logger from "./LoggerByDefault"; /** * @module ProxyUtils * @alias module:~utils/ProxyUtils * @description * ... * * @example * proxifyUrl(); */ var ProxyUtils = { /** * Ajoute un proxy aux url des couches vecteurs si besoin. * * @function proxifyUrl * @param {String} url - Url to proxify. * @param {Object} [proxyOptions] - Object defining proxy options. * @param {String} proxyOptions.proxyUrl - Proxy URL. * @param {Array.<String>} [proxyOptions.noProxyDomains] - Proxy will not be used for this list of domain names. * * @returns {String} proxy url */ proxifyUrl : function (url, proxyOptions) { // logger var logger = Logger.getLogger("proxifyUrl"); if (!proxyOptions || !proxyOptions.hasOwnProperty("proxyUrl") || proxyOptions.proxyUrl === null || proxyOptions.proxyUrl.trim().length === 0) { return url; } // on regarde si l'url nest pas dans les domaines sans proxy if (proxyOptions.noProxyDomains && Array.isArray(proxyOptions.noProxyDomains) && proxyOptions.noProxyDomains.length > 0) { for (var i in proxyOptions.noProxyDomains) { logger.trace("[ProxyUtils] proxifyUrl : analyzing " + proxyOptions.noProxyDomains[i]); if (url.indexOf(proxyOptions.noProxyDomains[i]) !== -1) { logger.info("[ProxyUtils] proxifyUrl : " + url + " found in noProxyDomains list (" + proxyOptions.noProxyDomains[i] + ")."); return url; } } } return proxyOptions.proxyUrl + encodeURIComponent(url); } }; export default ProxyUtils;