From 0f960df8cf3eabf22f84c2c52827a3c315096c98 Mon Sep 17 00:00:00 2001 From: DJ Mountney <david@twkie.net> Date: Thu, 11 Apr 2024 07:36:48 -0700 Subject: [PATCH] Improve api output types (#2567) * Improve api output types - Fixes some missing models - Fixes some output path aliasing * Add changelog --- packages/api/tsconfig.dist.json | 1 + packages/loot-core/src/server/importers/ynab5.ts | 11 +++++++++-- packages/loot-core/src/types/api-handlers.d.ts | 9 ++++++++- upcoming-release-notes/2567.md | 6 ++++++ 4 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 upcoming-release-notes/2567.md diff --git a/packages/api/tsconfig.dist.json b/packages/api/tsconfig.dist.json index 4795f0c97..d85cb67ca 100644 --- a/packages/api/tsconfig.dist.json +++ b/packages/api/tsconfig.dist.json @@ -10,6 +10,7 @@ "outDir": "dist", "declarationDir": "@types", "paths": { + "loot-core/src/*": ["./loot-core/*"], "loot-core/*": ["./@types/loot-core/*"], } }, diff --git a/packages/loot-core/src/server/importers/ynab5.ts b/packages/loot-core/src/server/importers/ynab5.ts index 30ab10224..011b0d15b 100644 --- a/packages/loot-core/src/server/importers/ynab5.ts +++ b/packages/loot-core/src/server/importers/ynab5.ts @@ -8,6 +8,7 @@ import { v4 as uuidv4 } from 'uuid'; import * as monthUtils from '../../shared/months'; import { sortByKey, groupBy } from '../../shared/util'; +import { CategoryGroupEntity } from '../../types/models'; import { YNAB5 } from './ynab5-types'; @@ -338,10 +339,16 @@ function equalsIgnoreCase(stringa: string, stringb: string): boolean { ); } -function findByNameIgnoreCase(categories: YNAB5.CategoryGroup[], name: string) { +function findByNameIgnoreCase( + categories: (YNAB5.CategoryGroup | CategoryGroupEntity)[], + name: string, +) { return categories.find(cat => equalsIgnoreCase(cat.name, name)); } -function findIdByName(categories: YNAB5.CategoryGroup[], name: string) { +function findIdByName( + categories: (YNAB5.CategoryGroup | CategoryGroupEntity)[], + name: string, +) { return findByNameIgnoreCase(categories, name)?.id; } diff --git a/packages/loot-core/src/types/api-handlers.d.ts b/packages/loot-core/src/types/api-handlers.d.ts index 1f314fde6..c1f42776f 100644 --- a/packages/loot-core/src/types/api-handlers.d.ts +++ b/packages/loot-core/src/types/api-handlers.d.ts @@ -1,5 +1,12 @@ import { type batchUpdateTransactions } from '../server/accounts/transactions'; +import type { + TransactionEntity, + AccountEntity, + CategoryGroupEntity, + CategoryEntity, + PayeeEntity, +} from './models'; import { type ServerHandlers } from './server-handlers'; export interface ApiHandlers { @@ -107,7 +114,7 @@ export interface ApiHandlers { 'api/categories-get': (arg: { grouped; - }) => Promise<Array<CategoryGroupEntity> | Array<CategoryEntity>>; + }) => Promise<Array<CategoryGroupEntity | CategoryEntity>>; 'api/category-groups-get': () => Promise<CategoryGroupEntity[]>; diff --git a/upcoming-release-notes/2567.md b/upcoming-release-notes/2567.md new file mode 100644 index 000000000..c73a7289c --- /dev/null +++ b/upcoming-release-notes/2567.md @@ -0,0 +1,6 @@ +--- +category: Maintenance +authors: [twk3] +--- + +Improve API output types. -- GitLab