From ed49ebd1b0c038afe95d25214f3dabc62f4a51a3 Mon Sep 17 00:00:00 2001 From: Andrea Amorosi Date: Wed, 2 Jul 2025 11:26:46 +0200 Subject: [PATCH] feat(event-handler): expose event & context as object --- .../appsync-graphql/AppSyncGraphQLResolver.ts | 3 +-- .../event-handler/src/types/appsync-graphql.ts | 12 ++++++++---- .../AppSyncGraphQLResolver.test.ts | 17 ++++++++++------- 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/packages/event-handler/src/appsync-graphql/AppSyncGraphQLResolver.ts b/packages/event-handler/src/appsync-graphql/AppSyncGraphQLResolver.ts index 1abdbf18c..cda083b55 100644 --- a/packages/event-handler/src/appsync-graphql/AppSyncGraphQLResolver.ts +++ b/packages/event-handler/src/appsync-graphql/AppSyncGraphQLResolver.ts @@ -145,8 +145,7 @@ class AppSyncGraphQLResolver extends Router { if (resolverHandlerOptions) { return resolverHandlerOptions.handler.apply(options?.scope ?? this, [ event.arguments, - event, - context, + { event, context }, ]); } diff --git a/packages/event-handler/src/types/appsync-graphql.ts b/packages/event-handler/src/types/appsync-graphql.ts index b7f405ee3..d799df13e 100644 --- a/packages/event-handler/src/types/appsync-graphql.ts +++ b/packages/event-handler/src/types/appsync-graphql.ts @@ -7,14 +7,18 @@ import type { Router } from '../appsync-graphql/Router.js'; type ResolverSyncHandlerFn> = ( args: TParams, - event: AppSyncResolverEvent, - context: Context + options: { + event: AppSyncResolverEvent; + context: Context; + } ) => unknown; type ResolverHandlerFn> = ( args: TParams, - event: AppSyncResolverEvent, - context: Context + options: { + event: AppSyncResolverEvent; + context: Context; + } ) => Promise; type ResolverHandler> = diff --git a/packages/event-handler/tests/unit/appsync-graphql/AppSyncGraphQLResolver.test.ts b/packages/event-handler/tests/unit/appsync-graphql/AppSyncGraphQLResolver.test.ts index c814301a0..b28b3877b 100644 --- a/packages/event-handler/tests/unit/appsync-graphql/AppSyncGraphQLResolver.test.ts +++ b/packages/event-handler/tests/unit/appsync-graphql/AppSyncGraphQLResolver.test.ts @@ -174,13 +174,16 @@ describe('Class: AppSyncGraphQLResolver', () => { it('resolver function has access to event and context', async () => { // Prepare const app = new AppSyncGraphQLResolver({ logger: console }); - app.onQuery<{ id: string }>('getPost', async ({ id }, event, context) => { - return { - id, - event, - context, - }; - }); + app.onQuery<{ id: string }>( + 'getPost', + async ({ id }, { event, context }) => { + return { + id, + event, + context, + }; + } + ); // Act const event = onGraphqlEventFactory('getPost', 'Query', { id: '123' });