本文整理汇总了TypeScript中fastify.FastifyInstance类的典型用法代码示例。如果您正苦于以下问题:TypeScript FastifyInstance类的具体用法?TypeScript FastifyInstance怎么用?TypeScript FastifyInstance使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了FastifyInstance类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: describe
describe('apollo-server-fastify', () => {
let server: ApolloServer;
let httpServer: http.Server;
let app: FastifyInstance;
testApolloServer(
async options => {
server = new ApolloServer(options);
app = fastify();
app.register(server.createHandler());
await app.listen(port);
return createServerInfo(server, app.server);
},
async () => {
if (server) await server.stop();
if (app) await new Promise(resolve => app.close(() => resolve()));
if (httpServer && httpServer.listening) await httpServer.close();
},
);
});
示例2: async
return async (
app: FastifyInstance<Server, IncomingMessage, OutgoingMessage>,
) => {
await promiseWillStart;
if (!disableHealthCheck) {
app.get('/.well-known/apollo/server-health', async (req, res) => {
// Response follows https://tools.ietf.org/html/draft-inadarei-api-health-check-01
res.type('application/health+json');
if (onHealthCheck) {
try {
await onHealthCheck(req);
res.send(stringifyHealthCheck({ status: 'pass' }));
} catch (e) {
res.status(503).send(stringifyHealthCheck({ status: 'fail' }));
}
} else {
res.send(stringifyHealthCheck({ status: 'pass' }));
}
});
}
app.register(
async instance => {
instance.register(require('fastify-accepts'));
if (cors === true) {
instance.register(require('fastify-cors'));
} else if (cors !== false) {
instance.register(require('fastify-cors'), cors);
}
instance.setNotFoundHandler((_request, reply) => {
reply.code(405);
reply.header('allow', 'GET, POST');
reply.send();
});
const beforeHandlers = [
(
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();
},
];
if (typeof processFileUploads === 'function' && this.uploadsConfig) {
instance.addContentTypeParser(
'multipart',
(
request: IncomingMessage,
done: (err: Error | null, body?: any) => void,
) => {
(request as any)[kMultipart] = true;
done(null);
},
);
beforeHandlers.push(fileUploadMiddleware(this.uploadsConfig, this));
}
instance.route({
method: ['GET', 'POST'],
url: '/',
beforeHandler: beforeHandlers,
handler: await graphqlFastify(this.graphQLServerOptions.bind(this)),
});
},
{
prefix: this.graphqlPath,
//.........这里部分代码省略.........
示例3: createServerInfo
async options => {
server = new ApolloServer(options);
app = fastify();
app.register(server.createHandler());
await app.listen(port);
return createServerInfo(server, app.server);
},
示例4: createServer
async function createServer(
serverOptions: Config,
options: Partial<ServerRegistration> = {},
) {
server = new ApolloServer(serverOptions);
app = fastify();
app.register(server.createHandler(options));
await app.listen(port);
return createServerInfo(server, app.server);
}
示例5:
if (app) await new Promise(resolve => app.close(() => resolve()));