{"version":3,"file":"formatCurrency.cjs","sources":["../src/formatCurrency.ts"],"sourcesContent":["interface OptionProperties {\n\tstyle: string\n\tcurrency: string\n\tminimumFractionDigits: number\n}\n\ninterface Options {\n\tlocales: \"en-US\"\n\toptions: OptionProperties\n}\n\nexport interface formattedCurrency {\n\tcurrency: string\n\tinteger: string\n\tseparator: string\n\tdecimal: string\n\tfraction: string\n}\n\nexport function formatCurrency(amount: number, options?: Options): formattedCurrency {\n\tconst opts: Options = {\n\t\tlocales: \"en-US\",\n\t\toptions: {\n\t\t\tstyle: \"currency\",\n\t\t\tcurrency: \"USD\",\n\t\t\tminimumFractionDigits: 2,\n\t\t},\n\t\t...options,\n\t}\n\n\t// if its a whole, dollar amount, leave off the .00\n\tif (amount % 100 === 0) {\n\t\topts.options.minimumFractionDigits = 0\n\t}\n\n\tconst values = new Intl.NumberFormat(opts.locales, opts.options).formatToParts(amount / 100)\n\n\tconst result = {\n\t\tcurrency: \"\",\n\t\tinteger: \"\",\n\t\tseparator: \"\",\n\t\tdecimal: \"\",\n\t\tfraction: \"\",\n\t}\n\n\tfor (const obj of values) {\n\t\tif (obj.type === \"currency\") {\n\t\t\tresult.currency = obj.value\n\t\t\tcontinue\n\t\t}\n\t\tif (obj.type === \"integer\" || obj.type === \"group\") {\n\t\t\tresult.integer = result.integer + obj.value\n\t\t}\n\t\tif (obj.type === \"group\") {\n\t\t\tresult.separator = obj.value\n\t\t\tcontinue\n\t\t}\n\t\tif (obj.type === \"decimal\") {\n\t\t\tresult.decimal = obj.value\n\t\t\tcontinue\n\t\t}\n\t\tif (obj.type === \"fraction\") {\n\t\t\tresult.fraction = obj.value\n\t\t}\n\t}\n\n\treturn result\n}\n"],"names":[],"mappings":";;;;AAmBgB,SAAA,cAAc,CAAC,MAAc,EAAE,OAAiB,EAAA;AAC/D,IAAA,MAAM,IAAI,GAAY;AACrB,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,OAAO,EAAE;AACR,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,qBAAqB,EAAE,CAAC;AACxB,SAAA;AACD,QAAA,GAAG,OAAO;KACV,CAAA;;AAGD,IAAA,IAAI,MAAM,GAAG,GAAG,KAAK,CAAC,EAAE;AACvB,QAAA,IAAI,CAAC,OAAO,CAAC,qBAAqB,GAAG,CAAC,CAAA;AACtC,KAAA;IAED,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,GAAG,CAAC,CAAA;AAE5F,IAAA,MAAM,MAAM,GAAG;AACd,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,SAAS,EAAE,EAAE;AACb,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,QAAQ,EAAE,EAAE;KACZ,CAAA;AAED,IAAA,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;AACzB,QAAA,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE;AAC5B,YAAA,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAA;YAC3B,SAAQ;AACR,SAAA;QACD,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE;YACnD,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAA;AAC3C,SAAA;AACD,QAAA,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE;AACzB,YAAA,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC,KAAK,CAAA;YAC5B,SAAQ;AACR,SAAA;AACD,QAAA,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE;AAC3B,YAAA,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAA;YAC1B,SAAQ;AACR,SAAA;AACD,QAAA,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE;AAC5B,YAAA,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAA;AAC3B,SAAA;AACD,KAAA;AAED,IAAA,OAAO,MAAM,CAAA;AACd;;;;"}