Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
/**
* @license
* Copyright Andrey Chalkin (https://github.com/L2jLiga). All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://github.com/L2jLiga/fastify-decorators/blob/master/LICENSE
*/
import { GET, RequestHandler } from 'fastify-decorators';
@GET('/get')
class GetHandler extends RequestHandler {
async handle() {
return { message: 'OK!' };
}
}
export = GetHandler;
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://github.com/L2jLiga/fastify-decorators/blob/master/LICENSE
*/
import { FastifyReply, FastifyRequest } from 'fastify';
import { AbstractController, Controller, ControllerType, GET, Hook } from 'fastify-decorators';
import { IncomingMessage, ServerResponse } from 'http';
@Controller({
route: '/request',
type: ControllerType.REQUEST
})
class RequestController extends AbstractController {
private callsCount = 0;
@GET('/index')
async indexHandler() {
this.instance.log.info('Handled request to /request/index');
this.callsCount++;
return 'Request controller: index handler, calls count: ' + this.callsCount;
}
@Hook('onSend')
async hidePoweredBy(request: FastifyRequest, reply: FastifyReply) {
reply.header('X-Powered-By', 'nodejs');
}
}
export = RequestController;
* @license
* Copyright Andrey Chalkin (https://github.com/L2jLiga). All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://github.com/L2jLiga/fastify-decorators/blob/master/LICENSE
*/
import { FastifyReply, FastifyRequest } from 'fastify';
import { IncomingMessage, ServerResponse } from 'http';
import { Controller, GET, Hook } from 'fastify-decorators';
@Controller('/ctrl')
export default class SingletonController {
private callsCount = 0;
@GET('/index')
async index() {
this.callsCount++;
return 'Singleton controller: index handler, calls count: ' + this.callsCount;
}
@Hook('onSend')
async hidePoweredBy(request: FastifyRequest, reply: FastifyReply) {
reply.header('X-Powered-By', 'nodejs');
}
}
/**
* @license
* Copyright Andrey Chalkin (https://github.com/L2jLiga). All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://github.com/L2jLiga/fastify-decorators/blob/master/LICENSE
*/
import { FastifyReply, FastifyRequest } from 'fastify';
import { Controller, GET, Hook } from 'fastify-decorators';
import { IncomingMessage, ServerResponse } from 'http';
@Controller('/demo')
export default class SimpleController {
@GET({
url: '/test',
options: {
schema: {
response: {
200: {
properties: {
message: {type: 'string'}
}
}
}
}
}
})
async test(request: FastifyRequest, reply: FastifyReply) {
return {message: this.message};
}
/**
* @license
* Copyright Andrey Chalkin (https://github.com/L2jLiga). All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://github.com/L2jLiga/fastify-decorators/blob/master/LICENSE
*/
import { GET, RequestHandler } from 'fastify-decorators';
@GET({
url: '/get',
options: {}
})
class GetHandler extends RequestHandler {
public async handle(): Promise {
return {message: 'GET works!'};
}
}
export = GetHandler;