2019-10-30 14:34:24 +00:00
|
|
|
import { IMoney } from "./Money";
|
2019-06-19 14:40:52 +00:00
|
|
|
|
|
|
|
export { default } from "./Money";
|
|
|
|
export * from "./Money";
|
|
|
|
|
2019-10-30 14:34:24 +00:00
|
|
|
export function addMoney(init: IMoney, ...args: IMoney[]): IMoney {
|
2019-06-19 14:40:52 +00:00
|
|
|
return {
|
|
|
|
amount: args.reduce((acc, curr) => acc + curr.amount, init.amount),
|
|
|
|
currency: init.currency
|
|
|
|
};
|
|
|
|
}
|
2019-10-30 14:34:24 +00:00
|
|
|
export function subtractMoney(init: IMoney, ...args: IMoney[]): IMoney {
|
2019-06-19 14:40:52 +00:00
|
|
|
return {
|
|
|
|
amount: args.reduce((acc, curr) => acc - curr.amount, init.amount),
|
|
|
|
currency: init.currency
|
|
|
|
};
|
|
|
|
}
|
2021-08-16 13:44:00 +00:00
|
|
|
|
|
|
|
export const formatMoney = (money: IMoney, locale: string) => {
|
|
|
|
try {
|
|
|
|
const formattedMoney = money.amount.toLocaleString(locale, {
|
|
|
|
currency: money.currency,
|
|
|
|
style: "currency"
|
|
|
|
});
|
|
|
|
return formattedMoney;
|
|
|
|
} catch (error) {
|
|
|
|
return `${money.amount} ${money.currency}`;
|
|
|
|
}
|
|
|
|
};
|