2024-02-28 16:49:44 +00:00
|
|
|
export const shorten = (str: string, offset = 9) => {
|
|
|
|
// return original string if it is not long enough
|
|
|
|
if (str.length < offset * 2 + 4) return str
|
|
|
|
|
|
|
|
return `${str.slice(0, offset)}...${str.slice(
|
|
|
|
str.length - offset,
|
|
|
|
str.length
|
|
|
|
)}`
|
|
|
|
}
|
2024-04-08 12:45:51 +00:00
|
|
|
|
|
|
|
export const stringToHex = (str: string) => {
|
|
|
|
// Convert the string to an array of UTF-16 code units using the spread operator
|
|
|
|
const codeUnits = [...str]
|
|
|
|
|
|
|
|
// Map each code unit to its hexadecimal representation
|
|
|
|
const hexChars = codeUnits.map((codeUnit) => {
|
|
|
|
// Convert the code unit to its hexadecimal representation with leading zeros
|
|
|
|
const hex = codeUnit.charCodeAt(0).toString(16).padStart(2, '0')
|
|
|
|
return hex
|
|
|
|
})
|
|
|
|
|
|
|
|
// Join the hexadecimal characters into a single string
|
|
|
|
const hexString = hexChars.join('')
|
|
|
|
|
|
|
|
// Return the resulting hexadecimal string
|
|
|
|
return hexString
|
|
|
|
}
|
|
|
|
|
|
|
|
export const hexToString = (hex: string) => {
|
|
|
|
// Split the hex string into pairs of two characters
|
|
|
|
const pairs = hex.match(/.{1,2}/g) || []
|
|
|
|
|
|
|
|
// Convert each pair from hexadecimal to its decimal equivalent,
|
|
|
|
// then convert each decimal value to its character representation
|
|
|
|
const chars = pairs.map((pair) => String.fromCharCode(parseInt(pair, 16)))
|
|
|
|
|
|
|
|
// Join the resulting characters into a single string
|
|
|
|
return chars.join('')
|
|
|
|
}
|