[PR #4542] [MERGED] [TypeScript] Make db.all generic to make it easy to type DB query results #5442

Closed
opened 2026-02-28 21:12:31 -06:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/actualbudget/actual/pull/4542
Author: @joel-jeremy
Created: 3/5/2025
Status: Merged
Merged: 3/10/2025
Merged by: @joel-jeremy

Base: masterHead: ts-db-all-2


📝 Commits (4)

  • e68d293 [TypeScript] Make db.all generic to make it easy to type DB query results
  • 761474a Release notes
  • 7de90f7 Fix type
  • f66b1ab Update return type

📊 Changes

29 files changed (+275 additions, -130 deletions)

View changed files

📝 packages/loot-core/src/client/accounts/accountsSlice.ts (+5 -1)
📝 packages/loot-core/src/client/queries/queriesSlice.ts (+3 -1)
📝 packages/loot-core/src/server/accounts/sync.test.ts (+3 -1)
📝 packages/loot-core/src/server/accounts/sync.ts (+33 -3)
📝 packages/loot-core/src/server/api.ts (+7 -3)
📝 packages/loot-core/src/server/aql/exec.test.ts (+3 -1)
📝 packages/loot-core/src/server/aql/schema/executors.ts (+7 -3)
📝 packages/loot-core/src/server/aql/schema/index.test.ts (+42 -12)
📝 packages/loot-core/src/server/budget/actions.ts (+12 -6)
📝 packages/loot-core/src/server/budget/cleanup-template.ts (+2 -2)
📝 packages/loot-core/src/server/budget/goaltemplates.ts (+8 -8)
📝 packages/loot-core/src/server/budget/statements.ts (+16 -3)
📝 packages/loot-core/src/server/dashboard/app.ts (+1 -2)
📝 packages/loot-core/src/server/db/index.ts (+54 -45)
📝 packages/loot-core/src/server/db/mappings.ts (+6 -6)
📝 packages/loot-core/src/server/main.test.ts (+7 -3)
📝 packages/loot-core/src/server/main.ts (+7 -3)
📝 packages/loot-core/src/server/payees/app.ts (+2 -2)
📝 packages/loot-core/src/server/preferences/app.ts (+3 -4)
📝 packages/loot-core/src/server/sheet.ts (+10 -3)

...and 9 more files

📄 Description

Follow up to https://github.com/actualbudget/actual/pull/4247

  • db.runQuery
  • db.first
  • db.firstSync
  • db.all
  • db.select
  • db.selectWithSchema
  • db.selectFirstWithSchema

There are places where the results of server handlers are incorrectly typed to entity models but they actually return DB models e.g. accounts-get, get-categories. I have forced cast them for now but the server handlers should be updated to use AQL queries and return the proper entity types in another PR.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/actualbudget/actual/pull/4542 **Author:** [@joel-jeremy](https://github.com/joel-jeremy) **Created:** 3/5/2025 **Status:** ✅ Merged **Merged:** 3/10/2025 **Merged by:** [@joel-jeremy](https://github.com/joel-jeremy) **Base:** `master` ← **Head:** `ts-db-all-2` --- ### 📝 Commits (4) - [`e68d293`](https://github.com/actualbudget/actual/commit/e68d2931eff366fa4b068a5d72c90960791e9357) [TypeScript] Make db.all generic to make it easy to type DB query results - [`761474a`](https://github.com/actualbudget/actual/commit/761474a66d3cf43255566d1e0f9809c8925e7fea) Release notes - [`7de90f7`](https://github.com/actualbudget/actual/commit/7de90f7ed4556e5c2a5be9660afa25aa4a620dc5) Fix type - [`f66b1ab`](https://github.com/actualbudget/actual/commit/f66b1abe51e89e1c2727aeae51062c48ff1a7382) Update return type ### 📊 Changes **29 files changed** (+275 additions, -130 deletions) <details> <summary>View changed files</summary> 📝 `packages/loot-core/src/client/accounts/accountsSlice.ts` (+5 -1) 📝 `packages/loot-core/src/client/queries/queriesSlice.ts` (+3 -1) 📝 `packages/loot-core/src/server/accounts/sync.test.ts` (+3 -1) 📝 `packages/loot-core/src/server/accounts/sync.ts` (+33 -3) 📝 `packages/loot-core/src/server/api.ts` (+7 -3) 📝 `packages/loot-core/src/server/aql/exec.test.ts` (+3 -1) 📝 `packages/loot-core/src/server/aql/schema/executors.ts` (+7 -3) 📝 `packages/loot-core/src/server/aql/schema/index.test.ts` (+42 -12) 📝 `packages/loot-core/src/server/budget/actions.ts` (+12 -6) 📝 `packages/loot-core/src/server/budget/cleanup-template.ts` (+2 -2) 📝 `packages/loot-core/src/server/budget/goaltemplates.ts` (+8 -8) 📝 `packages/loot-core/src/server/budget/statements.ts` (+16 -3) 📝 `packages/loot-core/src/server/dashboard/app.ts` (+1 -2) 📝 `packages/loot-core/src/server/db/index.ts` (+54 -45) 📝 `packages/loot-core/src/server/db/mappings.ts` (+6 -6) 📝 `packages/loot-core/src/server/main.test.ts` (+7 -3) 📝 `packages/loot-core/src/server/main.ts` (+7 -3) 📝 `packages/loot-core/src/server/payees/app.ts` (+2 -2) 📝 `packages/loot-core/src/server/preferences/app.ts` (+3 -4) 📝 `packages/loot-core/src/server/sheet.ts` (+10 -3) _...and 9 more files_ </details> ### 📄 Description <!-- Thank you for submitting a pull request! Make sure to follow the instructions to write release notes for your PR — it should only take a minute or two: https://github.com/actualbudget/docs#writing-good-release-notes --> Follow up to https://github.com/actualbudget/actual/pull/4247 - [x] `db.runQuery` - [x] `db.first` - [x] `db.firstSync` - [x] `db.all` - [ ] `db.select` - [ ] `db.selectWithSchema` - [ ] `db.selectFirstWithSchema` There are places where the results of server handlers are incorrectly typed to entity models but they actually return DB models e.g. `accounts-get`, `get-categories`. I have forced cast them for now but the server handlers should be updated to use AQL queries and return the proper entity types in another PR. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-02-28 21:12:31 -06:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#5442