Skip to content

Commit

Permalink
fix(handler-graphql): add generics to processRequestBody [skip ci]
Browse files Browse the repository at this point in the history
  • Loading branch information
Pavel910 committed Apr 25, 2024
1 parent 3d7784a commit 59ebecf
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 10 deletions.
4 changes: 2 additions & 2 deletions packages/handler-graphql/src/createGraphQLHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ import { GraphQLSchema } from "graphql";
import { RoutePlugin } from "@webiny/handler";
import WebinyError from "@webiny/error";
import { PluginCollection } from "@webiny/plugins/types";
import { Context } from "@webiny/handler";
import { GraphQLRequestBody, HandlerGraphQLOptions } from "./types";
import { createGraphQLSchema, getSchemaPlugins } from "./createGraphQLSchema";
import debugPlugins from "./debugPlugins";
import processRequestBody from "./processRequestBody";
import { Context } from "@webiny/handler";
import { processRequestBody } from "./processRequestBody";

const DEFAULT_CACHE_MAX_AGE = 30758400; // 1 year

Expand Down
2 changes: 1 addition & 1 deletion packages/handler-graphql/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ import createGraphQLHandler from "./createGraphQLHandler";
export * from "./errors";
export * from "./responses";
export * from "./plugins";
export { default as processRequestBody } from "./processRequestBody";
export * from "./processRequestBody";

export default (options: HandlerGraphQLOptions = {}) => [createGraphQLHandler(options)];
20 changes: 13 additions & 7 deletions packages/handler-graphql/src/processRequestBody.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { ExecutionResult, graphql, GraphQLSchema } from "graphql";
import { GraphQLAfterQueryPlugin, GraphQLBeforeQueryPlugin, GraphQLRequestBody } from "~/types";
import { Context } from "@webiny/api/types";

const processRequestBody = async (
const executeGraphQl = async (
body: GraphQLRequestBody,
schema: GraphQLSchema,
context: Context
Expand All @@ -22,18 +22,24 @@ const processRequestBody = async (
return result;
};

export default async (
export const processRequestBody = async <
TData = Record<string, any>,
TExtensions = Record<string, any>
>(
requestBody: GraphQLRequestBody | GraphQLRequestBody[],
schema: GraphQLSchema,
context: Context
): Promise<ExecutionResult[] | ExecutionResult> => {
): Promise<ExecutionResult<TData, TExtensions>[] | ExecutionResult<TData, TExtensions>> => {
if (Array.isArray(requestBody)) {
const results: ExecutionResult[] = [];
const results: ExecutionResult<TData, TExtensions>[] = [];
for (const body of requestBody) {
const result = await processRequestBody(body, schema, context);
results.push(result);
const result = await executeGraphQl(body, schema, context);
results.push(result as ExecutionResult<TData, TExtensions>);
}
return results;
}
return await processRequestBody(requestBody, schema, context);
return (await executeGraphQl(requestBody, schema, context)) as ExecutionResult<
TData,
TExtensions
>;
};

0 comments on commit 59ebecf

Please sign in to comment.