Files
web-temp/layers/utils/formatUtil.ts

56 lines
1.4 KiB
TypeScript

/**
* 포맷 유틸리티 함수
* @description 포맷 처리에 필요한 유틸리티 함수를 제공합니다.
*/
/**
* JWT 디코딩
* @param base64EncodeVal JWT 인코딩 값
* @returns JWT 디코딩 값
*/
export const csrFormatJWT = (base64EncodeVal: string) => {
const decodeVal = JSON.parse(
decodeURIComponent(
window
.atob(base64EncodeVal)
.split('')
.map(function (c) {
return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)
})
.join('')
)
)
return decodeVal
}
/**
* 배열 또는 객체를 배열로 변환합니다.
* @param value 변환할 값 (배열, 객체, 또는 undefined/null)
* @returns 배열
*/
export const formatToArray = <T>(
value: T[] | Record<string, T> | undefined | null
): T[] => {
if (!value) return []
return Array.isArray(value) ? value : Object.values(value)
}
/**
* URL 경로에서 로케일 접두사를 제거합니다.
* @param path 경로 문자열
* @returns 로케일 접두사가 제거된 경로
*/
export const formatPathWithoutLocale = (path: string): string => {
return path.replace(/^\/[a-z]{2}(?=\/|$)/, '') || '/'
}
/**
* URL이 내부 링크인지 확인합니다.
* @param url 확인할 URL
* @returns 내부 링크 여부
*/
export const isInternalUrl = (url?: string): boolean => {
return !!url && !url.startsWith('http')
}