Skip to content

Commit

Permalink
Merge branch 'main' into tanstack-form
Browse files Browse the repository at this point in the history
  • Loading branch information
siddhsuresh authored Dec 29, 2023
2 parents 8f09bc7 + f80cd3d commit e7e1bf9
Show file tree
Hide file tree
Showing 18 changed files with 40 additions and 24 deletions.
10 changes: 10 additions & 0 deletions .all-contributorsrc
Original file line number Diff line number Diff line change
Expand Up @@ -4004,6 +4004,16 @@
"contributions": [
"doc"
]
},
{
"login": "papsavas",
"name": "Savvas Papageorgiadis",
"avatar_url": "https://avatars.githubusercontent.com/u/50584606?v=4",
"profile": "https://github.com/papsavas",
"contributions": [
"doc",
"code"
]
}
],
"contributorsPerLine": 7,
Expand Down
5 changes: 5 additions & 0 deletions .changeset/rare-squids-brake.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@blitzjs/rpc": minor
---

expose `ctx` to `rpcHandler` error callbacks in [[...blitz]].ts files
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<img alt="" src="https://img.shields.io/badge/Join%20our%20community-6700EB.svg?style=for-the-badge&labelColor=000000&logoWidth=20&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAQ9SURBVHgB7d3dVdtAEIbhcSpICUoH0IEogQqSVBBSAU4FSSpIOoAORAfQgSghHXzZ1U/YcMD4R9rZmf2ec3y448LyiNf27iLiGIAmPLrweC9Un3DhrzG6EarLNP09nlwJ1SOZ/lQr5N80/S/p2QMVCBf5N17XCfm1Y/rBHqjAG9PPHvBsz+mf9WAP+HLA9M/YA14cOP2payH7jpj+VCtk1wnTP+vj7xCy6cTpn7EHLMLp059iD1iD8eveJbVCNsSLheX1YA/YgOWnf8YeKB3Wmf7Ud6Fy4f/FHmtpxbl3YlC4MJ/Cj0bWdwPnPbARg+L0S54XQHS32WwuxClzd4CM0z9rPfeAuTtA5ulPXYQ7wZ04Y+oOoDD9KZc9YOoOoDj9s4dwFzgXR6w1wIPoOvPWA9buAHEJ173o3gWiy3AnuBUHLEbgmYwvAk1/wuM8vAgexThzbwPDkx7/DHwVXfFOxP2GmsKd4Ab6zPeAyU8CI7AHFmH2BRCBPXAyk18GzUrqAXCTiR4ssyj0VFw/oCU8+e+RZ33AWz6KMaYbIIWxB+JSLs1bsbkeMN0AqakHvoku9oA2sAfqBvbAQdw0QArsgb25aYBUQT3QgT2gB+yBuqGcHij2UCqXDZACe2Anlw2QYg/QAOyBuoE98CL3DZDCuK4/rh/Q7oGL6U+TOvcNkJoijN8X1C48+T+g75eQDrAH/qmqAVJgDwyqaoAUe4AGYA/UDZX3QLUNkEIZPRCd5+6BahsgVUgPROwBTSijB7jpVAvGHriHvmw9wAZ4BpX1ABvgmakHtPcbRuwBTWAPULgAV9D/jKDY9YRvwvgEaurD44uQHvAol7qBW7WKluVtIHiUS7GyvA0s6CiXDnxrpQfsgbqBS7GKk/2jYHCrVlGyfxTMrVo0ALdq1Q3sgSKofh0M9oA61a+D2QM0AHugbmAPqClmSRjK2apVVQ8UsySsoK1aHdgDesCtWnUDeyCrIpeFg1u3sylyWTi3btMA7IG6gT2wuuK3hoE9sKrit4YVslWLPaAN7IG6ocKt2zmY2h4O9sDiTG0PZw/QANy6XTewBxZj9ogYVHy025LMHhEz9cBn0We6B0yfERReBLfhx0/R1YQHPx/QBPbA0VwcEwf2wNFcHBPHHjiem3MC2QPHcXdSaJjA+KfgTPQ8hhfjBzHC40mhlzJ+Xq9lK4a4PCs43AVaGTed5mZq+iOXZwWHi3AnOj2wFWNcnxYe7gTxLtBKHuamP/J+Wnh8a5irB7ZC5Yk9gPX1QuXC+usHWqGyhYvUYR0a7zboUOFCNVhnk0krZAOW7wFOvzXhom2xnEbIHizTA1wEYhWW6YFGyC6c1gOcfg9wfA80Qj7g8B7g9HuCww+haIR8wf49wOn3Cvv9k8tGyC/s7gFOv3fY3QONkH+v9MBWqB7PeqDn9FcIT//kcitUn6kHOu/T/xfWzlQy3dEHhwAAAABJRU5ErkJggg==">
</a>
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
<a aria-label="All Contributors" href="#contributors-"><img alt="" src="https://img.shields.io/badge/all_contributors-422-17BB8A.svg?style=for-the-badge&labelColor=000000"></a>
<a aria-label="All Contributors" href="#contributors-"><img alt="" src="https://img.shields.io/badge/all_contributors-423-17BB8A.svg?style=for-the-badge&labelColor=000000"></a>
<!-- ALL-CONTRIBUTORS-BADGE:END -->
<a aria-label="License" href="https://github.com/blitz-js/blitz/blob/main/LICENSE">
<img alt="" src="https://img.shields.io/npm/l/blitz.svg?style=for-the-badge&labelColor=000000&color=blue">
Expand Down Expand Up @@ -746,6 +746,7 @@ Thanks to these wonderful people ([emoji key](https://allcontributors.org/docs/e
<tr>
<td align="center"><a href="https://github.com/Zamfi99"><img src="https://avatars.githubusercontent.com/u/19189337?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Zamfira Costin-Andrei</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Zamfi99" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=Zamfi99" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/potikhanovsergey"><img src="https://avatars.githubusercontent.com/u/71494201?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Sergey</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=potikhanovsergey" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/papsavas"><img src="https://avatars.githubusercontent.com/u/50584606?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Savvas Papageorgiadis</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=papsavas" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=papsavas" title="Code">💻</a></td>
</tr>
</table>

Expand Down
2 changes: 1 addition & 1 deletion apps/next13/src/pages/api/rpc/[[...blitz]].ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import {rpcHandler} from "@blitzjs/rpc"
import {api} from "../../../blitz-server"

export default api(rpcHandler({onError: console.log}))
export default api(rpcHandler({onError: (error, ctx) => console.log(error)}))
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { rpcHandler } from "@blitzjs/rpc"
import { api } from "src/blitz-server"

export default api(rpcHandler({ onError: console.log }))
export default api(rpcHandler({ onError: (error, ctx) => console.log(error) }))
4 changes: 2 additions & 2 deletions apps/toolkit-app/src/pages/api/rpc/[[...blitz]].ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import { api } from "src/blitz-server"

export default api(
rpcHandler({
onError: console.log,
formatError: (error) => {
onError: (error, ctx) => console.log(error),
formatError: (error, ctx) => {
error.message = `FormatError handler: ${error.message}`
return error
},
Expand Down
2 changes: 1 addition & 1 deletion apps/web/src/pages/api/rpc/[[...blitz]].ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import {rpcHandler} from "@blitzjs/rpc"
import {api} from "src/blitz-server"

export default api(rpcHandler({onError: console.log}))
export default api(rpcHandler({onError: (error, ctx) => console.log(error)}))
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import {rpcHandler} from "@blitzjs/rpc"
import {api} from "../../../blitz-server"

export default api(rpcHandler({onError: console.log}))
export default api(rpcHandler({onError: (error, ctx) => console.log(error)}))
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import {rpcHandler} from "@blitzjs/rpc"
import {api} from "../../../app/blitz-server"

export default api(rpcHandler({onError: console.log}))
export default api(rpcHandler({onError: (error, ctx) => console.log(error)}))
2 changes: 1 addition & 1 deletion integration-tests/middleware/pages/api/rpc/[[...blitz]].ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
import {rpcHandler} from "@blitzjs/rpc"

export default rpcHandler({onError: console.log})
export default rpcHandler({onError: (error, ctx) => console.log(error)})
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import {rpcHandler} from "@blitzjs/rpc"
import {api} from "../../../src/blitz-server"

export default api(rpcHandler({onError: console.log}))
export default api(rpcHandler({onError: (error, ctx) => console.log(error)}))
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import {rpcHandler} from "@blitzjs/rpc"
import {api} from "../../../app/blitz-server"

export default api(rpcHandler({onError: console.log}))
export default api(rpcHandler({onError: (error, ctx) => console.log(error)}))
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import {rpcHandler} from "@blitzjs/rpc"
import {api} from "../../../app/blitz-server"

export default api(rpcHandler({onError: console.log}))
export default api(rpcHandler({onError: (error, ctx) => console.log(error)}))
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
import {rpcHandler} from "@blitzjs/rpc"

export default rpcHandler({onError: console.log})
export default rpcHandler({onError: (error, ctx) => console.log(error)})
2 changes: 1 addition & 1 deletion integration-tests/rpc/pages/api/rpc/[[...blitz]].ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
import {rpcHandler} from "@blitzjs/rpc"

export default rpcHandler({onError: console.log})
export default rpcHandler({onError: (error, ctx) => console.log(error)})
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import {rpcHandler} from "@blitzjs/rpc"
import {api} from "../../../app/blitz-server"

export default api(rpcHandler({onError: console.log}))
export default api(rpcHandler({onError: (error, ctx) => console.log(error)}))
16 changes: 8 additions & 8 deletions packages/blitz-rpc/src/index-server.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import {assert, ResolverConfig} from "blitz"
import {assert, Ctx, ResolverConfig} from "blitz"
import {NextApiRequest, NextApiResponse} from "next"
import {deserialize, parse, serialize as superjsonSerialize} from "superjson"
import {resolve} from "path"
import {LoaderOptions} from "./server/loader/utils/loader-utils"
import {deserialize, parse, serialize as superjsonSerialize} from "superjson"
import {RpcLogger} from "./rpc-logger"
import {LoaderOptions} from "./server/loader/utils/loader-utils"
import {RpcLoggerOptions} from "./server/plugin"

// TODO - optimize end user server bundles by not exporting all client stuff here
Expand Down Expand Up @@ -187,13 +187,13 @@ async function getResolverMap(): Promise<ResolverFiles | null | undefined> {
}

interface RpcConfig {
onError?: (error: Error) => void
formatError?: (error: Error) => Error
onError?: (error: Error, ctx: Ctx) => void
formatError?: (error: Error, ctx: Ctx) => Error
logging?: RpcLoggerOptions
}

export function rpcHandler(config: RpcConfig) {
return async function handleRpcRequest(req: NextApiRequest, res: NextApiResponse) {
return async function handleRpcRequest(req: NextApiRequest, res: NextApiResponse, ctx: Ctx) {
const resolverMap = await getResolverMap()
assert(resolverMap, "No query or mutation resolvers found")
assert(
Expand Down Expand Up @@ -282,14 +282,14 @@ export function rpcHandler(config: RpcConfig) {
error.stack = ""
}

config.onError?.(error)
config.onError?.(error, ctx)
rpcLogger.error(error)

if (!error.statusCode) {
error.statusCode = 500
}

const formattedError = config.formatError?.(error) ?? error
const formattedError = config.formatError?.(error, ctx) ?? error
const serializedError = superjsonSerialize(formattedError)

res.json({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
import { rpcHandler } from "@blitzjs/rpc"
import { api } from "src/app/blitz-server"

export default api(rpcHandler({ onError: console.log }))
export default api(rpcHandler({ onError: (error, ctx) => console.log(error) }))

0 comments on commit e7e1bf9

Please sign in to comment.