Repository navigation
Add putByUniqueKey to ReadOnlyTabularStorage - #383
Merged
Merged
Conversation
@workglow/storage 0.6.8 made putByUniqueKey a required ITabularStorage member, so the dry-run wrapper no longer implemented the interface and typecheck failed on main. The new method no-ops like put(), and reports inserted: false so a caller does not skip reading back rows the underlying storage holds. Fixes #382 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014X8ZuuuzKx9jryN5ndaVcb
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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
Implements the
putByUniqueKeymethod inReadOnlyTabularStorageto properly handle write attempts on read-only storage by reporting them as overwrites rather than inserts.Changes
putByUniqueKeyimplementation inReadOnlyTabularStorage: Returns{ entity, inserted: false }to indicate the write was not persisted. This prevents callers from assuming rows can be keyed by the result, which would cause them to skip reading back rows that the underlying storage actually holds.UniqueKeyPutResulttype fromworkglowReadOnlyTabularStorage.test.ts) verifying that:putByUniqueKeyreportsinserted: falseImplementation Details
The method signature matches the interface contract but intentionally does not persist changes. By returning
inserted: false, it signals to callers that the entity cannot yet be keyed by the row, preventing logic errors where a caller might skip reading back data that actually exists in the underlying storage.https://claude.ai/code/session_014X8ZuuuzKx9jryN5ndaVcb