24 lines
540 B
JavaScript
24 lines
540 B
JavaScript
|
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 ? '…' : '')
|
||
|
}
|