本文整理汇总了TypeScript中apollo-server-core.runHttpQuery函数的典型用法代码示例。如果您正苦于以下问题:TypeScript runHttpQuery函数的具体用法?TypeScript runHttpQuery怎么用?TypeScript runHttpQuery使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了runHttpQuery函数的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的TypeScript代码示例。
示例1: return
return (req, res, next): void => {
runHttpQuery([req, res], {
method: req.method,
options: options,
query: req.method === 'POST' ? req.body : req.query,
request: convertNodeHttpToRequest(req),
}).then(
({ graphqlResponse, responseInit }) => {
if (responseInit.headers) {
for (const [name, value] of Object.entries(responseInit.headers)) {
res.setHeader(name, value);
}
}
res.write(graphqlResponse);
res.end();
},
(error: HttpQueryError) => {
if ('HttpQueryError' !== error.name) {
return next(error);
}
if (error.headers) {
for (const [name, value] of Object.entries(error.headers)) {
res.setHeader(name, value);
}
}
res.statusCode = error.statusCode;
res.write(error.message);
res.end();
},
);
};
开发者ID:apollostack,项目名称:apollo-server,代码行数:33,代码来源:expressApollo.ts
示例2: async
const graphqlHandler = async (req: Request): Promise<Response> => {
const url = new URL(req.url);
const query =
req.method === 'POST'
? await req.json()
: {
query: url.searchParams.get('query'),
variables: url.searchParams.get('variables'),
operationName: url.searchParams.get('operationName'),
extensions: url.searchParams.get('extensions'),
};
return runHttpQuery([req], {
method: req.method,
options: options,
query,
request: req as Request,
}).then(
({ graphqlResponse, responseInit }) =>
new Response(graphqlResponse, responseInit),
(error: HttpQueryError) => {
if ('HttpQueryError' !== error.name) throw error;
const res = new Response(error.message, {
status: error.statusCode,
headers: error.headers,
});
return res;
},
);
};
开发者ID:apollostack,项目名称:apollo-server,代码行数:32,代码来源:cloudflareApollo.ts
示例3: runHttpQueryWrapper
function runHttpQueryWrapper(options: GraphQLOptions | HapiOptionsFunction, request: Request, reply: ReplyNoContinue): Promise<Response> {
return runHttpQuery([request], {
method: request.method.toUpperCase(),
options: options,
query: request.method === 'post' ? request.payload : request.query,
}).then((gqlResponse) => {
return reply(gqlResponse).type('application/json');
}, (error: HttpQueryError) => {
if ( 'HttpQueryError' !== error.name ) {
throw error;
}
if ( true === error.isGraphQLError ) {
return reply(error.message).code(error.statusCode).type('application/json');
}
const err = Boom.create(error.statusCode);
err.output.payload.message = error.message;
if ( error.headers ) {
Object.keys(error.headers).forEach((header) => {
err.output.headers[header] = error.headers[header];
});
}
return reply(err);
});
}
开发者ID:convoyinc,项目名称:apollo-server,代码行数:27,代码来源:hapiApollo.ts
示例4: async
handler: async (request, h) => {
try {
const gqlResponse = await runHttpQuery([request], {
method: request.method.toUpperCase(),
options: options.graphqlOptions,
query: request.method === 'post' ? request.payload : request.query,
});
const response = h.response(gqlResponse);
response.type('application/json');
return response;
} catch (error) {
if ('HttpQueryError' !== error.name) {
throw Boom.boomify(error);
}
if (true === error.isGraphQLError) {
const response = h.response(error.message);
response.code(error.statusCode);
response.type('application/json');
return response;
}
const err = new Boom(error.message, { statusCode: error.statusCode });
if (error.headers) {
Object.keys(error.headers).forEach(header => {
err.output.headers[header] = error.headers[header];
});
}
// Boom hides the error when status code is 500
err.output.payload.message = error.message;
throw err;
}
},
开发者ID:chentsulin,项目名称:apollo-server,代码行数:34,代码来源:hapiApollo.ts
示例5: return
return (httpContext: IHttpContext, request: IFunctionRequest) => {
const queryRequest = {
method: request.method,
options: options,
query: request.method === 'POST' ? request.body : request.query,
};
if (queryRequest.query && typeof queryRequest.query === 'string') {
queryRequest.query = JSON.parse(queryRequest.query);
}
return runHttpQuery([httpContext, request], queryRequest)
.then(gqlResponse => {
const result = {
status: 200,
headers: { 'Content-Type': 'application/json' },
body: gqlResponse,
};
httpContext.res = result;
httpContext.done(null, result);
})
.catch(error => {
const result = {
status: error.statusCode,
headers: error.headers,
body: error.message,
};
httpContext.res = result;
httpContext.done(null, result);
});
};
开发者ID:convoyinc,项目名称:apollo-server,代码行数:35,代码来源:azureFunctionsApollo.ts
示例6: async
handler: async (request: Request, h: ResponseToolkit) => {
try {
const { method } = request;
const query =
method === 'post'
? (request.payload as Record<string, any>)
: (request.query as Record<string, any>);
const graphQLResponse = await runHttpQuery([request], {
method: method.toUpperCase(),
options: options.graphQLOptions,
query,
});
return h.response(graphQLResponse).type('application/json');
} catch (error) {
if (error.isGraphQLError === true) {
return h
.response(error.message)
.code(error.statusCode)
.type('application/json');
}
return h.response(error).type('application/json');
}
},
开发者ID:liuyepiaoxiang,项目名称:kibana,代码行数:25,代码来源:apollo_framework_adapter.ts
示例7: runHttpQuery
const graphqlHandler = (
req: restify.Request,
res: restify.Response,
next: restify.Next,
): void => {
runHttpQuery([req, res], {
method: req.method,
options: options,
query: req.method === 'POST' ? req.body : req.query,
}).then(
gqlResponse => {
res.setHeader('Content-Type', 'application/json');
res.write(gqlResponse);
res.end();
next();
},
(error: HttpQueryError) => {
if ('HttpQueryError' !== error.name) {
throw error;
}
if (error.headers) {
Object.keys(error.headers).forEach(header => {
res.setHeader(header, error.headers[header]);
});
}
res.statusCode = error.statusCode;
res.write(error.message);
res.end();
next(false);
},
);
};
开发者ID:chentsulin,项目名称:apollo-server,代码行数:34,代码来源:restifyApollo.ts
示例8: async
const graphqlHandler = async (req: MicroRequest, res: ServerResponse) => {
let query;
try {
query =
req.method === 'POST'
? req.filePayload || (await json(req))
: url.parse(req.url, true).query;
} catch (error) {
// Do nothing; `query` stays `undefined`
}
try {
const { graphqlResponse, responseInit } = await runHttpQuery([req, res], {
method: req.method,
options,
query,
request: convertNodeHttpToRequest(req),
});
setHeaders(res, responseInit.headers);
return graphqlResponse;
} catch (error) {
if ('HttpQueryError' === error.name && error.headers) {
setHeaders(res, error.headers);
}
if (!error.statusCode) {
error.statusCode = 500;
}
throw error;
}
};
开发者ID:simonjoom,项目名称:react-native-project,代码行数:32,代码来源:microApollo.ts
示例9: runHttpQuery
const graphqlHandler = (
req: express.Request,
res: express.Response,
next,
): void => {
runHttpQuery([req, res], {
method: req.method,
options: options,
query: req.method === 'POST' ? req.body : req.query,
request: convertNodeHttpToRequest(req),
}).then(
({ graphqlResponse, responseInit }) => {
Object.keys(responseInit.headers).forEach(key =>
res.setHeader(key, responseInit.headers[key]),
);
res.write(graphqlResponse);
res.end();
},
(error: HttpQueryError) => {
if ('HttpQueryError' !== error.name) {
return next(error);
}
if (error.headers) {
Object.keys(error.headers).forEach(header => {
res.setHeader(header, error.headers[header]);
});
}
res.statusCode = error.statusCode;
res.write(error.message);
res.end();
},
);
};
开发者ID:simonjoom,项目名称:react-native-project,代码行数:35,代码来源:expressApollo.ts
示例10: runHttpQuery
const graphqlHandler = (ctx: Koa.Context): Promise<void> => {
return runHttpQuery([ctx], {
method: ctx.request.method,
options: options,
query:
ctx.request.method === 'POST'
? // fallback to ctx.req.body for koa-multer support
ctx.request.body || (ctx.req as any).body
: ctx.request.query,
request: convertNodeHttpToRequest(ctx.req),
}).then(
({ graphqlResponse, responseInit }) => {
Object.keys(responseInit.headers).forEach(key =>
ctx.set(key, responseInit.headers[key]),
);
ctx.body = graphqlResponse;
},
(error: HttpQueryError) => {
if ('HttpQueryError' !== error.name) {
throw error;
}
if (error.headers) {
Object.keys(error.headers).forEach(header => {
ctx.set(header, error.headers[header]);
});
}
ctx.status = error.statusCode;
ctx.body = error.message;
},
);
};
开发者ID:apollostack,项目名称:apollo-server,代码行数:33,代码来源:koaApollo.ts
注:本文中的apollo-server-core.runHttpQuery函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论