diff options
Diffstat (limited to 'gui/src/types/balanceMap.ts')
| -rw-r--r-- | gui/src/types/balanceMap.ts | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/gui/src/types/balanceMap.ts b/gui/src/types/balanceMap.ts new file mode 100644 index 0000000..760843f --- /dev/null +++ b/gui/src/types/balanceMap.ts @@ -0,0 +1,17 @@ +import { Category } from "./category"; +import Currency from "./currency/currency"; +import { newGbpFromDto } from "./currency/gbp"; + +type BalanceMap<T extends { id: any }> = { + [id in T["id"]]: Currency; +}; + +function newCategoryBalanceMapFromDto(dto: unknown): BalanceMap<Category> { + return Object.fromEntries( + (dto as { category_id: Category["id"]; balance: number }[]).map( + ({ category_id, balance }) => [category_id, newGbpFromDto(balance)], + ), + ); +} + +export { type BalanceMap, newCategoryBalanceMapFromDto }; |
