本文整理汇总了TypeScript中fastify.FastifyReply类的典型用法代码示例。如果您正苦于以下问题:TypeScript FastifyReply类的具体用法?TypeScript FastifyReply怎么用?TypeScript FastifyReply使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了FastifyReply类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: renderPlaygroundPage
(
req: FastifyRequest<IncomingMessage>,
reply: FastifyReply<OutgoingMessage>,
done: () => void,
) => {
// Note: if you enable playground in production and expect to be able to see your
// schema, you'll need to manually specify `introspection: true` in the
// ApolloServer constructor; by default, the introspection query is only
// enabled in dev.
if (this.playgroundOptions && req.req.method === 'GET') {
// perform more expensive content-type check only if necessary
const accept = (req as any).accepts() as Accepts;
const types = accept.types() as string[];
const prefersHTML =
types.find(
(x: string) =>
x === 'text/html' || x === 'application/json',
) === 'text/html';
if (prefersHTML) {
const playgroundRenderPageOptions: PlaygroundRenderPageOptions = {
endpoint: this.graphqlPath,
subscriptionEndpoint: this.subscriptionsPath,
...this.playgroundOptions,
};
reply.type('text/html');
const playground = renderPlaygroundPage(
playgroundRenderPageOptions,
);
reply.send(playground);
return;
}
}
done();
},
示例2: async
return async (
request: FastifyRequest<IncomingMessage>,
reply: FastifyReply<OutgoingMessage>,
) => {
try {
const { graphqlResponse, responseInit } = await runHttpQuery(
[request, reply],
{
method: request.req.method as string,
options,
query: request.req.method === 'POST' ? request.body : request.query,
request: convertNodeHttpToRequest(request.raw),
},
);
if (responseInit.headers) {
for (const [name, value] of Object.entries<string>(
responseInit.headers,
)) {
reply.header(name, value);
}
}
reply.serializer((payload: string) => payload);
reply.send(graphqlResponse);
} catch (error) {
if ('HttpQueryError' !== error.name) {
throw error;
}
if (error.headers) {
Object.keys(error.headers).forEach(header => {
reply.header(header, error.headers[header]);
});
}
reply.code(error.statusCode);
reply.serializer((payload: string) => payload);
reply.send(error.message);
}
};
示例3: formatApolloErrors
.catch(error => {
if (error.status && error.expose) reply.status(error.status);
throw formatApolloErrors([error], {
formatter: server.requestOptions.formatError,
debug: server.requestOptions.debug,
});
});
示例4:
Object.keys(error.headers).forEach(header => {
reply.header(header, error.headers[header]);
});