gab-social/app/javascript/gabsocial/utils/urls.js

25 lines
572 B
JavaScript

import punycode from 'punycode'
const IDNA_PREFIX = 'xn--'
export const decodeIDNA = (domain) => {
return domain
.split('.')
.map(part => part.indexOf(IDNA_PREFIX) === 0 ? punycode.decode(part.slice(IDNA_PREFIX.length)) : part)
.join('.')
}
export const getHostname = (url) => {
const parser = document.createElement('a')
parser.href = url
return parser.hostname
}
export const trim = (text, len) => {
const cut = text.indexOf(' ', len)
if (cut === -1) {
return text
}
return text.substring(0, cut) + (text.length > len ? '…' : '')
}