Skip to content

Commit

Permalink
expose onMultipleAuthMiddlewareFailures binding on route level
Browse files Browse the repository at this point in the history
  • Loading branch information
mikelittman committed Nov 20, 2023
1 parent fce20a6 commit 4985a1c
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 2 deletions.
2 changes: 2 additions & 0 deletions packages/nextlove/src/types/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ export interface RouteSpec<
* add x-fern-sdk-return-value to the openapi spec, useful when you want to return only a subset of the response
*/
sdkReturnValue?: string | string[]

onMultipleAuthMiddlewareFailures?: (errors: unknown[]) => void
}

export type MiddlewareChainOutput<
Expand Down
8 changes: 6 additions & 2 deletions packages/nextlove/src/with-route-spec/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,10 @@ export const createWithRouteSpec: CreateWithRouteSpecFunction = ((
let errors: unknown[] = []
let didAuthMiddlewareThrow = true

const handleMultipleAuthMiddlewareFailures =
spec.onMultipleAuthMiddlewareFailures ??
onMultipleAuthMiddlewareFailures

for (const middleware of authMiddlewares) {
try {
return await middleware((...args) => {
Expand All @@ -118,8 +122,8 @@ export const createWithRouteSpec: CreateWithRouteSpecFunction = ((
}
}

if (onMultipleAuthMiddlewareFailures && didAuthMiddlewareThrow) {
onMultipleAuthMiddlewareFailures(errors)
if (handleMultipleAuthMiddlewareFailures && didAuthMiddlewareThrow) {
handleMultipleAuthMiddlewareFailures(errors)
}

throw errors[errors.length - 1]
Expand Down

0 comments on commit 4985a1c

Please sign in to comment.