-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
In CI, check for TS errors in built server code (of example app) by running npx tsc
#2672
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
962aae0
8029635
5a3fc28
3d5e4b9
6ec83ed
1d6ad57
1ed82db
d98a81e
7691171
c5ef5fb
4e484ce
7098670
c7fb8b8
5d40891
2efe78a
fdbcda7
5bfb400
2b2404c
9c98ce4
fbf166e
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The changes make sense but please test them if you haven't (the There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I did test There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think so. But @infomiho can confirm There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yep, |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -11,7 +11,7 @@ import type { | |
_{= crud.entityUpper =}, | ||
} from "../_types"; | ||
import type { Prisma } from "@prisma/client"; | ||
import type { Payload } from "wasp/core/serialization"; | ||
import type { Payload, SuperJSONObject } from "wasp/core/serialization"; | ||
import type { | ||
{= crud.entityUpper =}, | ||
} from "wasp/entities"; | ||
|
@@ -37,7 +37,7 @@ type _WaspEntity = {= crud.entityUpper =} | |
/** | ||
* PUBLIC API | ||
*/ | ||
export namespace {= crud.name =} { | ||
export declare namespace {= crud.name =} { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fixing a TS lint, namespaces and modules should not be mixed in the runtime time, so we make it only a type thing. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Hm, can't get this error either. What threw it? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Nothing, just the recommendations on TypeScript's handbook. If we just do |
||
{=# crud.operations.GetAll =} | ||
export type GetAllQuery<Input extends Payload = never, Output extends Payload = Payload> = {= queryType =}<[_WaspEntityTagged], Input, Output> | ||
{=/ crud.operations.GetAll =} | ||
|
@@ -61,7 +61,7 @@ export namespace {= crud.name =} { | |
|
||
/** | ||
* PRIVATE API | ||
* | ||
* | ||
* The types with the `Resolved` suffix are the types that are used internally by the Wasp client | ||
* to implement full-stack type safety. | ||
*/ | ||
|
@@ -79,7 +79,7 @@ export type GetAllQueryResolved = typeof _waspGetAllQuery | |
|
||
{=# crud.operations.Get =} | ||
{=^ overrides.Get.isDefined =} | ||
type GetInput = Prisma.{= crud.entityUpper =}WhereUniqueInput | ||
type GetInput = SuperJSONObject & Prisma.{= crud.entityUpper =}WhereUniqueInput | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The Prisma accepts inputs that are not serializable (e.g. functions), so this intersections makes it select only the kinds of inputs that are. |
||
type GetOutput = _WaspEntity | null | ||
export type GetQueryResolved = {= crud.name =}.GetQuery<GetInput, GetOutput> | ||
{=/ overrides.Get.isDefined =} | ||
|
@@ -91,7 +91,7 @@ export type GetQueryResolved = typeof _waspGetQuery | |
|
||
{=# crud.operations.Create =} | ||
{=^ overrides.Create.isDefined =} | ||
type CreateInput = Prisma.XOR< | ||
type CreateInput = SuperJSONObject & Prisma.XOR< | ||
Prisma.{= crud.entityUpper =}CreateInput, | ||
Prisma.{= crud.entityUpper =}UncheckedCreateInput | ||
> | ||
|
@@ -106,7 +106,7 @@ export type CreateActionResolved = typeof _waspCreateAction | |
|
||
{=# crud.operations.Update =} | ||
{=^ overrides.Update.isDefined =} | ||
type UpdateInput = Prisma.XOR< | ||
type UpdateInput = SuperJSONObject & Prisma.XOR< | ||
Prisma.{= crud.entityUpper =}UpdateInput, | ||
Prisma.{= crud.entityUpper =}UncheckedUpdateInput | ||
> | ||
|
@@ -123,7 +123,7 @@ export type UpdateActionResolved = typeof _waspUpdateAction | |
|
||
{=# crud.operations.Delete =} | ||
{=^ overrides.Delete.isDefined =} | ||
type DeleteInput = Prisma.{= crud.entityUpper =}WhereUniqueInput | ||
type DeleteInput = SuperJSONObject & Prisma.{= crud.entityUpper =}WhereUniqueInput | ||
type DeleteOutput = _WaspEntity | ||
export type DeleteActionResolved = {= crud.name =}.DeleteAction<DeleteInput, DeleteOutput> | ||
{=/ overrides.Delete.isDefined =} | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,9 @@ | ||
{{={= =}=}} | ||
import { deserialize, serialize } from 'wasp/core/serialization' | ||
import { defineHandler } from 'wasp/server/utils' | ||
{=# isAuthEnabled =} | ||
import { makeAuthUserIfPossible } from 'wasp/auth/user' | ||
{=/ isAuthEnabled =} | ||
Comment on lines
+4
to
+6
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
|
||
export function createOperation (handlerFn) { | ||
return defineHandler(async (req, res) => { | ||
|
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Adding the
const
type parameter makes it output a e.g.{id: "discord"}
type instead of a{id: string}
one. So then it typechecks correctly for the login provider actions.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice improvement!