import type { FormatDistanceFn , FormatDistanceLocale } from '../../../types' ; type FormatDistanceTokenValue = string | { one : string ; other : string ; } ; const formatDistanceLocale = { lessThanXSeconds : { one : '1초 미만' , other : '{{count}}초 미만' , } , xSeconds : { one : '1초' , other : '{{count}}초' , } , halfAMinute : '30초' , lessThanXMinutes : { one : '1분 미만' , other : '{{count}}분 미만' , } , xMinutes : { one : '1분' , other : '{{count}}분' , } , aboutXHours : { one : '약 1시간' , other : '약 {{count}}시간' , } , xHours : { one : '1시간' , other : '{{count}}시간' , } , xDays : { one : '1일' , other : '{{count}}일' , } , aboutXWeeks : { one : '약 1주' , other : '약 {{count}}주' , } , xWeeks : { one : '1주' , other : '{{count}}주' , } , aboutXMonths : { one : '약 1개월' , other : '약 {{count}}개월' , } , xMonths : { one : '1개월' , other : '{{count}}개월' , } , aboutXYears : { one : '약 1년' , other : '약 {{count}}년' , } , xYears : { one : '1년' , other : '{{count}}년' , } , overXYears : { one : '1년 이상' , other : '{{count}}년 이상' , } , almostXYears : { one : '거의 1년' , other : '거의 {{count}}년' , } , } ; const formatDistance = ( token , count , options ) => { let result ; const tokenValue = formatDistanceLocale [ token ] ; if ( typeof tokenValue === 'string' ) { result = tokenValue ; } else if ( count === 1 ) { result = tokenValue . one ; } else { result = tokenValue . other . replace ( '{{count}}' , count . toString ( ) ) ; } if ( options ?. addSuffix ) { if ( options . comparison && options . comparison > 0 ) { return result + ' 후' ; } else { return result + ' 전' ; } } return result ; } ; export default formatDistance ;