X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;ds=sidebyside;f=server%2Fhelpers%2Fcore-utils.ts;h=4981bb4ecb4e64cee7566ed65673201a7f427ce2;hb=604abfbef5e80d94e46658e4efa762adeab855ea;hp=443115336946150ae9363508fa3ed5ac3def52af;hpb=8d468a16fd33ec2660c3c59b3f7def53eb0cc4a1;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/helpers/core-utils.ts b/server/helpers/core-utils.ts index 443115336..4981bb4ec 100644 --- a/server/helpers/core-utils.ts +++ b/server/helpers/core-utils.ts @@ -11,6 +11,26 @@ import * as mkdirp from 'mkdirp' import { join } from 'path' import * as pem from 'pem' import * as rimraf from 'rimraf' +import { URL } from 'url' + +function sanitizeUrl (url: string) { + const urlObject = new URL(url) + + if (urlObject.protocol === 'https:' && urlObject.port === '443') { + urlObject.port = '' + } else if (urlObject.protocol === 'http:' && urlObject.port === '80') { + urlObject.port = '' + } + + return urlObject.href.replace(/\/$/, '') +} + +// Don't import remote scheme from constants because we are in core utils +function sanitizeHost (host: string, remoteScheme: string) { + const toRemove = remoteScheme === 'https' ? 443 : 80 + + return host.replace(new RegExp(`:${toRemove}$`), '') +} function isTestInstance () { return process.env.NODE_ENV === 'test' @@ -114,6 +134,8 @@ export { root, escapeHTML, pageToStartAndCount, + sanitizeUrl, + sanitizeHost, promisify0, promisify1,