Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@supertenant/core / src / util / url.js
Size: Mime:
// (c) Copyright 2023 Supertenant Ltd. - all rights reserved.
// See LICENSE file in project root for license terms.
"use strict";const url=require("url"),secrets=require("../secrets");function nullToEmptyString(string){return null==string?"":string}function getCharCountUntilOccurenceOfChar(haystack,needle){needle=haystack.indexOf(needle);return-1===needle?haystack.length:needle}exports.sanitizeUrl=function(urlString){let normalizedUrl;try{var p=url.parse(urlString);if(null==p.protocol&&null==p.host&&null==p.pathname)return urlString;normalizedUrl=""+nullToEmptyString(p.protocol)+(null!=p.protocol||null!=p.host?"//":"")+(null!=p.auth?"<redacted>:<redacted>@":"")+nullToEmptyString(p.host)+nullToEmptyString(p.pathname)}catch(e){return urlString}p=getCharCountUntilOccurenceOfChar(normalizedUrl,";");return normalizedUrl.substring(0,p)},exports.filterParams=function(queryString){if(queryString&&""!==queryString)return"string"!=typeof queryString?queryString:queryString.split("&").map(param=>{var key=param.split("=")[0];return key&&secrets.isSecret(key)?key+"=<redacted>":param}).join("&")},exports.splitAndFilter=function(fullUrl){fullUrl=fullUrl.split("?");return 2<=fullUrl.length?exports.filterParams(fullUrl[1]):null},exports.dropLeadingQuestionMark=function(queryString){return queryString&&"?"===queryString.charAt(0)?queryString.substring(1):queryString};