Skip to content

Commit

Permalink
Reverse fn, arg to arg,fn
Browse files Browse the repository at this point in the history
  • Loading branch information
benjie committed May 17, 2024
1 parent 0c189a3 commit 0ee9787
Show file tree
Hide file tree
Showing 5 changed files with 52 additions and 40 deletions.
34 changes: 15 additions & 19 deletions grafast/grafserv/src/core/base.ts
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,7 @@ export class GrafservBase {
const { resolvedPreset } = this;
return this.middlewares.run(
"processRequest",
{ resolvedPreset, requestDigest, instance: this },
({ requestDigest: request }) => {
let returnValue: PromiseOrDirect<Result | null>;
try {
Expand All @@ -190,7 +191,6 @@ export class GrafservBase {
return returnValue;
}
},
{ resolvedPreset, requestDigest, instance: this },
);
}

Expand Down Expand Up @@ -245,24 +245,20 @@ export class GrafservBase {
return (
new Promise((resolve) =>
resolve(
middlewares.run(
"setPreset",
(dynamicOptions) => {
const { resolvedPreset } = dynamicOptions;
// Overwrite all the `this.*` properties at once
this.resolvedPreset = resolvedPreset;
this.middlewares = middlewares;
this.dynamicOptions = dynamicOptions as DynamicOptions;
this.initialized = true;
// ENHANCE: this.graphqlHandler?.release()?
this.refreshHandlers();
this.getExecutionConfig = dynamicOptions.getExecutionConfig;
// MUST come after the handlers have been refreshed, otherwise we'll
// get infinite loops
this.eventEmitter.emit("dynamicOptions:ready", {});
},
dynamicOptions,
),
middlewares.run("setPreset", dynamicOptions, (dynamicOptions) => {
const { resolvedPreset } = dynamicOptions;
// Overwrite all the `this.*` properties at once
this.resolvedPreset = resolvedPreset;
this.middlewares = middlewares;
this.dynamicOptions = dynamicOptions as DynamicOptions;
this.initialized = true;
// ENHANCE: this.graphqlHandler?.release()?
this.refreshHandlers();
this.getExecutionConfig = dynamicOptions.getExecutionConfig;
// MUST come after the handlers have been refreshed, otherwise we'll
// get infinite loops
this.eventEmitter.emit("dynamicOptions:ready", {});
}),
),
)
.then(null, (e) => {
Expand Down
14 changes: 9 additions & 5 deletions grafast/grafserv/src/middleware/graphiql.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,15 @@ export function makeGraphiQLHandler(
...makeHTMLParts(),
...htmlPartsFromConfig,
};
await middlewares.run("ruruHTMLParts", noop, {
resolvedPreset,
htmlParts,
request,
});
await middlewares.run(
"ruruHTMLParts",
{
resolvedPreset,
htmlParts,
request,
},
noop,
);
}
const config: RuruServerConfig = {
endpoint: dynamicOptions.graphqlPath,
Expand Down
14 changes: 9 additions & 5 deletions grafast/grafserv/src/middleware/graphql.ts
Original file line number Diff line number Diff line change
Expand Up @@ -360,11 +360,15 @@ const _makeGraphQLHandlerInternal = (instance: GrafservBase) => {
// Apply our middlewares (if any) to the body (they will mutate the body in place)
const hookResult =
middlewares.middlewares.processGraphQLRequestBody != null
? middlewares.run("processGraphQLRequestBody", noop, {
resolvedPreset,
body: parsedBody,
request,
})
? middlewares.run(
"processGraphQLRequestBody",
{
resolvedPreset,
body: parsedBody,
request,
},
noop,
)
: undefined;
if (hookResult != null) {
await hookResult;
Expand Down
28 changes: 18 additions & 10 deletions grafast/grafserv/src/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -210,11 +210,15 @@ export function makeGraphQLWSConfig(instance: GrafservBase): ServerOptions {
} = await instance.getExecutionConfig(grafastCtx);

const parsedBody = parseGraphQLJSONBody(message.payload);
await instance.middlewares.run("processGraphQLRequestBody", noop, {
resolvedPreset,
body: parsedBody,
graphqlWsContext: ctx,
});
await instance.middlewares.run(
"processGraphQLRequestBody",
{
resolvedPreset,
body: parsedBody,
graphqlWsContext: ctx,
},
noop,
);

const { query, operationName, variableValues } =
validateGraphQLBody(parsedBody);
Expand Down Expand Up @@ -254,11 +258,15 @@ export function makeGraphQLWSConfig(instance: GrafservBase): ServerOptions {
const { resolvedPreset } = instance;
return {
onSubscribe(ctx, message) {
return instance.middlewares.run("onSubscribe", onSubscribe, {
resolvedPreset,
ctx,
message,
});
return instance.middlewares.run(
"onSubscribe",
{
resolvedPreset,
ctx,
message,
},
onSubscribe,
);
},
// TODO: validate that this actually does mask every error
onError(_ctx, _message, errors) {
Expand Down
2 changes: 1 addition & 1 deletion utils/graphile-config/src/middleware.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,10 @@ export class Middlewares<TActivities extends MiddlewareObject<TActivities>> {

run<TActivityName extends keyof TActivities>(
activityName: TActivityName,
arg: ActivityParameter<TActivities, TActivityName>,
activity: (
arg: ActivityParameter<TActivities, TActivityName>,
) => ReturnType<ActivityFn<TActivities, TActivityName>>,
arg: ActivityParameter<TActivities, TActivityName>,
) {
const middlewares = this.middlewares[activityName];
if (middlewares === undefined) {
Expand Down

0 comments on commit 0ee9787

Please sign in to comment.