UNPKG

@modern-kit/utils

Version:
1 lines 2.9 kB
{"version":3,"file":"index.cjs","sources":["../../../src/formatter/formatCurrencyKRW/index.ts"],"sourcesContent":["import { formatValueWithSymbol } from '../formatValueWithSymbol';\nimport { formatNumberWithCommas } from '../formatNumberWithCommas';\nimport { isNumber } from '../../validator/isNumber';\n\nconst getKRWSymbolOptions = (isSymbol: boolean) => {\n return isSymbol\n ? {\n prefix: '₩',\n }\n : {\n suffix: '원',\n };\n};\n/**\n * @description 주어진 `숫자` 또는 `숫자로 이뤄진 문자열`에 기호를 추가한 문자열을 반환하는 함수입니다.\n *\n * - \"\"이 아닌 통화 기호(₩)로 표기할 경우 `isSymbol` 옵션을 `true`로 설정할 수 있습니다. 기본값은 `false`입니다.\n * - 허용 할 소수점 자리수(`decimal`)를 선택할 수 있습니다. 기본값은 `0`입니다.\n *\n * @param {number | string} value - 포맷팅할 숫자 값.\n * @param {boolean} [options.isSymbol=false] - 통화 기호 사용 여부\n * @param {number} [options.decimal=0] - 소수점 자리수\n * @returns {string} 기호가 추가된 문자열.\n *\n * @example\n * formatCurrencyKRW(1234567);\n * formatCurrencyKRW('1234567');\n * // '1,234,567원'\n *\n * formatCurrencyKRW(-1234567);\n * formatCurrencyKRW('-1234567');\n * // '-1,234,567원'\n *\n * @example\n * formatCurrencyKRW(1234567.1234, { decimal: 2 });\n * // '1,234,567.12원'\n *\n * formatCurrencyKRW(-1234567.1234, { decimal: 2 });\n * // '-1,234,567.12원'\n *\n * @example\n * formatCurrencyKRW(1234567, { isSymbol: true });\n * // '₩1,234,567'\n *\n * formatCurrencyKRW(-1234567, { isSymbol: true });\n * // '-₩1,234,567'\n */\nexport function formatCurrencyKRW(\n value: number | string,\n options: { isSymbol?: boolean; decimal?: number } = {}\n): string {\n const { isSymbol = false, decimal = 0 } = options;\n\n const valueToUse = isNumber(value) ? value : Number(value);\n const negativeSign = valueToUse < 0 ? '-' : '';\n const absoluteValue = Math.abs(valueToUse);\n\n return `${negativeSign}${formatValueWithSymbol(\n formatNumberWithCommas(absoluteValue.toFixed(decimal)),\n getKRWSymbolOptions(isSymbol)\n )}`;\n}\n"],"names":["isNumber","formatValueWithSymbol","formatNumberWithCommas"],"mappings":";;;;;;AAIA,MAAM,mBAAA,GAAsB,CAAC,QAAA,KAAsB;AACjD,EAAA,OAAO,QAAA,GACH;AAAA,IACE,MAAA,EAAQ;AAAA,GACV,GACA;AAAA,IACE,MAAA,EAAQ;AAAA,GACV;AACN,CAAA;AAmCO,SAAS,iBAAA,CACd,KAAA,EACA,OAAA,GAAoD,EAAC,EAC7C;AACR,EAAA,MAAM,EAAE,QAAA,GAAW,KAAA,EAAO,OAAA,GAAU,GAAE,GAAI,OAAA;AAE1C,EAAA,MAAM,aAAaA,0BAAA,CAAS,KAAK,CAAA,GAAI,KAAA,GAAQ,OAAO,KAAK,CAAA;AACzD,EAAA,MAAM,YAAA,GAAe,UAAA,GAAa,CAAA,GAAI,GAAA,GAAM,EAAA;AAC5C,EAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,GAAA,CAAI,UAAU,CAAA;AAEzC,EAAA,OAAO,CAAA,EAAG,YAAY,CAAA,EAAGC,oDAAA;AAAA,IACvBC,sDAAA,CAAuB,aAAA,CAAc,OAAA,CAAQ,OAAO,CAAC,CAAA;AAAA,IACrD,oBAAoB,QAAQ;AAAA,GAC7B,CAAA,CAAA;AACH;;;;"}