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.
These are some variants of "typed" atproto sync/repo helpers from
api/atproto
which usejson.RawMessage
instead of the lexutilLexiconTypeDecoder
wrapper.These are mostly used from tools like
goat
which work with arbitrary record data, when we don't have lexgen types (or they aren't imported, or whatever). They can also be used for things like preferences, where the type in an open union is rapidly changing, and we don't want to "clobber" (drop) data from new lexicons the client code isn't familiar with.You can see these in action: #870
@whyrusleeping you might want to do similar things in
gosky
.Big picture we'll maybe want to move lexgen in this direction at some point? Relatedly, having LexiconTypeDecoder and open unions have an "unknown schema" option with raw data (possibly
map[string]any
instead ofjson.RawMessage
; the later only makes sense for API endpoints, not record data).