Skip to content

Commit

Permalink
Rewrite more code as async/await (graphql#492)
Browse files Browse the repository at this point in the history
  • Loading branch information
IvanGoncharov authored and jliu670 committed Aug 14, 2020
1 parent 583b87d commit 9c6d980
Showing 1 changed file with 34 additions and 34 deletions.
68 changes: 34 additions & 34 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -411,38 +411,38 @@ function graphqlHTTP(options: Options): Middleware {
}
});

function resolveOptions(requestParams) {
return Promise.resolve(
async function resolveOptions(requestParams) {
const optionsResult =
typeof options === 'function'
? options(request, response, requestParams)
: options,
).then(optionsData => {
// Assert that optionsData is in fact an Object.
if (!optionsData || typeof optionsData !== 'object') {
throw new Error(
'GraphQL middleware option function must return an options object ' +
'or a promise which will be resolved to an options object.',
);
}

if (optionsData.formatError) {
// eslint-disable-next-line no-console
console.warn(
'`formatError` is deprecated and replaced by `customFormatErrorFn`. It will be removed in version 1.0.0.',
);
}
: options;
const optionsData = await optionsResult;

// Assert that optionsData is in fact an Object.
if (!optionsData || typeof optionsData !== 'object') {
throw new Error(
'GraphQL middleware option function must return an options object ' +
'or a promise which will be resolved to an options object.',
);
}

validateFn = optionsData.customValidateFn || validateFn;
executeFn = optionsData.customExecuteFn || executeFn;
parseFn = optionsData.customParseFn || parseFn;
formatErrorFn =
optionsData.customFormatErrorFn ||
optionsData.formatError ||
formatErrorFn;
extensionsFn = optionsData.extensions;
pretty = optionsData.pretty;
return optionsData;
});
if (optionsData.formatError) {
// eslint-disable-next-line no-console
console.warn(
'`formatError` is deprecated and replaced by `customFormatErrorFn`. It will be removed in version 1.0.0.',
);
}

validateFn = optionsData.customValidateFn || validateFn;
executeFn = optionsData.customExecuteFn || executeFn;
parseFn = optionsData.customParseFn || parseFn;
formatErrorFn =
optionsData.customFormatErrorFn ||
optionsData.formatError ||
formatErrorFn;
extensionsFn = optionsData.extensions;
pretty = optionsData.pretty;
return optionsData;
}
};
}
Expand All @@ -459,11 +459,11 @@ export type GraphQLParams = {
* HTTPClientRequest), Promise the GraphQL request parameters.
*/
module.exports.getGraphQLParams = getGraphQLParams;
function getGraphQLParams(request: $Request): Promise<GraphQLParams> {
return parseBody(request).then(bodyData => {
const urlData = (request.url && url.parse(request.url, true).query) || {};
return parseGraphQLParams(urlData, bodyData);
});
async function getGraphQLParams(request: $Request): Promise<GraphQLParams> {
const bodyData = await parseBody(request);
const urlData = (request.url && url.parse(request.url, true).query) || {};

return parseGraphQLParams(urlData, bodyData);
}

/**
Expand Down

0 comments on commit 9c6d980

Please sign in to comment.