feat: Add D1RunMeta interface for type-safe database operations #16
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR introduces type-safe interfaces for Cloudflare D1 database metadata, eliminating all
any
type usage in database operations. These patterns were discovered and battle-tested in the Kogotochki production bot with 100% TypeScript strict mode.Problem
Currently, wireframe uses
(result.meta as any).last_row_id
which:Solution
run()
operationsall()
operationslast_row_id
with proper error messagesChanges
D1RunMeta
andD1AllMeta
interfaces tosrc/core/interfaces/storage.ts
IPreparedStatement
interface with proper return typesImpact
any
types in database operationsProduction Tested
These patterns have been running in production with:
Example Usage
Testing
Related
@ts-expect-error
comments in database operationsChecklist