Adds TypeBuilders and ColumnBuilders for specifying the schema of a TypeScript module #3208
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.
Description of Changes
This is a purely additive change to introduce,
TypeBuilder
s,ColumnBuilder
s, and at
factory export that has methods for creatingTypeBuilder
s.There are derived types from
TypeBuilder
s for each variant ofAlgebraicType
.TypeBuilder
s can be converted into aColumnBuilder
which supports creating additional metadata specifying whether a column is a primary key or should be unique.ColumnBuilder
s are not allowed withinTypeBuilder
s, but the opposite is allowed (for composite types).ColumnBuilder
s can only be used at the top level and contain aTypeBuilder
.TypeBuilder
stores three pieces of information:ColumnBuilder
stores three pieces of information:TypeBuilder
ColumnMetadata
which stores the information to be reported to the host.API and ABI breaking changes
None
Expected complexity level and risk
2
Testing
NOTE: Testing is not yet working because of
vitest
issues. The fix may require changing codegen.