Make function 8000 return types nullable #480
Merged
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.
What kind of change does this PR introduce?
Makes all table function column return types nullable.
What is the current behavior?
The verbatim function types are used as column types despite the functions potentially returning
null
.What is the new behavior?
All return types are treated as nullable.
Additional context
@psteinroe contributed a change which adds schema functions which take only the table name as columns on the tables when generating TypeScript types.
This commit extends that to treat function return types as nullable.
The function used in
oo-init.sql
could be changed like so:It would still compile and be a valid function despite the unchanged return type, which means any function must be treated as potentially returning
null
in the types.I have also updated instructions for building and testing the TypeScript type generation.
Here's how I tested this:
npm install
andnpm run dev
to spin up the Docker container and the code watchernpm run gen:types:typescript
to hit the endpoint that generates the TypeScript typessrc/server/templates/typescript.ts
and re-run the above