Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

fastify-decorators

Package Overview
Dependencies
Maintainers
1
Versions
52
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fastify-decorators - npm Package Compare versions

Comparing version 2.0.0 to 3.0.0-0

decorators/error-handler.d.ts

2

bootstrap/bootstrap.d.ts

@@ -13,2 +13,2 @@ /**

*/
export declare function bootstrap(fastify: FastifyInstance, config: BootstrapConfig): Promise<void>;
export declare function bootstrap(fastify: FastifyInstance<any, any, any, any>, config: BootstrapConfig): Promise<void>;

@@ -66,2 +66,2 @@ "use strict";

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2Jvb3RzdHJhcC9ib290c3RyYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBR0gseUJBQXlCO0FBQ3pCLCtCQUE0QjtBQUM1QiwrQkFBaUM7QUFHakMseURBQXNEO0FBQ3RELHdDQUEyRDtBQUMzRCw4REFBMEQ7QUFFMUQsTUFBTSxPQUFPLEdBQUcsZ0JBQVMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7QUFFdEMsTUFBTSxXQUFXLEdBQUcsMEJBQTBCLENBQUM7QUFFL0M7O0dBRUc7QUFDSSxLQUFLLFVBQVUsU0FBUyxDQUFDLE9BQXdCLEVBQUUsTUFBdUI7SUFDN0UseUJBQVcsQ0FBQyxHQUFHLENBQUMsOEJBQW9CLEVBQUUsZ0NBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBRS9ELElBQUksV0FBVyxJQUFJLE1BQU07UUFBRSxNQUFNLGVBQWUsQ0FBQyxNQUF3QixFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3BGLElBQUksYUFBYSxJQUFJLE1BQU07UUFBRSxlQUFlLENBQUMsTUFBK0IsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMzRixDQUFDO0FBTEQsOEJBS0M7QUFFRCxTQUFTLGVBQWUsQ0FBQyxNQUE2QixFQUFFLE9BQXdCO0lBQzVFLEtBQUssTUFBTSxVQUFVLElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRTtRQUN6QyxjQUFjLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztLQUMvQztBQUNMLENBQUM7QUFFRCxLQUFLLFVBQVUsZUFBZSxDQUFDLE1BQXNCLEVBQUUsT0FBd0I7SUFDM0UsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDbkUsSUFBSSxLQUFLLEVBQUUsTUFBTSxNQUFNLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLEVBQUU7UUFDOUQsY0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7S0FDdkQ7QUFDTCxDQUFDO0FBRUQsU0FBUyxjQUFjLENBQUMsVUFBMkIsRUFBRSxPQUF3QixFQUFFLE1BQXVCO0lBQ2xHLElBQUksVUFBVSxJQUFJLGlCQUFPLElBQUksVUFBVSxFQUFFO1FBQ3JDLFVBQVUsQ0FBQyxpQkFBTyxDQUFFLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQzFDO1NBQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUU7UUFDM0IsTUFBTSxJQUFJLFNBQVMsQ0FBQyxnRUFBZ0UsTUFBTSxFQUFFLENBQUMsQ0FBQztLQUNqRztBQUNMLENBQUM7QUFFRCxLQUFLLFNBQVMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFZLEVBQUUsTUFBYztJQUNwRCwwRkFBMEY7SUFDMUYsS0FBSyxNQUFNLFFBQVEsSUFBSSxNQUFNLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRTtRQUNqRSxNQUFNLFlBQVksR0FBRyxXQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUvQyxJQUFJLFFBQVEsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUN4QixLQUFLLENBQUMsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQzVDO2FBQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUU7WUFDckMsTUFBTSxZQUFZLENBQUM7U0FDdEI7S0FDSjtBQUNMLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxNQUFjO0lBQzlCLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVU7UUFDN0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPO1FBQ3pCLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDMUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbmRyZXkgQ2hhbGtpbiA8TDJqTGlnYUBnbWFpbC5jb20+IChodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYSkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EvZmFzdGlmeS1kZWNvcmF0b3JzL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgeyBGYXN0aWZ5SW5zdGFuY2UgfSBmcm9tICdmYXN0aWZ5JztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCB7IGpvaW4gfSBmcm9tICdwYXRoJztcbmltcG9ydCB7IHByb21pc2lmeSB9IGZyb20gJ3V0aWwnO1xuaW1wb3J0IHsgQm9vdHN0cmFwQ29uZmlnLCBJbmplY3RhYmxlQ2xhc3MgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEF1dG9Mb2FkQ29uZmlnLCBDb250cm9sbGVyc0xpc3RDb25maWcgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2Jvb3RzdHJhcC1jb25maWcnO1xuaW1wb3J0IHsgaW5qZWN0YWJsZXMgfSBmcm9tICcuLi9yZWdpc3RyeS9pbmplY3RhYmxlcyc7XG5pbXBvcnQgeyBDUkVBVE9SLCBGYXN0aWZ5SW5zdGFuY2VUb2tlbiB9IGZyb20gJy4uL3N5bWJvbHMnO1xuaW1wb3J0IHsgd3JhcEluamVjdGFibGUgfSBmcm9tICcuLi91dGlscy93cmFwLWluamVjdGFibGUnO1xuXG5jb25zdCByZWFkZGlyID0gcHJvbWlzaWZ5KGZzLnJlYWRkaXIpO1xuXG5jb25zdCBkZWZhdWx0TWFzayA9IC9cXC4oaGFuZGxlcnxjb250cm9sbGVyKVxcLi87XG5cbi8qKlxuICogTWV0aG9kIHdoaWNoIHJlY3Vyc2l2ZWx5IHNjYW4gaGFuZGxlcnMvY29udHJvbGxlcnMgZGlyZWN0b3J5IGFuZCBib290c3RyYXAgdGhlbVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYm9vdHN0cmFwKGZhc3RpZnk6IEZhc3RpZnlJbnN0YW5jZSwgY29uZmlnOiBCb290c3RyYXBDb25maWcpIHtcbiAgICBpbmplY3RhYmxlcy5zZXQoRmFzdGlmeUluc3RhbmNlVG9rZW4sIHdyYXBJbmplY3RhYmxlKGZhc3RpZnkpKTtcblxuICAgIGlmICgnZGlyZWN0b3J5JyBpbiBjb25maWcpIGF3YWl0IGF1dG9Mb2FkTW9kdWxlcyhjb25maWcgYXMgQXV0b0xvYWRDb25maWcsIGZhc3RpZnkpO1xuICAgIGlmICgnY29udHJvbGxlcnMnIGluIGNvbmZpZykgbG9hZENvbnRyb2xsZXJzKGNvbmZpZyBhcyBDb250cm9sbGVyc0xpc3RDb25maWcsIGZhc3RpZnkpO1xufVxuXG5mdW5jdGlvbiBsb2FkQ29udHJvbGxlcnMoY29uZmlnOiBDb250cm9sbGVyc0xpc3RDb25maWcsIGZhc3RpZnk6IEZhc3RpZnlJbnN0YW5jZSkge1xuICAgIGZvciAoY29uc3QgY29udHJvbGxlciBvZiBjb25maWcuY29udHJvbGxlcnMpIHtcbiAgICAgICAgbG9hZENvbnRyb2xsZXIoY29udHJvbGxlciwgZmFzdGlmeSwgY29uZmlnKTtcbiAgICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGF1dG9Mb2FkTW9kdWxlcyhjb25maWc6IEF1dG9Mb2FkQ29uZmlnLCBmYXN0aWZ5OiBGYXN0aWZ5SW5zdGFuY2UpIHtcbiAgICBjb25zdCBmaWx0ZXIgPSBjb25maWcubWFzayA/IG5ldyBSZWdFeHAoY29uZmlnLm1hc2spIDogZGVmYXVsdE1hc2s7XG4gICAgZm9yIGF3YWl0IChjb25zdCBtb2R1bGUgb2YgZmluZE1vZHVsZXMoY29uZmlnLmRpcmVjdG9yeSwgZmlsdGVyKSkge1xuICAgICAgICBsb2FkQ29udHJvbGxlcihsb2FkTW9kdWxlKG1vZHVsZSksIGZhc3RpZnksIGNvbmZpZyk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBsb2FkQ29udHJvbGxlcihjb250cm9sbGVyOiBJbmplY3RhYmxlQ2xhc3MsIGZhc3RpZnk6IEZhc3RpZnlJbnN0YW5jZSwgY29uZmlnOiBCb290c3RyYXBDb25maWcpIHtcbiAgICBpZiAoY29udHJvbGxlciAmJiBDUkVBVE9SIGluIGNvbnRyb2xsZXIpIHtcbiAgICAgICAgY29udHJvbGxlcltDUkVBVE9SXSEucmVnaXN0ZXIoZmFzdGlmeSk7XG4gICAgfSBlbHNlIGlmICghY29uZmlnLnNraXBCcm9rZW4pIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgTG9hZGVkIGZpbGUgaXMgaW5jb3JyZWN0IG1vZHVsZSBhbmQgY2FuIG5vdCBiZSBib290c3RyYXBwZWQ6ICR7bW9kdWxlfWApO1xuICAgIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24qIGZpbmRNb2R1bGVzKHBhdGg6IHN0cmluZywgZmlsdGVyOiBSZWdFeHApOiBBc3luY0l0ZXJhYmxlPHN0cmluZz4ge1xuICAgIC8vIFRPRE86IGNhbiBiZSByZXBsYWNlZCB3aXRoIGZvciBhd2FpdCAoY29uc3QgZmlsZVBhdGggb2YgZnMub3BlbmRpcikgaW4gTm9kZS5qcyA+PSAxMi4xMlxuICAgIGZvciAoY29uc3QgZmlsZVBhdGggb2YgYXdhaXQgcmVhZGRpcihwYXRoLCB7IHdpdGhGaWxlVHlwZXM6IHRydWUgfSkpIHtcbiAgICAgICAgY29uc3QgZnVsbEZpbGVQYXRoID0gam9pbihwYXRoLCBmaWxlUGF0aC5uYW1lKTtcblxuICAgICAgICBpZiAoZmlsZVBhdGguaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICAgICAgeWllbGQqIGZpbmRNb2R1bGVzKGZ1bGxGaWxlUGF0aCwgZmlsdGVyKTtcbiAgICAgICAgfSBlbHNlIGlmIChmaWx0ZXIudGVzdCgoZmlsZVBhdGgubmFtZSkpKSB7XG4gICAgICAgICAgICB5aWVsZCBmdWxsRmlsZVBhdGg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmZ1bmN0aW9uIGxvYWRNb2R1bGUobW9kdWxlOiBzdHJpbmcpOiBJbmplY3RhYmxlQ2xhc3Mge1xuICAgIHJldHVybiByZXF1aXJlKG1vZHVsZSkuX19lc01vZHVsZVxuICAgICAgICA/IHJlcXVpcmUobW9kdWxlKS5kZWZhdWx0XG4gICAgICAgIDogcmVxdWlyZShtb2R1bGUpO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2Jvb3RzdHJhcC9ib290c3RyYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBR0gseUJBQXlCO0FBQ3pCLCtCQUE0QjtBQUM1QiwrQkFBaUM7QUFHakMseURBQXNEO0FBQ3RELHdDQUEyRDtBQUMzRCw4REFBMEQ7QUFFMUQsTUFBTSxPQUFPLEdBQUcsZ0JBQVMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7QUFFdEMsTUFBTSxXQUFXLEdBQUcsMEJBQTBCLENBQUM7QUFFL0M7O0dBRUc7QUFDSSxLQUFLLFVBQVUsU0FBUyxDQUFDLE9BQTRDLEVBQUUsTUFBdUI7SUFDakcseUJBQVcsQ0FBQyxHQUFHLENBQUMsOEJBQW9CLEVBQUUsZ0NBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBRS9ELElBQUksV0FBVyxJQUFJLE1BQU07UUFBRSxNQUFNLGVBQWUsQ0FBQyxNQUF3QixFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3BGLElBQUksYUFBYSxJQUFJLE1BQU07UUFBRSxlQUFlLENBQUMsTUFBK0IsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMzRixDQUFDO0FBTEQsOEJBS0M7QUFFRCxTQUFTLGVBQWUsQ0FBQyxNQUE2QixFQUFFLE9BQXdCO0lBQzVFLEtBQUssTUFBTSxVQUFVLElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRTtRQUN6QyxjQUFjLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztLQUMvQztBQUNMLENBQUM7QUFFRCxLQUFLLFVBQVUsZUFBZSxDQUFDLE1BQXNCLEVBQUUsT0FBd0I7SUFDM0UsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDbkUsSUFBSSxLQUFLLEVBQUUsTUFBTSxNQUFNLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLEVBQUU7UUFDOUQsY0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7S0FDdkQ7QUFDTCxDQUFDO0FBRUQsU0FBUyxjQUFjLENBQUMsVUFBMkIsRUFBRSxPQUF3QixFQUFFLE1BQXVCO0lBQ2xHLElBQUksVUFBVSxJQUFJLGlCQUFPLElBQUksVUFBVSxFQUFFO1FBQ3JDLFVBQVUsQ0FBQyxpQkFBTyxDQUFFLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQzFDO1NBQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUU7UUFDM0IsTUFBTSxJQUFJLFNBQVMsQ0FBQyxnRUFBZ0UsTUFBTSxFQUFFLENBQUMsQ0FBQztLQUNqRztBQUNMLENBQUM7QUFFRCxLQUFLLFNBQVMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFZLEVBQUUsTUFBYztJQUNwRCwwRkFBMEY7SUFDMUYsS0FBSyxNQUFNLFFBQVEsSUFBSSxNQUFNLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRTtRQUNqRSxNQUFNLFlBQVksR0FBRyxXQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUvQyxJQUFJLFFBQVEsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUN4QixLQUFLLENBQUMsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQzVDO2FBQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUU7WUFDckMsTUFBTSxZQUFZLENBQUM7U0FDdEI7S0FDSjtBQUNMLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxNQUFjO0lBQzlCLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVU7UUFDN0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPO1FBQ3pCLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDMUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbmRyZXkgQ2hhbGtpbiA8TDJqTGlnYUBnbWFpbC5jb20+IChodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYSkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EvZmFzdGlmeS1kZWNvcmF0b3JzL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgeyBGYXN0aWZ5SW5zdGFuY2UgfSBmcm9tICdmYXN0aWZ5JztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCB7IGpvaW4gfSBmcm9tICdwYXRoJztcbmltcG9ydCB7IHByb21pc2lmeSB9IGZyb20gJ3V0aWwnO1xuaW1wb3J0IHsgQm9vdHN0cmFwQ29uZmlnLCBJbmplY3RhYmxlQ2xhc3MgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEF1dG9Mb2FkQ29uZmlnLCBDb250cm9sbGVyc0xpc3RDb25maWcgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2Jvb3RzdHJhcC1jb25maWcnO1xuaW1wb3J0IHsgaW5qZWN0YWJsZXMgfSBmcm9tICcuLi9yZWdpc3RyeS9pbmplY3RhYmxlcyc7XG5pbXBvcnQgeyBDUkVBVE9SLCBGYXN0aWZ5SW5zdGFuY2VUb2tlbiB9IGZyb20gJy4uL3N5bWJvbHMnO1xuaW1wb3J0IHsgd3JhcEluamVjdGFibGUgfSBmcm9tICcuLi91dGlscy93cmFwLWluamVjdGFibGUnO1xuXG5jb25zdCByZWFkZGlyID0gcHJvbWlzaWZ5KGZzLnJlYWRkaXIpO1xuXG5jb25zdCBkZWZhdWx0TWFzayA9IC9cXC4oaGFuZGxlcnxjb250cm9sbGVyKVxcLi87XG5cbi8qKlxuICogTWV0aG9kIHdoaWNoIHJlY3Vyc2l2ZWx5IHNjYW4gaGFuZGxlcnMvY29udHJvbGxlcnMgZGlyZWN0b3J5IGFuZCBib290c3RyYXAgdGhlbVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYm9vdHN0cmFwKGZhc3RpZnk6IEZhc3RpZnlJbnN0YW5jZTxhbnksIGFueSwgYW55LCBhbnk+LCBjb25maWc6IEJvb3RzdHJhcENvbmZpZykge1xuICAgIGluamVjdGFibGVzLnNldChGYXN0aWZ5SW5zdGFuY2VUb2tlbiwgd3JhcEluamVjdGFibGUoZmFzdGlmeSkpO1xuXG4gICAgaWYgKCdkaXJlY3RvcnknIGluIGNvbmZpZykgYXdhaXQgYXV0b0xvYWRNb2R1bGVzKGNvbmZpZyBhcyBBdXRvTG9hZENvbmZpZywgZmFzdGlmeSk7XG4gICAgaWYgKCdjb250cm9sbGVycycgaW4gY29uZmlnKSBsb2FkQ29udHJvbGxlcnMoY29uZmlnIGFzIENvbnRyb2xsZXJzTGlzdENvbmZpZywgZmFzdGlmeSk7XG59XG5cbmZ1bmN0aW9uIGxvYWRDb250cm9sbGVycyhjb25maWc6IENvbnRyb2xsZXJzTGlzdENvbmZpZywgZmFzdGlmeTogRmFzdGlmeUluc3RhbmNlKSB7XG4gICAgZm9yIChjb25zdCBjb250cm9sbGVyIG9mIGNvbmZpZy5jb250cm9sbGVycykge1xuICAgICAgICBsb2FkQ29udHJvbGxlcihjb250cm9sbGVyLCBmYXN0aWZ5LCBjb25maWcpO1xuICAgIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gYXV0b0xvYWRNb2R1bGVzKGNvbmZpZzogQXV0b0xvYWRDb25maWcsIGZhc3RpZnk6IEZhc3RpZnlJbnN0YW5jZSkge1xuICAgIGNvbnN0IGZpbHRlciA9IGNvbmZpZy5tYXNrID8gbmV3IFJlZ0V4cChjb25maWcubWFzaykgOiBkZWZhdWx0TWFzaztcbiAgICBmb3IgYXdhaXQgKGNvbnN0IG1vZHVsZSBvZiBmaW5kTW9kdWxlcyhjb25maWcuZGlyZWN0b3J5LCBmaWx0ZXIpKSB7XG4gICAgICAgIGxvYWRDb250cm9sbGVyKGxvYWRNb2R1bGUobW9kdWxlKSwgZmFzdGlmeSwgY29uZmlnKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGxvYWRDb250cm9sbGVyKGNvbnRyb2xsZXI6IEluamVjdGFibGVDbGFzcywgZmFzdGlmeTogRmFzdGlmeUluc3RhbmNlLCBjb25maWc6IEJvb3RzdHJhcENvbmZpZykge1xuICAgIGlmIChjb250cm9sbGVyICYmIENSRUFUT1IgaW4gY29udHJvbGxlcikge1xuICAgICAgICBjb250cm9sbGVyW0NSRUFUT1JdIS5yZWdpc3RlcihmYXN0aWZ5KTtcbiAgICB9IGVsc2UgaWYgKCFjb25maWcuc2tpcEJyb2tlbikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBMb2FkZWQgZmlsZSBpcyBpbmNvcnJlY3QgbW9kdWxlIGFuZCBjYW4gbm90IGJlIGJvb3RzdHJhcHBlZDogJHttb2R1bGV9YCk7XG4gICAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiogZmluZE1vZHVsZXMocGF0aDogc3RyaW5nLCBmaWx0ZXI6IFJlZ0V4cCk6IEFzeW5jSXRlcmFibGU8c3RyaW5nPiB7XG4gICAgLy8gVE9ETzogY2FuIGJlIHJlcGxhY2VkIHdpdGggZm9yIGF3YWl0IChjb25zdCBmaWxlUGF0aCBvZiBmcy5vcGVuZGlyKSBpbiBOb2RlLmpzID49IDEyLjEyXG4gICAgZm9yIChjb25zdCBmaWxlUGF0aCBvZiBhd2FpdCByZWFkZGlyKHBhdGgsIHsgd2l0aEZpbGVUeXBlczogdHJ1ZSB9KSkge1xuICAgICAgICBjb25zdCBmdWxsRmlsZVBhdGggPSBqb2luKHBhdGgsIGZpbGVQYXRoLm5hbWUpO1xuXG4gICAgICAgIGlmIChmaWxlUGF0aC5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICAgICAgICB5aWVsZCogZmluZE1vZHVsZXMoZnVsbEZpbGVQYXRoLCBmaWx0ZXIpO1xuICAgICAgICB9IGVsc2UgaWYgKGZpbHRlci50ZXN0KChmaWxlUGF0aC5uYW1lKSkpIHtcbiAgICAgICAgICAgIHlpZWxkIGZ1bGxGaWxlUGF0aDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZnVuY3Rpb24gbG9hZE1vZHVsZShtb2R1bGU6IHN0cmluZyk6IEluamVjdGFibGVDbGFzcyB7XG4gICAgcmV0dXJuIHJlcXVpcmUobW9kdWxlKS5fX2VzTW9kdWxlXG4gICAgICAgID8gcmVxdWlyZShtb2R1bGUpLmRlZmF1bHRcbiAgICAgICAgOiByZXF1aXJlKG1vZHVsZSk7XG59XG4iXX0=

@@ -8,3 +8,9 @@ # Changelog

## [Unreleased]
## [3.0.0-0]
## Added
- `@ErrorHandler` decorator for error handling within controllers
## Changed
- *BREAKING*: move to Fastify 3
## [2.0.0]

@@ -65,3 +71,4 @@ ### Added

[Unreleased]: https://github.com/L2jLiga/fastify-decorators/compare/v2.0.0...HEAD
[Unreleased]: https://github.com/L2jLiga/fastify-decorators/compare/v3.0.0-0...HEAD
[3.0.0-0]: https://github.com/L2jLiga/fastify-decorators/compare/v2.0.0...v3.0.0-0
[2.0.0]: https://github.com/L2jLiga/fastify-decorators/compare/v1.3.0...v2.0.0

@@ -68,0 +75,0 @@ [1.3.0]: https://github.com/L2jLiga/fastify-decorators/compare/v1.2.0...v1.3.0

@@ -33,2 +33,2 @@ "use strict";

exports.Controller = Controller;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9kZWNvcmF0b3JzL2NvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBR0gsMENBQTZDO0FBQzdDLHlEQUFzRDtBQUN0RCx3Q0FBa0Q7QUFDbEQsbUZBQXFGO0FBQ3JGLGtFQUF3RTtBQUV4RSxTQUFTLFVBQVUsQ0FBQyxNQUFrQztJQUNsRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVE7UUFBRSxNQUFNLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFFM0QsT0FBTyxFQUFFLElBQUksRUFBRSx5QkFBYyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7QUFDckUsQ0FBQztBQVFELFNBQWdCLFVBQVUsQ0FBQyxNQUFrQztJQUN6RCxPQUFPLENBQTZFLFVBQWEsRUFBUSxFQUFFO1FBQ3ZHLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTNDLDBEQUE4QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWQsVUFBVyxDQUFDLGlCQUFPLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxRQUFRLEVBQUUsY0FBYyxHQUFHLHlCQUFXLEVBQUUsV0FBVyxHQUFHLElBQUksRUFBRSxFQUFFO1lBQ3hILFVBQVUsQ0FBQyxxQkFBVyxDQUFDLEdBQUcsY0FBYyxDQUFDO1lBQ3pDLFVBQVUsQ0FBQyxTQUFTLENBQUMscUJBQVcsQ0FBQyxHQUFHLGNBQWMsQ0FBQztZQUNuRCxPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFDLFFBQVEsRUFBQyxFQUFFLENBQUMsMENBQXdCLENBQUMsSUFBSyxDQUFDLENBQUMsUUFBUSxFQUFPLFVBQVUsRUFBRSxjQUFjLEVBQUUsV0FBVyxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUMzSixDQUFDLENBQUM7SUFDTixDQUFDLENBQUM7QUFDTixDQUFDO0FBWkQsZ0NBWUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQW5kcmV5IENoYWxraW4gPEwyakxpZ2FAZ21haWwuY29tPiAoaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EpLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhL2Zhc3RpZnktZGVjb3JhdG9ycy9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHsgQ29udHJvbGxlckNvbmZpZywgQ29udHJvbGxlckNvbnN0cnVjdG9yIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDb250cm9sbGVyVHlwZSB9IGZyb20gJy4uL3JlZ2lzdHJ5JztcbmltcG9ydCB7IGluamVjdGFibGVzIH0gZnJvbSAnLi4vcmVnaXN0cnkvaW5qZWN0YWJsZXMnO1xuaW1wb3J0IHsgQ1JFQVRPUiwgSU5KRUNUQUJMRVMgfSBmcm9tICcuLi9zeW1ib2xzJztcbmltcG9ydCB7IGluamVjdERlZmF1bHRDb250cm9sbGVyT3B0aW9ucyB9IGZyb20gJy4vaGVscGVycy9pbmplY3QtY29udHJvbGxlci1vcHRpb25zJztcbmltcG9ydCB7IENvbnRyb2xsZXJUeXBlU3RyYXRlZ2llcyB9IGZyb20gJy4vc3RyYXRlZ2llcy9jb250cm9sbGVyLXR5cGUnO1xuXG5mdW5jdGlvbiBtYWtlQ29uZmlnKGNvbmZpZz86IHN0cmluZyB8IENvbnRyb2xsZXJDb25maWcpOiBDb250cm9sbGVyQ29uZmlnIHtcbiAgICBpZiAodHlwZW9mIGNvbmZpZyA9PT0gJ3N0cmluZycpIGNvbmZpZyA9IHsgcm91dGU6IGNvbmZpZyB9O1xuXG4gICAgcmV0dXJuIHsgdHlwZTogQ29udHJvbGxlclR5cGUuU0lOR0xFVE9OLCByb3V0ZTogJy8nLCAuLi5jb25maWcgfTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIHJlZ2lzdGVyIG1ldGhvZCBvbiBjb250cm9sbGVyIHRvIGFsbG93IGJvb3RzdHJhcCBpdFxuICovXG5leHBvcnQgZnVuY3Rpb24gQ29udHJvbGxlcigpOiBDbGFzc0RlY29yYXRvcjtcbmV4cG9ydCBmdW5jdGlvbiBDb250cm9sbGVyKHJvdXRlOiBzdHJpbmcpOiBDbGFzc0RlY29yYXRvcjtcbmV4cG9ydCBmdW5jdGlvbiBDb250cm9sbGVyKGNvbmZpZzogQ29udHJvbGxlckNvbmZpZyk6IENsYXNzRGVjb3JhdG9yO1xuZXhwb3J0IGZ1bmN0aW9uIENvbnRyb2xsZXIoY29uZmlnPzogc3RyaW5nIHwgQ29udHJvbGxlckNvbmZpZykge1xuICAgIHJldHVybiA8VCBleHRlbmRzIEZ1bmN0aW9uICYgeyBbSU5KRUNUQUJMRVNdOiBNYXA8c3RyaW5nIHwgc3ltYm9sIHwgT2JqZWN0LCBhbnk+IH0+KGNvbnRyb2xsZXI6IFQpOiB2b2lkID0+IHtcbiAgICAgICAgY29uc3QgeyByb3V0ZSwgdHlwZSB9ID0gbWFrZUNvbmZpZyhjb25maWcpO1xuXG4gICAgICAgIGluamVjdERlZmF1bHRDb250cm9sbGVyT3B0aW9ucyhjb250cm9sbGVyKTtcblxuICAgICAgICAoPENvbnRyb2xsZXJDb25zdHJ1Y3Rvcj48YW55PmNvbnRyb2xsZXIpW0NSRUFUT1JdLnJlZ2lzdGVyID0gKGluc3RhbmNlLCBpbmplY3RhYmxlc01hcCA9IGluamVjdGFibGVzLCBjYWNoZVJlc3VsdCA9IHRydWUpID0+IHtcbiAgICAgICAgICAgIGNvbnRyb2xsZXJbSU5KRUNUQUJMRVNdID0gaW5qZWN0YWJsZXNNYXA7XG4gICAgICAgICAgICBjb250cm9sbGVyLnByb3RvdHlwZVtJTkpFQ1RBQkxFU10gPSBpbmplY3RhYmxlc01hcDtcbiAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZS5yZWdpc3Rlcihhc3luYyBpbnN0YW5jZSA9PiBDb250cm9sbGVyVHlwZVN0cmF0ZWdpZXNbdHlwZSFdKGluc3RhbmNlLCA8YW55PmNvbnRyb2xsZXIsIGluamVjdGFibGVzTWFwLCBjYWNoZVJlc3VsdCksIHsgcHJlZml4OiByb3V0ZSB9KTtcbiAgICAgICAgfTtcbiAgICB9O1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9kZWNvcmF0b3JzL2NvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBSUgsMENBQTZDO0FBQzdDLHlEQUFzRDtBQUN0RCx3Q0FBa0Q7QUFDbEQsbUZBQXFGO0FBQ3JGLGtFQUF3RTtBQUV4RSxTQUFTLFVBQVUsQ0FBQyxNQUFrQztJQUNsRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVE7UUFBRSxNQUFNLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFFM0QsT0FBTyxFQUFFLElBQUksRUFBRSx5QkFBYyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7QUFDckUsQ0FBQztBQVFELFNBQWdCLFVBQVUsQ0FBQyxNQUFrQztJQUN6RCxPQUFPLENBQTZFLFVBQWEsRUFBUSxFQUFFO1FBQ3ZHLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTNDLDBEQUE4QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWQsVUFBVyxDQUFDLGlCQUFPLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxRQUF5QixFQUFFLGNBQWMsR0FBRyx5QkFBVyxFQUFFLFdBQVcsR0FBRyxJQUFJLEVBQUUsRUFBRTtZQUN6SSxVQUFVLENBQUMscUJBQVcsQ0FBQyxHQUFHLGNBQWMsQ0FBQztZQUN6QyxVQUFVLENBQUMsU0FBUyxDQUFDLHFCQUFXLENBQUMsR0FBRyxjQUFjLENBQUM7WUFDbkQsT0FBTyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBQyxRQUFRLEVBQUMsRUFBRSxDQUFDLDBDQUF3QixDQUFDLElBQUssQ0FBQyxDQUFDLFFBQVEsRUFBTyxVQUFVLEVBQUUsY0FBYyxFQUFFLFdBQVcsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDM0osQ0FBQyxDQUFDO0lBQ04sQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQVpELGdDQVlDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFuZHJleSBDaGFsa2luIDxMMmpMaWdhQGdtYWlsLmNvbT4gKGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhKS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYS9mYXN0aWZ5LWRlY29yYXRvcnMvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCB7IEZhc3RpZnlJbnN0YW5jZSB9IGZyb20gJ2Zhc3RpZnknO1xuaW1wb3J0IHsgQ29udHJvbGxlckNvbmZpZywgQ29udHJvbGxlckNvbnN0cnVjdG9yIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDb250cm9sbGVyVHlwZSB9IGZyb20gJy4uL3JlZ2lzdHJ5JztcbmltcG9ydCB7IGluamVjdGFibGVzIH0gZnJvbSAnLi4vcmVnaXN0cnkvaW5qZWN0YWJsZXMnO1xuaW1wb3J0IHsgQ1JFQVRPUiwgSU5KRUNUQUJMRVMgfSBmcm9tICcuLi9zeW1ib2xzJztcbmltcG9ydCB7IGluamVjdERlZmF1bHRDb250cm9sbGVyT3B0aW9ucyB9IGZyb20gJy4vaGVscGVycy9pbmplY3QtY29udHJvbGxlci1vcHRpb25zJztcbmltcG9ydCB7IENvbnRyb2xsZXJUeXBlU3RyYXRlZ2llcyB9IGZyb20gJy4vc3RyYXRlZ2llcy9jb250cm9sbGVyLXR5cGUnO1xuXG5mdW5jdGlvbiBtYWtlQ29uZmlnKGNvbmZpZz86IHN0cmluZyB8IENvbnRyb2xsZXJDb25maWcpOiBDb250cm9sbGVyQ29uZmlnIHtcbiAgICBpZiAodHlwZW9mIGNvbmZpZyA9PT0gJ3N0cmluZycpIGNvbmZpZyA9IHsgcm91dGU6IGNvbmZpZyB9O1xuXG4gICAgcmV0dXJuIHsgdHlwZTogQ29udHJvbGxlclR5cGUuU0lOR0xFVE9OLCByb3V0ZTogJy8nLCAuLi5jb25maWcgfTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIHJlZ2lzdGVyIG1ldGhvZCBvbiBjb250cm9sbGVyIHRvIGFsbG93IGJvb3RzdHJhcCBpdFxuICovXG5leHBvcnQgZnVuY3Rpb24gQ29udHJvbGxlcigpOiBDbGFzc0RlY29yYXRvcjtcbmV4cG9ydCBmdW5jdGlvbiBDb250cm9sbGVyKHJvdXRlOiBzdHJpbmcpOiBDbGFzc0RlY29yYXRvcjtcbmV4cG9ydCBmdW5jdGlvbiBDb250cm9sbGVyKGNvbmZpZzogQ29udHJvbGxlckNvbmZpZyk6IENsYXNzRGVjb3JhdG9yO1xuZXhwb3J0IGZ1bmN0aW9uIENvbnRyb2xsZXIoY29uZmlnPzogc3RyaW5nIHwgQ29udHJvbGxlckNvbmZpZykge1xuICAgIHJldHVybiA8VCBleHRlbmRzIEZ1bmN0aW9uICYgeyBbSU5KRUNUQUJMRVNdOiBNYXA8c3RyaW5nIHwgc3ltYm9sIHwgT2JqZWN0LCBhbnk+IH0+KGNvbnRyb2xsZXI6IFQpOiB2b2lkID0+IHtcbiAgICAgICAgY29uc3QgeyByb3V0ZSwgdHlwZSB9ID0gbWFrZUNvbmZpZyhjb25maWcpO1xuXG4gICAgICAgIGluamVjdERlZmF1bHRDb250cm9sbGVyT3B0aW9ucyhjb250cm9sbGVyKTtcblxuICAgICAgICAoPENvbnRyb2xsZXJDb25zdHJ1Y3Rvcj48YW55PmNvbnRyb2xsZXIpW0NSRUFUT1JdLnJlZ2lzdGVyID0gKGluc3RhbmNlOiBGYXN0aWZ5SW5zdGFuY2UsIGluamVjdGFibGVzTWFwID0gaW5qZWN0YWJsZXMsIGNhY2hlUmVzdWx0ID0gdHJ1ZSkgPT4ge1xuICAgICAgICAgICAgY29udHJvbGxlcltJTkpFQ1RBQkxFU10gPSBpbmplY3RhYmxlc01hcDtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIucHJvdG90eXBlW0lOSkVDVEFCTEVTXSA9IGluamVjdGFibGVzTWFwO1xuICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlLnJlZ2lzdGVyKGFzeW5jIGluc3RhbmNlID0+IENvbnRyb2xsZXJUeXBlU3RyYXRlZ2llc1t0eXBlIV0oaW5zdGFuY2UsIDxhbnk+Y29udHJvbGxlciwgaW5qZWN0YWJsZXNNYXAsIGNhY2hlUmVzdWx0KSwgeyBwcmVmaXg6IHJvdXRlIH0pO1xuICAgICAgICB9O1xuICAgIH07XG59XG4iXX0=

@@ -21,5 +21,6 @@ "use strict";

handlers: [],
hooks: []
errorHandlers: [],
hooks: [],
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0LWNvbnRyb2xsZXItb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9kZWNvcmF0b3JzL2hlbHBlcnMvaW5qZWN0LWNvbnRyb2xsZXItb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFJSCwyQ0FBd0M7QUFFeEMsU0FBZ0IsOEJBQThCLENBQUMsVUFBZTtJQUMxRCxJQUFJLENBQXlCLFVBQVcsQ0FBQyxpQkFBTyxDQUFDLEVBQUU7UUFDdkIsVUFBVyxDQUFDLGlCQUFPLENBQUMsR0FBRywyQkFBMkIsRUFBRSxDQUFDO0tBQ2hGO0FBQ0wsQ0FBQztBQUpELHdFQUlDO0FBRUQsU0FBUywyQkFBMkI7SUFDaEMsT0FBTztRQUNILFFBQVEsRUFBRSxFQUFFO1FBQ1osS0FBSyxFQUFFLEVBQUU7S0FDWixDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbmRyZXkgQ2hhbGtpbiA8TDJqTGlnYUBnbWFpbC5jb20+IChodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYSkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EvZmFzdGlmeS1kZWNvcmF0b3JzL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgeyBJbmNvbWluZ01lc3NhZ2UsIFNlcnZlciwgU2VydmVyUmVzcG9uc2UgfSBmcm9tICdodHRwJztcbmltcG9ydCB7IENvbnRyb2xsZXJDb25zdHJ1Y3RvciwgQ29udHJvbGxlckhhbmRsZXJzQW5kSG9va3MgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IENSRUFUT1IgfSBmcm9tICcuLi8uLi9zeW1ib2xzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdERlZmF1bHRDb250cm9sbGVyT3B0aW9ucyhjb250cm9sbGVyOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoISg8Q29udHJvbGxlckNvbnN0cnVjdG9yPmNvbnRyb2xsZXIpW0NSRUFUT1JdKSB7XG4gICAgICAgICg8Q29udHJvbGxlckNvbnN0cnVjdG9yPmNvbnRyb2xsZXIpW0NSRUFUT1JdID0gZ2V0RGVmYXVsdENvbnRyb2xsZXJPcHRpb25zKCk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBnZXREZWZhdWx0Q29udHJvbGxlck9wdGlvbnMoKTogQ29udHJvbGxlckhhbmRsZXJzQW5kSG9va3M8U2VydmVyLCBJbmNvbWluZ01lc3NhZ2UsIFNlcnZlclJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaGFuZGxlcnM6IFtdLFxuICAgICAgICBob29rczogW11cbiAgICB9O1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0LWNvbnRyb2xsZXItb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9kZWNvcmF0b3JzL2hlbHBlcnMvaW5qZWN0LWNvbnRyb2xsZXItb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFJSCwyQ0FBd0M7QUFFeEMsU0FBZ0IsOEJBQThCLENBQUMsVUFBZTtJQUMxRCxJQUFJLENBQXlCLFVBQVcsQ0FBQyxpQkFBTyxDQUFDLEVBQUU7UUFDdkIsVUFBVyxDQUFDLGlCQUFPLENBQUMsR0FBRywyQkFBMkIsRUFBRSxDQUFDO0tBQ2hGO0FBQ0wsQ0FBQztBQUpELHdFQUlDO0FBRUQsU0FBUywyQkFBMkI7SUFDaEMsT0FBTztRQUNILFFBQVEsRUFBRSxFQUFFO1FBQ1osYUFBYSxFQUFFLEVBQUU7UUFDakIsS0FBSyxFQUFFLEVBQUU7S0FDWixDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbmRyZXkgQ2hhbGtpbiA8TDJqTGlnYUBnbWFpbC5jb20+IChodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYSkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EvZmFzdGlmeS1kZWNvcmF0b3JzL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgeyBJbmNvbWluZ01lc3NhZ2UsIFNlcnZlciwgU2VydmVyUmVzcG9uc2UgfSBmcm9tICdodHRwJztcbmltcG9ydCB7IENvbnRyb2xsZXJDb25zdHJ1Y3RvciwgQ29udHJvbGxlckhhbmRsZXJzQW5kSG9va3MgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IENSRUFUT1IgfSBmcm9tICcuLi8uLi9zeW1ib2xzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdERlZmF1bHRDb250cm9sbGVyT3B0aW9ucyhjb250cm9sbGVyOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoISg8Q29udHJvbGxlckNvbnN0cnVjdG9yPmNvbnRyb2xsZXIpW0NSRUFUT1JdKSB7XG4gICAgICAgICg8Q29udHJvbGxlckNvbnN0cnVjdG9yPmNvbnRyb2xsZXIpW0NSRUFUT1JdID0gZ2V0RGVmYXVsdENvbnRyb2xsZXJPcHRpb25zKCk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBnZXREZWZhdWx0Q29udHJvbGxlck9wdGlvbnMoKTogQ29udHJvbGxlckhhbmRsZXJzQW5kSG9va3M8U2VydmVyLCBJbmNvbWluZ01lc3NhZ2UsIFNlcnZlclJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaGFuZGxlcnM6IFtdLFxuICAgICAgICBlcnJvckhhbmRsZXJzOiBbXSxcbiAgICAgICAgaG9va3M6IFtdLFxuICAgIH07XG59XG4iXX0=

@@ -12,3 +12,3 @@ /**

import { HttpMethods } from './http-methods';
export declare function requestDecoratorsFactory(method: HttpMethods): (routeOrConfig?: string | RouteConfig | undefined, options?: RouteShorthandOptions<import("http").Server, import("http").IncomingMessage, import("http").ServerResponse, import("fastify").DefaultQuery, import("fastify").DefaultParams, import("fastify").DefaultHeaders, any> | undefined) => (target: any, propKey?: string | symbol | undefined) => void;
export declare function requestDecoratorsFactory(method: HttpMethods): (routeOrConfig?: string | RouteConfig | undefined, options?: RouteShorthandOptions<import("http").Server, import("http").IncomingMessage, import("http").ServerResponse, import("fastify").RequestGenericInterface, unknown> | undefined) => (target: any, propKey?: string | symbol | undefined) => void;
export declare function controllerMethodDecoratorsFactory(method: HttpMethods, config: RouteConfig, target: any, propKey: string | symbol): void;

@@ -11,3 +11,4 @@ /**

export { Hook } from './hook';
export { ErrorHandler } from './error-handler';
export { Controller } from './controller';
export { ALL, DELETE, GET, HEAD, OPTIONS, PATCH, POST, PUT } from './request-handlers';

@@ -16,2 +16,4 @@ "use strict";

Object.defineProperty(exports, "Hook", { enumerable: true, get: function () { return hook_1.Hook; } });
var error_handler_1 = require("./error-handler");
Object.defineProperty(exports, "ErrorHandler", { enumerable: true, get: function () { return error_handler_1.ErrorHandler; } });
var controller_1 = require("./controller");

@@ -28,2 +30,2 @@ Object.defineProperty(exports, "Controller", { enumerable: true, get: function () { return controller_1.Controller; } });

Object.defineProperty(exports, "PUT", { enumerable: true, get: function () { return request_handlers_1.PUT; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZGVjb3JhdG9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOztBQUVILHFDQUFvQztBQUEzQixrR0FBQSxPQUFPLE9BQUE7QUFDaEIsbUNBQWtDO0FBQXpCLGdHQUFBLE1BQU0sT0FBQTtBQUNmLCtCQUE4QjtBQUFyQiw0RkFBQSxJQUFJLE9BQUE7QUFFYiwyQ0FBMEM7QUFBakMsd0dBQUEsVUFBVSxPQUFBO0FBRW5CLHVEQUF1RjtBQUE5RSx1R0FBQSxHQUFHLE9BQUE7QUFBRSwwR0FBQSxNQUFNLE9BQUE7QUFBRSx1R0FBQSxHQUFHLE9BQUE7QUFBRSx3R0FBQSxJQUFJLE9BQUE7QUFBRSwyR0FBQSxPQUFPLE9BQUE7QUFBRSx5R0FBQSxLQUFLLE9BQUE7QUFBRSx3R0FBQSxJQUFJLE9BQUE7QUFBRSx1R0FBQSxHQUFHLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQW5kcmV5IENoYWxraW4gPEwyakxpZ2FAZ21haWwuY29tPiAoaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EpLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhL2Zhc3RpZnktZGVjb3JhdG9ycy9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuZXhwb3J0IHsgU2VydmljZSB9IGZyb20gJy4vc2VydmljZSc7XG5leHBvcnQgeyBJbmplY3QgfSBmcm9tICcuL2luamVjdCc7XG5leHBvcnQgeyBIb29rIH0gZnJvbSAnLi9ob29rJztcblxuZXhwb3J0IHsgQ29udHJvbGxlciB9IGZyb20gJy4vY29udHJvbGxlcic7XG5cbmV4cG9ydCB7IEFMTCwgREVMRVRFLCBHRVQsIEhFQUQsIE9QVElPTlMsIFBBVENILCBQT1NULCBQVVQgfSBmcm9tICcuL3JlcXVlc3QtaGFuZGxlcnMnO1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZGVjb3JhdG9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOztBQUVILHFDQUFvQztBQUEzQixrR0FBQSxPQUFPLE9BQUE7QUFDaEIsbUNBQWtDO0FBQXpCLGdHQUFBLE1BQU0sT0FBQTtBQUNmLCtCQUE4QjtBQUFyQiw0RkFBQSxJQUFJLE9BQUE7QUFDYixpREFBK0M7QUFBdEMsNkdBQUEsWUFBWSxPQUFBO0FBRXJCLDJDQUEwQztBQUFqQyx3R0FBQSxVQUFVLE9BQUE7QUFFbkIsdURBQXVGO0FBQTlFLHVHQUFBLEdBQUcsT0FBQTtBQUFFLDBHQUFBLE1BQU0sT0FBQTtBQUFFLHVHQUFBLEdBQUcsT0FBQTtBQUFFLHdHQUFBLElBQUksT0FBQTtBQUFFLDJHQUFBLE9BQU8sT0FBQTtBQUFFLHlHQUFBLEtBQUssT0FBQTtBQUFFLHdHQUFBLElBQUksT0FBQTtBQUFFLHVHQUFBLEdBQUcsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbmRyZXkgQ2hhbGtpbiA8TDJqTGlnYUBnbWFpbC5jb20+IChodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYSkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EvZmFzdGlmeS1kZWNvcmF0b3JzL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5leHBvcnQgeyBTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlJztcbmV4cG9ydCB7IEluamVjdCB9IGZyb20gJy4vaW5qZWN0JztcbmV4cG9ydCB7IEhvb2sgfSBmcm9tICcuL2hvb2snO1xuZXhwb3J0IHsgRXJyb3JIYW5kbGVyIH0gZnJvbSAnLi9lcnJvci1oYW5kbGVyJztcblxuZXhwb3J0IHsgQ29udHJvbGxlciB9IGZyb20gJy4vY29udHJvbGxlcic7XG5cbmV4cG9ydCB7IEFMTCwgREVMRVRFLCBHRVQsIEhFQUQsIE9QVElPTlMsIFBBVENILCBQT1NULCBQVVQgfSBmcm9tICcuL3JlcXVlc3QtaGFuZGxlcnMnO1xuIl19

@@ -23,4 +23,4 @@ /**

export declare const ControllerTypeStrategies: {
readonly 0: (instance: FastifyInstance, constructor: ControllerConstructor, injectablesMap: Map<any, any>, cacheResult: boolean) => void;
readonly 1: (instance: FastifyInstance, constructor: ControllerConstructor, injectablesMap: Map<any, any>, cacheResult: boolean) => void;
readonly 0: (instance: FastifyInstance<any, any, any, any>, constructor: ControllerConstructor, injectablesMap: Map<any, any>, cacheResult: boolean) => void;
readonly 1: (instance: FastifyInstance<any, any, any, any>, constructor: ControllerConstructor, injectablesMap: Map<any, any>, cacheResult: boolean) => void;
};

@@ -29,10 +29,5 @@ "use strict";

const configuration = constructor[symbols_1.CREATOR];
configuration.handlers.forEach(handler => {
instance[handler.method](handler.url, handler.options, function (...args) {
return controllerInstance[handler.handlerMethod](...args);
});
});
configuration.hooks.forEach(hook => {
instance.addHook(hook.name, controllerInstance[hook.handlerName].bind(controllerInstance));
});
registerHandlers(configuration.handlers, instance, controllerInstance);
registerErrorHandlers(configuration.errorHandlers, instance, controllerInstance);
registerHooks(configuration.hooks, instance, controllerInstance);
},

@@ -47,4 +42,34 @@ [registry_1.ControllerType.REQUEST](instance, constructor, injectablesMap, cacheResult) {

});
}
},
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2RlY29yYXRvcnMvc3RyYXRlZ2llcy9jb250cm9sbGVyLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBSUgsNkNBQWdEO0FBQ2hELDJDQUF3QztBQUN4Qyx3RUFBZ0Y7QUFFaEY7Ozs7Ozs7Ozs7R0FVRztBQUNVLFFBQUEsd0JBQXdCLEdBQUc7SUFDcEMsQ0FBQyx5QkFBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQXlCLEVBQUUsV0FBa0MsRUFBRSxjQUE2QixFQUFFLFdBQW9CO1FBQ3pJLE1BQU0sa0JBQWtCLEdBQUcsb0RBQThCLENBQUMsV0FBVyxFQUFFLGNBQWMsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUVwRyxNQUFNLGFBQWEsR0FBRyxXQUFXLENBQUMsaUJBQU8sQ0FBQyxDQUFDO1FBRTNDLGFBQWEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3JDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLFVBQVUsR0FBRyxJQUFJO2dCQUNwRSxPQUFPLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQzlELENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7UUFFSCxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMvQixRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7UUFDL0YsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsQ0FBQyx5QkFBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQXlCLEVBQUUsV0FBa0MsRUFBRSxjQUE2QixFQUFFLFdBQW9CO1FBQ3ZJLE1BQU0sYUFBYSxHQUFHLFdBQVcsQ0FBQyxpQkFBTyxDQUFDLENBQUM7UUFFM0MsYUFBYSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDckMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxHQUFHLE9BQU8sQ0FBQztZQUV4RCxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxVQUFVLEdBQUcsSUFBSTtnQkFDNUMsT0FBTyxvREFBOEIsQ0FBQyxXQUFXLEVBQUUsY0FBYyxFQUFFLFdBQVcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDNUcsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFuZHJleSBDaGFsa2luIDxMMmpMaWdhQGdtYWlsLmNvbT4gKGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhKS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYS9mYXN0aWZ5LWRlY29yYXRvcnMvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCB7IEZhc3RpZnlJbnN0YW5jZSB9IGZyb20gJ2Zhc3RpZnknO1xuaW1wb3J0IHsgQ29udHJvbGxlckNvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDb250cm9sbGVyVHlwZSB9IGZyb20gJy4uLy4uL3JlZ2lzdHJ5JztcbmltcG9ydCB7IENSRUFUT1IgfSBmcm9tICcuLi8uLi9zeW1ib2xzJztcbmltcG9ydCB7IGNyZWF0ZVdpdGhJbmplY3RlZERlcGVuZGVuY2llcyB9IGZyb20gJy4uL2hlbHBlcnMvaW5qZWN0LWRlcGVuZGVuY2llcyc7XG5cbi8qKlxuICogVmFyaW91cyBzdHJhdGVnaWVzIHdoaWNoIGNhbiBiZSBhcHBsaWVkIHRvIGNvbnRyb2xsZXJcbiAqXG4gKiBAdXNhZ2VOb3Rlc1xuICpcbiAqIFRoZXJlIGFyZSBmZXcgYXZhaWxhYmxlIHN0cmF0ZWdpZXM6XG4gKiAgIFNJTkdMRVRPTiBzdHJhdGVneSBjcmVhdGVzIG9uZSBpbnN0YW5jZSBvZiBjb250cm9sbGVyIHdoaWNoIHdpbGwgaGFuZGxlIGFsbCByZXF1ZXN0c1xuICogICBSRVFVRVNUIHN0cmF0ZWd5IHdpbGwgY3JlYXRlIG5ldyBpbnN0YW5jZSBmb3IgZWFjaCByZXF1ZXN0L2hvb2tcbiAqXG4gKiBCeSBkZWZhdWx0IGNvbnRyb2xsZXJzIHVzZSBTSU5HTEVUT04gc3RyYXRlZ3lcbiAqL1xuZXhwb3J0IGNvbnN0IENvbnRyb2xsZXJUeXBlU3RyYXRlZ2llcyA9IHtcbiAgICBbQ29udHJvbGxlclR5cGUuU0lOR0xFVE9OXShpbnN0YW5jZTogRmFzdGlmeUluc3RhbmNlLCBjb25zdHJ1Y3RvcjogQ29udHJvbGxlckNvbnN0cnVjdG9yLCBpbmplY3RhYmxlc01hcDogTWFwPGFueSwgYW55PiwgY2FjaGVSZXN1bHQ6IGJvb2xlYW4pIHtcbiAgICAgICAgY29uc3QgY29udHJvbGxlckluc3RhbmNlID0gY3JlYXRlV2l0aEluamVjdGVkRGVwZW5kZW5jaWVzKGNvbnN0cnVjdG9yLCBpbmplY3RhYmxlc01hcCwgY2FjaGVSZXN1bHQpO1xuXG4gICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBjb25zdHJ1Y3RvcltDUkVBVE9SXTtcblxuICAgICAgICBjb25maWd1cmF0aW9uLmhhbmRsZXJzLmZvckVhY2goaGFuZGxlciA9PiB7XG4gICAgICAgICAgICBpbnN0YW5jZVtoYW5kbGVyLm1ldGhvZF0oaGFuZGxlci51cmwsIGhhbmRsZXIub3B0aW9ucywgZnVuY3Rpb24gKC4uLmFyZ3MpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY29udHJvbGxlckluc3RhbmNlW2hhbmRsZXIuaGFuZGxlck1ldGhvZF0oLi4uYXJncyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uZmlndXJhdGlvbi5ob29rcy5mb3JFYWNoKGhvb2sgPT4ge1xuICAgICAgICAgICAgaW5zdGFuY2UuYWRkSG9vayhob29rLm5hbWUsIGNvbnRyb2xsZXJJbnN0YW5jZVtob29rLmhhbmRsZXJOYW1lXS5iaW5kKGNvbnRyb2xsZXJJbnN0YW5jZSkpO1xuICAgICAgICB9KTtcbiAgICB9LFxuXG4gICAgW0NvbnRyb2xsZXJUeXBlLlJFUVVFU1RdKGluc3RhbmNlOiBGYXN0aWZ5SW5zdGFuY2UsIGNvbnN0cnVjdG9yOiBDb250cm9sbGVyQ29uc3RydWN0b3IsIGluamVjdGFibGVzTWFwOiBNYXA8YW55LCBhbnk+LCBjYWNoZVJlc3VsdDogYm9vbGVhbikge1xuICAgICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gY29uc3RydWN0b3JbQ1JFQVRPUl07XG5cbiAgICAgICAgY29uZmlndXJhdGlvbi5oYW5kbGVycy5mb3JFYWNoKGhhbmRsZXIgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyB1cmwsIG1ldGhvZCwgaGFuZGxlck1ldGhvZCwgb3B0aW9ucyB9ID0gaGFuZGxlcjtcblxuICAgICAgICAgICAgaW5zdGFuY2VbbWV0aG9kXSh1cmwsIG9wdGlvbnMsIGZ1bmN0aW9uICguLi5hcmdzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVdpdGhJbmplY3RlZERlcGVuZGVuY2llcyhjb25zdHJ1Y3RvciwgaW5qZWN0YWJsZXNNYXAsIGNhY2hlUmVzdWx0KVtoYW5kbGVyTWV0aG9kXSguLi5hcmdzKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG59IGFzIGNvbnN0O1xuIl19
function registerHandlers(handlers, instance, controllerInstance) {
handlers.forEach(handler => {
instance[handler.method](handler.url, handler.options, function (...args) {
return controllerInstance[handler.handlerMethod](...args);
});
});
}
function registerHooks(hooks, instance, controllerInstance) {
hooks.forEach(hook => {
instance.addHook(hook.name, controllerInstance[hook.handlerName].bind(controllerInstance));
});
}
function registerErrorHandlers(errorHandlers, instance, controllerInstance) {
instance.setErrorHandler(async (error, request, reply) => {
let err = error;
for (const handler of errorHandlers) {
if (handler.accepts(error)) {
try {
await controllerInstance[handler.handlerName](err, request, reply);
err = null;
return;
}
catch (e) {
err = e;
}
}
}
throw err;
});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2RlY29yYXRvcnMvc3RyYXRlZ2llcy9jb250cm9sbGVyLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBSUgsNkNBQWdEO0FBQ2hELDJDQUF3QztBQUN4Qyx3RUFBZ0Y7QUFFaEY7Ozs7Ozs7Ozs7R0FVRztBQUNVLFFBQUEsd0JBQXdCLEdBQUc7SUFDcEMsQ0FBQyx5QkFBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQTZDLEVBQUUsV0FBa0MsRUFBRSxjQUE2QixFQUFFLFdBQW9CO1FBQzdKLE1BQU0sa0JBQWtCLEdBQUcsb0RBQThCLENBQUMsV0FBVyxFQUFFLGNBQWMsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNwRyxNQUFNLGFBQWEsR0FBOEMsV0FBVyxDQUFDLGlCQUFPLENBQUMsQ0FBQztRQUV0RixnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3ZFLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDakYsYUFBYSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELENBQUMseUJBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUE2QyxFQUFFLFdBQWtDLEVBQUUsY0FBNkIsRUFBRSxXQUFvQjtRQUMzSixNQUFNLGFBQWEsR0FBRyxXQUFXLENBQUMsaUJBQU8sQ0FBQyxDQUFDO1FBRTNDLGFBQWEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3JDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsR0FBRyxPQUFPLENBQUM7WUFFeEQsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsVUFBVSxHQUFHLElBQUk7Z0JBQzVDLE9BQU8sb0RBQThCLENBQUMsV0FBVyxFQUFFLGNBQWMsRUFBRSxXQUFXLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQzVHLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0ssQ0FBQztBQUVYLFNBQVMsZ0JBQWdCLENBQUMsUUFBbUIsRUFBRSxRQUF5QixFQUFFLGtCQUF1QjtJQUM3RixRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ3ZCLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLFVBQVUsR0FBRyxJQUFJO1lBQ3BFLE9BQU8sa0JBQWtCLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDOUQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxLQUFhLEVBQUUsUUFBeUIsRUFBRSxrQkFBdUI7SUFDcEYsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNqQixRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7SUFDL0YsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQsU0FBUyxxQkFBcUIsQ0FBQyxhQUE2QixFQUFFLFFBQXlCLEVBQUUsa0JBQXVCO0lBQzVHLFFBQVEsQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDckQsSUFBSSxHQUFHLEdBQWlCLEtBQUssQ0FBQztRQUM5QixLQUFLLE1BQU0sT0FBTyxJQUFJLGFBQWEsRUFBRTtZQUNqQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3hCLElBQUk7b0JBQ0EsTUFBTSxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFDbkUsR0FBRyxHQUFHLElBQUksQ0FBQztvQkFDWCxPQUFPO2lCQUNWO2dCQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUNSLEdBQUcsR0FBRyxDQUFDLENBQUM7aUJBQ1g7YUFDSjtTQUNKO1FBRUQsTUFBTSxHQUFHLENBQUM7SUFDZCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQW5kcmV5IENoYWxraW4gPEwyakxpZ2FAZ21haWwuY29tPiAoaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EpLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhL2Zhc3RpZnktZGVjb3JhdG9ycy9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHsgRmFzdGlmeUluc3RhbmNlIH0gZnJvbSAnZmFzdGlmeSc7XG5pbXBvcnQgeyBDb250cm9sbGVyQ29uc3RydWN0b3IsIENvbnRyb2xsZXJIYW5kbGVyc0FuZEhvb2tzLCBFcnJvckhhbmRsZXIsIEhhbmRsZXIsIEhvb2sgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IENvbnRyb2xsZXJUeXBlIH0gZnJvbSAnLi4vLi4vcmVnaXN0cnknO1xuaW1wb3J0IHsgQ1JFQVRPUiB9IGZyb20gJy4uLy4uL3N5bWJvbHMnO1xuaW1wb3J0IHsgY3JlYXRlV2l0aEluamVjdGVkRGVwZW5kZW5jaWVzIH0gZnJvbSAnLi4vaGVscGVycy9pbmplY3QtZGVwZW5kZW5jaWVzJztcblxuLyoqXG4gKiBWYXJpb3VzIHN0cmF0ZWdpZXMgd2hpY2ggY2FuIGJlIGFwcGxpZWQgdG8gY29udHJvbGxlclxuICpcbiAqIEB1c2FnZU5vdGVzXG4gKlxuICogVGhlcmUgYXJlIGZldyBhdmFpbGFibGUgc3RyYXRlZ2llczpcbiAqICAgU0lOR0xFVE9OIHN0cmF0ZWd5IGNyZWF0ZXMgb25lIGluc3RhbmNlIG9mIGNvbnRyb2xsZXIgd2hpY2ggd2lsbCBoYW5kbGUgYWxsIHJlcXVlc3RzXG4gKiAgIFJFUVVFU1Qgc3RyYXRlZ3kgd2lsbCBjcmVhdGUgbmV3IGluc3RhbmNlIGZvciBlYWNoIHJlcXVlc3QvaG9va1xuICpcbiAqIEJ5IGRlZmF1bHQgY29udHJvbGxlcnMgdXNlIFNJTkdMRVRPTiBzdHJhdGVneVxuICovXG5leHBvcnQgY29uc3QgQ29udHJvbGxlclR5cGVTdHJhdGVnaWVzID0ge1xuICAgIFtDb250cm9sbGVyVHlwZS5TSU5HTEVUT05dKGluc3RhbmNlOiBGYXN0aWZ5SW5zdGFuY2U8YW55LCBhbnksIGFueSwgYW55PiwgY29uc3RydWN0b3I6IENvbnRyb2xsZXJDb25zdHJ1Y3RvciwgaW5qZWN0YWJsZXNNYXA6IE1hcDxhbnksIGFueT4sIGNhY2hlUmVzdWx0OiBib29sZWFuKSB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2xsZXJJbnN0YW5jZSA9IGNyZWF0ZVdpdGhJbmplY3RlZERlcGVuZGVuY2llcyhjb25zdHJ1Y3RvciwgaW5qZWN0YWJsZXNNYXAsIGNhY2hlUmVzdWx0KTtcbiAgICAgICAgY29uc3QgY29uZmlndXJhdGlvbjogQ29udHJvbGxlckhhbmRsZXJzQW5kSG9va3M8YW55LCBhbnksIGFueT4gPSBjb25zdHJ1Y3RvcltDUkVBVE9SXTtcblxuICAgICAgICByZWdpc3RlckhhbmRsZXJzKGNvbmZpZ3VyYXRpb24uaGFuZGxlcnMsIGluc3RhbmNlLCBjb250cm9sbGVySW5zdGFuY2UpO1xuICAgICAgICByZWdpc3RlckVycm9ySGFuZGxlcnMoY29uZmlndXJhdGlvbi5lcnJvckhhbmRsZXJzLCBpbnN0YW5jZSwgY29udHJvbGxlckluc3RhbmNlKTtcbiAgICAgICAgcmVnaXN0ZXJIb29rcyhjb25maWd1cmF0aW9uLmhvb2tzLCBpbnN0YW5jZSwgY29udHJvbGxlckluc3RhbmNlKTtcbiAgICB9LFxuXG4gICAgW0NvbnRyb2xsZXJUeXBlLlJFUVVFU1RdKGluc3RhbmNlOiBGYXN0aWZ5SW5zdGFuY2U8YW55LCBhbnksIGFueSwgYW55PiwgY29uc3RydWN0b3I6IENvbnRyb2xsZXJDb25zdHJ1Y3RvciwgaW5qZWN0YWJsZXNNYXA6IE1hcDxhbnksIGFueT4sIGNhY2hlUmVzdWx0OiBib29sZWFuKSB7XG4gICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBjb25zdHJ1Y3RvcltDUkVBVE9SXTtcblxuICAgICAgICBjb25maWd1cmF0aW9uLmhhbmRsZXJzLmZvckVhY2goaGFuZGxlciA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IHVybCwgbWV0aG9kLCBoYW5kbGVyTWV0aG9kLCBvcHRpb25zIH0gPSBoYW5kbGVyO1xuXG4gICAgICAgICAgICBpbnN0YW5jZVttZXRob2RdKHVybCwgb3B0aW9ucywgZnVuY3Rpb24gKC4uLmFyZ3MpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlV2l0aEluamVjdGVkRGVwZW5kZW5jaWVzKGNvbnN0cnVjdG9yLCBpbmplY3RhYmxlc01hcCwgY2FjaGVSZXN1bHQpW2hhbmRsZXJNZXRob2RdKC4uLmFyZ3MpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH0sXG59IGFzIGNvbnN0O1xuXG5mdW5jdGlvbiByZWdpc3RlckhhbmRsZXJzKGhhbmRsZXJzOiBIYW5kbGVyW10sIGluc3RhbmNlOiBGYXN0aWZ5SW5zdGFuY2UsIGNvbnRyb2xsZXJJbnN0YW5jZTogYW55KTogdm9pZCB7XG4gICAgaGFuZGxlcnMuZm9yRWFjaChoYW5kbGVyID0+IHtcbiAgICAgICAgaW5zdGFuY2VbaGFuZGxlci5tZXRob2RdKGhhbmRsZXIudXJsLCBoYW5kbGVyLm9wdGlvbnMsIGZ1bmN0aW9uICguLi5hcmdzKSB7XG4gICAgICAgICAgICByZXR1cm4gY29udHJvbGxlckluc3RhbmNlW2hhbmRsZXIuaGFuZGxlck1ldGhvZF0oLi4uYXJncyk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xufVxuXG5mdW5jdGlvbiByZWdpc3Rlckhvb2tzKGhvb2tzOiBIb29rW10sIGluc3RhbmNlOiBGYXN0aWZ5SW5zdGFuY2UsIGNvbnRyb2xsZXJJbnN0YW5jZTogYW55KTogdm9pZCB7XG4gICAgaG9va3MuZm9yRWFjaChob29rID0+IHtcbiAgICAgICAgaW5zdGFuY2UuYWRkSG9vayhob29rLm5hbWUsIGNvbnRyb2xsZXJJbnN0YW5jZVtob29rLmhhbmRsZXJOYW1lXS5iaW5kKGNvbnRyb2xsZXJJbnN0YW5jZSkpO1xuICAgIH0pO1xufVxuXG5mdW5jdGlvbiByZWdpc3RlckVycm9ySGFuZGxlcnMoZXJyb3JIYW5kbGVyczogRXJyb3JIYW5kbGVyW10sIGluc3RhbmNlOiBGYXN0aWZ5SW5zdGFuY2UsIGNvbnRyb2xsZXJJbnN0YW5jZTogYW55KSB7XG4gICAgaW5zdGFuY2Uuc2V0RXJyb3JIYW5kbGVyKGFzeW5jIChlcnJvciwgcmVxdWVzdCwgcmVwbHkpID0+IHtcbiAgICAgICAgbGV0IGVycjogRXJyb3IgfCBudWxsID0gZXJyb3I7XG4gICAgICAgIGZvciAoY29uc3QgaGFuZGxlciBvZiBlcnJvckhhbmRsZXJzKSB7XG4gICAgICAgICAgICBpZiAoaGFuZGxlci5hY2NlcHRzKGVycm9yKSkge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IGNvbnRyb2xsZXJJbnN0YW5jZVtoYW5kbGVyLmhhbmRsZXJOYW1lXShlcnIsIHJlcXVlc3QsIHJlcGx5KTtcbiAgICAgICAgICAgICAgICAgICAgZXJyID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgZXJyID0gZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBlcnI7XG4gICAgfSk7XG59XG4iXX0=

@@ -243,4 +243,39 @@ <h1 style="text-align: center">Fastify decorators</h1>

### Error handling
`fastify-decorators` also provides abilities to handle error with `@ErrorHandler` decorator.
`@ErrorHandler` may accept error code or type to handle or be empty which means will handle all errors. Let's take a look on example:
```typescript
import fs from 'fs';
import path from 'path';
import { Controller, GET, ErrorHandler } from 'fastify-decorators';
class TokenNotFoundError extends Error {
}
@Controller('/')
export default class SimpleController {
@GET('/')
async get(request, reply) {
// may throw FS_READ_ERROR
const content = fs.readFileSync(path.join(__dirname, request.query.fileName));
if (!content.includes('token')) {
throw new TokenNotFoundError('Token not found in file requested')
}
return { message: 'ok' }
}
@ErrorHandler(TokenNotFoundError)
handleTokenNotFound(error: TokenNotFoundError, request, reply) {
reply.status(403).send({ message: 'You have no access' });
}
}
```
[Fastify Hooks]: https://github.com/fastify/fastify/blob/master/docs/Hooks.md
[`RouteConfig`]: https://github.com/fastify/fastify/blob/master/docs/Routes.md
[Dependency Injection]: ./Dependency-Injection.md

@@ -17,2 +17,3 @@ /**

export { Hook } from './decorators';
export { ErrorHandler } from './decorators';
export { getInstanceByToken } from './utils';

@@ -19,0 +20,0 @@ export { FastifyInstanceToken } from './symbols';

@@ -24,2 +24,4 @@ "use strict";

Object.defineProperty(exports, "Hook", { enumerable: true, get: function () { return decorators_4.Hook; } });
var decorators_5 = require("./decorators");
Object.defineProperty(exports, "ErrorHandler", { enumerable: true, get: function () { return decorators_5.ErrorHandler; } });
var utils_1 = require("./utils");

@@ -29,18 +31,18 @@ Object.defineProperty(exports, "getInstanceByToken", { enumerable: true, get: function () { return utils_1.getInstanceByToken; } });

Object.defineProperty(exports, "FastifyInstanceToken", { enumerable: true, get: function () { return symbols_1.FastifyInstanceToken; } });
var decorators_5 = require("./decorators");
Object.defineProperty(exports, "ALL", { enumerable: true, get: function () { return decorators_5.ALL; } });
var decorators_6 = require("./decorators");
Object.defineProperty(exports, "DELETE", { enumerable: true, get: function () { return decorators_6.DELETE; } });
Object.defineProperty(exports, "ALL", { enumerable: true, get: function () { return decorators_6.ALL; } });
var decorators_7 = require("./decorators");
Object.defineProperty(exports, "GET", { enumerable: true, get: function () { return decorators_7.GET; } });
Object.defineProperty(exports, "DELETE", { enumerable: true, get: function () { return decorators_7.DELETE; } });
var decorators_8 = require("./decorators");
Object.defineProperty(exports, "HEAD", { enumerable: true, get: function () { return decorators_8.HEAD; } });
Object.defineProperty(exports, "GET", { enumerable: true, get: function () { return decorators_8.GET; } });
var decorators_9 = require("./decorators");
Object.defineProperty(exports, "OPTIONS", { enumerable: true, get: function () { return decorators_9.OPTIONS; } });
Object.defineProperty(exports, "HEAD", { enumerable: true, get: function () { return decorators_9.HEAD; } });
var decorators_10 = require("./decorators");
Object.defineProperty(exports, "PATCH", { enumerable: true, get: function () { return decorators_10.PATCH; } });
Object.defineProperty(exports, "OPTIONS", { enumerable: true, get: function () { return decorators_10.OPTIONS; } });
var decorators_11 = require("./decorators");
Object.defineProperty(exports, "POST", { enumerable: true, get: function () { return decorators_11.POST; } });
Object.defineProperty(exports, "PATCH", { enumerable: true, get: function () { return decorators_11.PATCH; } });
var decorators_12 = require("./decorators");
Object.defineProperty(exports, "PUT", { enumerable: true, get: function () { return decorators_12.PUT; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7QUFFSCxtREFBa0Q7QUFBekMsc0dBQUEsU0FBUyxPQUFBO0FBRWxCLDJDQUE4QztBQUFyQyw0R0FBQSxjQUFjLE9BQUE7QUFFdkIsMkNBQTBDO0FBQWpDLHdHQUFBLFVBQVUsT0FBQTtBQUNuQix1Q0FBNEM7QUFBbkMsMEdBQUEsY0FBYyxPQUFBO0FBR3ZCLDJDQUF1QztBQUE5QixxR0FBQSxPQUFPLE9BQUE7QUFDaEIsMkNBQXNDO0FBQTdCLG9HQUFBLE1BQU0sT0FBQTtBQUNmLDJDQUFvQztBQUEzQixrR0FBQSxJQUFJLE9BQUE7QUFFYixpQ0FBNkM7QUFBcEMsMkdBQUEsa0JBQWtCLE9BQUE7QUFDM0IscUNBQWlEO0FBQXhDLCtHQUFBLG9CQUFvQixPQUFBO0FBRTdCLDJDQUFtQztBQUExQixpR0FBQSxHQUFHLE9BQUE7QUFDWiwyQ0FBc0M7QUFBN0Isb0dBQUEsTUFBTSxPQUFBO0FBQ2YsMkNBQW1DO0FBQTFCLGlHQUFBLEdBQUcsT0FBQTtBQUNaLDJDQUFvQztBQUEzQixrR0FBQSxJQUFJLE9BQUE7QUFDYiwyQ0FBdUM7QUFBOUIscUdBQUEsT0FBTyxPQUFBO0FBQ2hCLDRDQUFxQztBQUE1QixvR0FBQSxLQUFLLE9BQUE7QUFDZCw0Q0FBb0M7QUFBM0IsbUdBQUEsSUFBSSxPQUFBO0FBQ2IsNENBQW1DO0FBQTFCLGtHQUFBLEdBQUcsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbmRyZXkgQ2hhbGtpbiA8TDJqTGlnYUBnbWFpbC5jb20+IChodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYSkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EvZmFzdGlmeS1kZWNvcmF0b3JzL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5leHBvcnQgeyBib290c3RyYXAgfSBmcm9tICcuL2Jvb3RzdHJhcC9ib290c3RyYXAnO1xuZXhwb3J0IHsgQm9vdHN0cmFwQ29uZmlnIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbmV4cG9ydCB7IFJlcXVlc3RIYW5kbGVyIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcblxuZXhwb3J0IHsgQ29udHJvbGxlciB9IGZyb20gJy4vZGVjb3JhdG9ycyc7XG5leHBvcnQgeyBDb250cm9sbGVyVHlwZSB9IGZyb20gJy4vcmVnaXN0cnknO1xuZXhwb3J0IHsgQ29udHJvbGxlckNvbmZpZyB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCB7IFNlcnZpY2UgfSBmcm9tICcuL2RlY29yYXRvcnMnO1xuZXhwb3J0IHsgSW5qZWN0IH0gZnJvbSAnLi9kZWNvcmF0b3JzJztcbmV4cG9ydCB7IEhvb2sgfSBmcm9tICcuL2RlY29yYXRvcnMnO1xuXG5leHBvcnQgeyBnZXRJbnN0YW5jZUJ5VG9rZW4gfSBmcm9tICcuL3V0aWxzJztcbmV4cG9ydCB7IEZhc3RpZnlJbnN0YW5jZVRva2VuIH0gZnJvbSAnLi9zeW1ib2xzJztcblxuZXhwb3J0IHsgQUxMIH0gZnJvbSAnLi9kZWNvcmF0b3JzJztcbmV4cG9ydCB7IERFTEVURSB9IGZyb20gJy4vZGVjb3JhdG9ycyc7XG5leHBvcnQgeyBHRVQgfSBmcm9tICcuL2RlY29yYXRvcnMnO1xuZXhwb3J0IHsgSEVBRCB9IGZyb20gJy4vZGVjb3JhdG9ycyc7XG5leHBvcnQgeyBPUFRJT05TIH0gZnJvbSAnLi9kZWNvcmF0b3JzJztcbmV4cG9ydCB7IFBBVENIIH0gZnJvbSAnLi9kZWNvcmF0b3JzJztcbmV4cG9ydCB7IFBPU1QgfSBmcm9tICcuL2RlY29yYXRvcnMnO1xuZXhwb3J0IHsgUFVUIH0gZnJvbSAnLi9kZWNvcmF0b3JzJztcbmV4cG9ydCB7IFJvdXRlQ29uZmlnIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbiJdfQ==
Object.defineProperty(exports, "POST", { enumerable: true, get: function () { return decorators_12.POST; } });
var decorators_13 = require("./decorators");
Object.defineProperty(exports, "PUT", { enumerable: true, get: function () { return decorators_13.PUT; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7QUFFSCxtREFBa0Q7QUFBekMsc0dBQUEsU0FBUyxPQUFBO0FBRWxCLDJDQUE4QztBQUFyQyw0R0FBQSxjQUFjLE9BQUE7QUFFdkIsMkNBQTBDO0FBQWpDLHdHQUFBLFVBQVUsT0FBQTtBQUNuQix1Q0FBNEM7QUFBbkMsMEdBQUEsY0FBYyxPQUFBO0FBR3ZCLDJDQUF1QztBQUE5QixxR0FBQSxPQUFPLE9BQUE7QUFDaEIsMkNBQXNDO0FBQTdCLG9HQUFBLE1BQU0sT0FBQTtBQUNmLDJDQUFvQztBQUEzQixrR0FBQSxJQUFJLE9BQUE7QUFDYiwyQ0FBNEM7QUFBbkMsMEdBQUEsWUFBWSxPQUFBO0FBRXJCLGlDQUE2QztBQUFwQywyR0FBQSxrQkFBa0IsT0FBQTtBQUMzQixxQ0FBaUQ7QUFBeEMsK0dBQUEsb0JBQW9CLE9BQUE7QUFFN0IsMkNBQW1DO0FBQTFCLGlHQUFBLEdBQUcsT0FBQTtBQUNaLDJDQUFzQztBQUE3QixvR0FBQSxNQUFNLE9BQUE7QUFDZiwyQ0FBbUM7QUFBMUIsaUdBQUEsR0FBRyxPQUFBO0FBQ1osMkNBQW9DO0FBQTNCLGtHQUFBLElBQUksT0FBQTtBQUNiLDRDQUF1QztBQUE5QixzR0FBQSxPQUFPLE9BQUE7QUFDaEIsNENBQXFDO0FBQTVCLG9HQUFBLEtBQUssT0FBQTtBQUNkLDRDQUFvQztBQUEzQixtR0FBQSxJQUFJLE9BQUE7QUFDYiw0Q0FBbUM7QUFBMUIsa0dBQUEsR0FBRyxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFuZHJleSBDaGFsa2luIDxMMmpMaWdhQGdtYWlsLmNvbT4gKGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhKS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYS9mYXN0aWZ5LWRlY29yYXRvcnMvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmV4cG9ydCB7IGJvb3RzdHJhcCB9IGZyb20gJy4vYm9vdHN0cmFwL2Jvb3RzdHJhcCc7XG5leHBvcnQgeyBCb290c3RyYXBDb25maWcgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuZXhwb3J0IHsgUmVxdWVzdEhhbmRsZXIgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgeyBDb250cm9sbGVyIH0gZnJvbSAnLi9kZWNvcmF0b3JzJztcbmV4cG9ydCB7IENvbnRyb2xsZXJUeXBlIH0gZnJvbSAnLi9yZWdpc3RyeSc7XG5leHBvcnQgeyBDb250cm9sbGVyQ29uZmlnIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcblxuZXhwb3J0IHsgU2VydmljZSB9IGZyb20gJy4vZGVjb3JhdG9ycyc7XG5leHBvcnQgeyBJbmplY3QgfSBmcm9tICcuL2RlY29yYXRvcnMnO1xuZXhwb3J0IHsgSG9vayB9IGZyb20gJy4vZGVjb3JhdG9ycyc7XG5leHBvcnQgeyBFcnJvckhhbmRsZXIgfSBmcm9tICcuL2RlY29yYXRvcnMnO1xuXG5leHBvcnQgeyBnZXRJbnN0YW5jZUJ5VG9rZW4gfSBmcm9tICcuL3V0aWxzJztcbmV4cG9ydCB7IEZhc3RpZnlJbnN0YW5jZVRva2VuIH0gZnJvbSAnLi9zeW1ib2xzJztcblxuZXhwb3J0IHsgQUxMIH0gZnJvbSAnLi9kZWNvcmF0b3JzJztcbmV4cG9ydCB7IERFTEVURSB9IGZyb20gJy4vZGVjb3JhdG9ycyc7XG5leHBvcnQgeyBHRVQgfSBmcm9tICcuL2RlY29yYXRvcnMnO1xuZXhwb3J0IHsgSEVBRCB9IGZyb20gJy4vZGVjb3JhdG9ycyc7XG5leHBvcnQgeyBPUFRJT05TIH0gZnJvbSAnLi9kZWNvcmF0b3JzJztcbmV4cG9ydCB7IFBBVENIIH0gZnJvbSAnLi9kZWNvcmF0b3JzJztcbmV4cG9ydCB7IFBPU1QgfSBmcm9tICcuL2RlY29yYXRvcnMnO1xuZXhwb3J0IHsgUFVUIH0gZnJvbSAnLi9kZWNvcmF0b3JzJztcbmV4cG9ydCB7IFJvdXRlQ29uZmlnIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbiJdfQ==

@@ -8,9 +8,7 @@ /**

*/
/// <reference types="node" />
import { RegisterOptions } from 'fastify';
import { IncomingMessage, Server, ServerResponse } from 'http';
import { FastifyPluginOptions } from 'fastify';
/**
* Config for application bootstrap
*/
export interface AutoLoadConfig<HttpServer = Server, HttpRequest = IncomingMessage, HttpResponse = ServerResponse> extends RegisterOptions<HttpServer, HttpRequest, HttpResponse> {
export interface AutoLoadConfig extends FastifyPluginOptions {
/**

@@ -32,3 +30,3 @@ * Path to directory which contains files to load

}
export interface ControllersListConfig<HttpServer = Server, HttpRequest = IncomingMessage, HttpResponse = ServerResponse> extends RegisterOptions<HttpServer, HttpRequest, HttpResponse> {
export interface ControllersListConfig extends FastifyPluginOptions {
/**

@@ -38,3 +36,9 @@ * List of Controller classes to bootstrap

controllers: any[];
/**
* By default application will fails to bootstrap if one or more of loaded files does not contain valid controller or handler
* This option allows to change this behavior
* @default false
*/
skipBroken?: boolean;
}
export declare type BootstrapConfig = AutoLoadConfig | ControllersListConfig;

@@ -10,2 +10,2 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9pbnRlcmZhY2VzL2Jvb3RzdHJhcC1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbmRyZXkgQ2hhbGtpbiA8TDJqTGlnYUBnbWFpbC5jb20+IChodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYSkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EvZmFzdGlmeS1kZWNvcmF0b3JzL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgeyBSZWdpc3Rlck9wdGlvbnMgfSBmcm9tICdmYXN0aWZ5JztcbmltcG9ydCB7IEluY29taW5nTWVzc2FnZSwgU2VydmVyLCBTZXJ2ZXJSZXNwb25zZSB9IGZyb20gJ2h0dHAnO1xuXG4vKipcbiAqIENvbmZpZyBmb3IgYXBwbGljYXRpb24gYm9vdHN0cmFwXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b0xvYWRDb25maWc8SHR0cFNlcnZlciA9IFNlcnZlciwgSHR0cFJlcXVlc3QgPSBJbmNvbWluZ01lc3NhZ2UsIEh0dHBSZXNwb25zZSA9IFNlcnZlclJlc3BvbnNlPiBleHRlbmRzIFJlZ2lzdGVyT3B0aW9uczxIdHRwU2VydmVyLCBIdHRwUmVxdWVzdCwgSHR0cFJlc3BvbnNlPiB7XG4gICAgLyoqXG4gICAgICogUGF0aCB0byBkaXJlY3Rvcnkgd2hpY2ggY29udGFpbnMgZmlsZXMgdG8gbG9hZFxuICAgICAqL1xuICAgIGRpcmVjdG9yeTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogTWFzayB1c2VkIHRvIGZpbHRlciBmaWxlcyB0byBsb2FkXG4gICAgICogQGRlZmF1bHQgL1xcLihoYW5kbGVyfGNvbnRyb2xsZXIpXFwuL1xuICAgICAqL1xuICAgIG1hc2s/OiBzdHJpbmcgfCBSZWdFeHA7XG5cbiAgICAvKipcbiAgICAgKiBCeSBkZWZhdWx0IGFwcGxpY2F0aW9uIHdpbGwgZmFpbHMgdG8gYm9vdHN0cmFwIGlmIG9uZSBvciBtb3JlIG9mIGxvYWRlZCBmaWxlcyBkb2VzIG5vdCBjb250YWluIHZhbGlkIGNvbnRyb2xsZXIgb3IgaGFuZGxlclxuICAgICAqIFRoaXMgb3B0aW9uIGFsbG93cyB0byBjaGFuZ2UgdGhpcyBiZWhhdmlvclxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgc2tpcEJyb2tlbj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udHJvbGxlcnNMaXN0Q29uZmlnPEh0dHBTZXJ2ZXIgPSBTZXJ2ZXIsIEh0dHBSZXF1ZXN0ID0gSW5jb21pbmdNZXNzYWdlLCBIdHRwUmVzcG9uc2UgPSBTZXJ2ZXJSZXNwb25zZT4gZXh0ZW5kcyBSZWdpc3Rlck9wdGlvbnM8SHR0cFNlcnZlciwgSHR0cFJlcXVlc3QsIEh0dHBSZXNwb25zZT4ge1xuICAgIC8qKlxuICAgICAqIExpc3Qgb2YgQ29udHJvbGxlciBjbGFzc2VzIHRvIGJvb3RzdHJhcFxuICAgICAqL1xuICAgIGNvbnRyb2xsZXJzOiBhbnlbXTtcbn1cblxuZXhwb3J0IHR5cGUgQm9vdHN0cmFwQ29uZmlnID0gQXV0b0xvYWRDb25maWcgfCBDb250cm9sbGVyc0xpc3RDb25maWc7XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9pbnRlcmZhY2VzL2Jvb3RzdHJhcC1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbmRyZXkgQ2hhbGtpbiA8TDJqTGlnYUBnbWFpbC5jb20+IChodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYSkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EvZmFzdGlmeS1kZWNvcmF0b3JzL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgeyBGYXN0aWZ5UGx1Z2luT3B0aW9ucyB9IGZyb20gJ2Zhc3RpZnknO1xuXG4vKipcbiAqIENvbmZpZyBmb3IgYXBwbGljYXRpb24gYm9vdHN0cmFwXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b0xvYWRDb25maWcgZXh0ZW5kcyBGYXN0aWZ5UGx1Z2luT3B0aW9ucyB7XG4gICAgLyoqXG4gICAgICogUGF0aCB0byBkaXJlY3Rvcnkgd2hpY2ggY29udGFpbnMgZmlsZXMgdG8gbG9hZFxuICAgICAqL1xuICAgIGRpcmVjdG9yeTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogTWFzayB1c2VkIHRvIGZpbHRlciBmaWxlcyB0byBsb2FkXG4gICAgICogQGRlZmF1bHQgL1xcLihoYW5kbGVyfGNvbnRyb2xsZXIpXFwuL1xuICAgICAqL1xuICAgIG1hc2s/OiBzdHJpbmcgfCBSZWdFeHA7XG5cbiAgICAvKipcbiAgICAgKiBCeSBkZWZhdWx0IGFwcGxpY2F0aW9uIHdpbGwgZmFpbHMgdG8gYm9vdHN0cmFwIGlmIG9uZSBvciBtb3JlIG9mIGxvYWRlZCBmaWxlcyBkb2VzIG5vdCBjb250YWluIHZhbGlkIGNvbnRyb2xsZXIgb3IgaGFuZGxlclxuICAgICAqIFRoaXMgb3B0aW9uIGFsbG93cyB0byBjaGFuZ2UgdGhpcyBiZWhhdmlvclxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgc2tpcEJyb2tlbj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udHJvbGxlcnNMaXN0Q29uZmlnIGV4dGVuZHMgRmFzdGlmeVBsdWdpbk9wdGlvbnMge1xuICAgIC8qKlxuICAgICAqIExpc3Qgb2YgQ29udHJvbGxlciBjbGFzc2VzIHRvIGJvb3RzdHJhcFxuICAgICAqL1xuICAgIGNvbnRyb2xsZXJzOiBhbnlbXTtcblxuICAgIC8qKlxuICAgICAqIEJ5IGRlZmF1bHQgYXBwbGljYXRpb24gd2lsbCBmYWlscyB0byBib290c3RyYXAgaWYgb25lIG9yIG1vcmUgb2YgbG9hZGVkIGZpbGVzIGRvZXMgbm90IGNvbnRhaW4gdmFsaWQgY29udHJvbGxlciBvciBoYW5kbGVyXG4gICAgICogVGhpcyBvcHRpb24gYWxsb3dzIHRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBza2lwQnJva2VuPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgQm9vdHN0cmFwQ29uZmlnID0gQXV0b0xvYWRDb25maWcgfCBDb250cm9sbGVyc0xpc3RDb25maWc7XG4iXX0=

@@ -8,18 +8,19 @@ /**

*/
/// <reference types="node" />
import { FastifyInstance, RouteShorthandOptions } from 'fastify';
import { IncomingMessage, Server, ServerResponse } from 'http';
import { FastifyLoggerInstance } from 'fastify/types/logger';
import { RawReplyDefaultExpression, RawRequestDefaultExpression, RawServerBase, RawServerDefault } from 'fastify/types/utils';
import { HttpMethods } from '../decorators/helpers/http-methods';
import { CREATOR } from '../symbols';
export interface ControllerConstructor<HttpServer = Server, Request = IncomingMessage, Response = ServerResponse> {
export interface ControllerConstructor<RawServer extends RawServerBase = RawServerDefault, RawRequest extends RawRequestDefaultExpression<RawServer> = RawRequestDefaultExpression<RawServer>, RawReply extends RawReplyDefaultExpression<RawServer> = RawReplyDefaultExpression<RawServer>, Logger = FastifyLoggerInstance> {
new (): any;
new (...args: any[]): any;
[CREATOR]: ControllerHandlersAndHooks<HttpServer, Request, Response>;
[CREATOR]: ControllerHandlersAndHooks<RawServer, RawRequest, RawReply>;
}
export interface ControllerHandlersAndHooks<HttpServer, Request, Response> {
handlers: Handler<Request, Response>[];
export interface ControllerHandlersAndHooks<RawServer extends RawServerBase, RawRequest extends RawRequestDefaultExpression<RawServer>, RawReply extends RawReplyDefaultExpression<RawServer>> {
handlers: Handler<RawServer, RawRequest, RawReply>[];
hooks: Hook[];
register?: (instance: FastifyInstance<HttpServer, Request, Response>) => void;
errorHandlers: ErrorHandler[];
register?: (instance: FastifyInstance<RawServer, RawRequest, RawReply>) => void;
}
export interface Handler<Request, Response> {
export interface Handler<RawServer extends RawServerBase = RawServerDefault, RawRequest extends RawRequestDefaultExpression<RawServer> = RawRequestDefaultExpression<RawServer>, RawReply extends RawReplyDefaultExpression<RawServer> = RawReplyDefaultExpression<RawServer>> {
url: string;

@@ -30,2 +31,6 @@ method: HttpMethods;

}
export interface ErrorHandler {
accepts<T extends Error>(error?: T): boolean;
handlerName: string | symbol;
}
export interface Hook {

@@ -32,0 +37,0 @@ name: any;

@@ -11,2 +11,2 @@ "use strict";

const symbols_1 = require("../symbols");
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9pbnRlcmZhY2VzL2NvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7QUFLSCx3Q0FBcUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQW5kcmV5IENoYWxraW4gPEwyakxpZ2FAZ21haWwuY29tPiAoaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EpLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhL2Zhc3RpZnktZGVjb3JhdG9ycy9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHsgRmFzdGlmeUluc3RhbmNlLCBSb3V0ZVNob3J0aGFuZE9wdGlvbnMgfSBmcm9tICdmYXN0aWZ5JztcbmltcG9ydCB7IEluY29taW5nTWVzc2FnZSwgU2VydmVyLCBTZXJ2ZXJSZXNwb25zZSB9IGZyb20gJ2h0dHAnO1xuaW1wb3J0IHsgSHR0cE1ldGhvZHMgfSBmcm9tICcuLi9kZWNvcmF0b3JzL2hlbHBlcnMvaHR0cC1tZXRob2RzJztcbmltcG9ydCB7IENSRUFUT1IgfSBmcm9tICcuLi9zeW1ib2xzJztcblxuZXhwb3J0IGludGVyZmFjZSBDb250cm9sbGVyQ29uc3RydWN0b3I8SHR0cFNlcnZlciA9IFNlcnZlciwgUmVxdWVzdCA9IEluY29taW5nTWVzc2FnZSwgUmVzcG9uc2UgPSBTZXJ2ZXJSZXNwb25zZT4ge1xuICAgIG5ldygpOiBhbnk7XG4gICAgbmV3KC4uLmFyZ3M6IGFueVtdKTogYW55O1xuXG4gICAgW0NSRUFUT1JdOiBDb250cm9sbGVySGFuZGxlcnNBbmRIb29rczxIdHRwU2VydmVyLCBSZXF1ZXN0LCBSZXNwb25zZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udHJvbGxlckhhbmRsZXJzQW5kSG9va3M8SHR0cFNlcnZlciwgUmVxdWVzdCwgUmVzcG9uc2U+IHtcbiAgICBoYW5kbGVyczogSGFuZGxlcjxSZXF1ZXN0LCBSZXNwb25zZT5bXTtcbiAgICBob29rczogSG9va1tdO1xuICAgIHJlZ2lzdGVyPzogKGluc3RhbmNlOiBGYXN0aWZ5SW5zdGFuY2U8SHR0cFNlcnZlciwgUmVxdWVzdCwgUmVzcG9uc2U+KSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhhbmRsZXI8UmVxdWVzdCwgUmVzcG9uc2U+IHtcbiAgICB1cmw6IHN0cmluZztcbiAgICBtZXRob2Q6IEh0dHBNZXRob2RzO1xuICAgIG9wdGlvbnM6IFJvdXRlU2hvcnRoYW5kT3B0aW9ucztcbiAgICBoYW5kbGVyTWV0aG9kOiBzdHJpbmcgfCBzeW1ib2w7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSG9vayB7XG4gICAgbmFtZTogYW55O1xuICAgIGhhbmRsZXJOYW1lOiBzdHJpbmcgfCBzeW1ib2w7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9pbnRlcmZhY2VzL2NvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7QUFNSCx3Q0FBcUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQW5kcmV5IENoYWxraW4gPEwyakxpZ2FAZ21haWwuY29tPiAoaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EpLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhL2Zhc3RpZnktZGVjb3JhdG9ycy9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHsgRmFzdGlmeUluc3RhbmNlLCBSb3V0ZVNob3J0aGFuZE9wdGlvbnMgfSBmcm9tICdmYXN0aWZ5JztcbmltcG9ydCB7IEZhc3RpZnlMb2dnZXJJbnN0YW5jZSB9IGZyb20gJ2Zhc3RpZnkvdHlwZXMvbG9nZ2VyJztcbmltcG9ydCB7IFJhd1JlcGx5RGVmYXVsdEV4cHJlc3Npb24sIFJhd1JlcXVlc3REZWZhdWx0RXhwcmVzc2lvbiwgUmF3U2VydmVyQmFzZSwgUmF3U2VydmVyRGVmYXVsdCB9IGZyb20gJ2Zhc3RpZnkvdHlwZXMvdXRpbHMnO1xuaW1wb3J0IHsgSHR0cE1ldGhvZHMgfSBmcm9tICcuLi9kZWNvcmF0b3JzL2hlbHBlcnMvaHR0cC1tZXRob2RzJztcbmltcG9ydCB7IENSRUFUT1IgfSBmcm9tICcuLi9zeW1ib2xzJztcblxuZXhwb3J0IGludGVyZmFjZSBDb250cm9sbGVyQ29uc3RydWN0b3I8UmF3U2VydmVyIGV4dGVuZHMgUmF3U2VydmVyQmFzZSA9IFJhd1NlcnZlckRlZmF1bHQsXG4gICAgUmF3UmVxdWVzdCBleHRlbmRzIFJhd1JlcXVlc3REZWZhdWx0RXhwcmVzc2lvbjxSYXdTZXJ2ZXI+ID0gUmF3UmVxdWVzdERlZmF1bHRFeHByZXNzaW9uPFJhd1NlcnZlcj4sXG4gICAgUmF3UmVwbHkgZXh0ZW5kcyBSYXdSZXBseURlZmF1bHRFeHByZXNzaW9uPFJhd1NlcnZlcj4gPSBSYXdSZXBseURlZmF1bHRFeHByZXNzaW9uPFJhd1NlcnZlcj4sXG4gICAgTG9nZ2VyID0gRmFzdGlmeUxvZ2dlckluc3RhbmNlPiB7XG5cbiAgICBuZXcoKTogYW55O1xuXG4gICAgbmV3KC4uLmFyZ3M6IGFueVtdKTogYW55O1xuXG4gICAgW0NSRUFUT1JdOiBDb250cm9sbGVySGFuZGxlcnNBbmRIb29rczxSYXdTZXJ2ZXIsIFJhd1JlcXVlc3QsIFJhd1JlcGx5Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb250cm9sbGVySGFuZGxlcnNBbmRIb29rczxSYXdTZXJ2ZXIgZXh0ZW5kcyBSYXdTZXJ2ZXJCYXNlLFxuICAgIFJhd1JlcXVlc3QgZXh0ZW5kcyBSYXdSZXF1ZXN0RGVmYXVsdEV4cHJlc3Npb248UmF3U2VydmVyPixcbiAgICBSYXdSZXBseSBleHRlbmRzIFJhd1JlcGx5RGVmYXVsdEV4cHJlc3Npb248UmF3U2VydmVyPj4ge1xuXG4gICAgaGFuZGxlcnM6IEhhbmRsZXI8UmF3U2VydmVyLCBSYXdSZXF1ZXN0LCBSYXdSZXBseT5bXTtcbiAgICBob29rczogSG9va1tdO1xuICAgIGVycm9ySGFuZGxlcnM6IEVycm9ySGFuZGxlcltdO1xuICAgIHJlZ2lzdGVyPzogKGluc3RhbmNlOiBGYXN0aWZ5SW5zdGFuY2U8UmF3U2VydmVyLCBSYXdSZXF1ZXN0LCBSYXdSZXBseT4pID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGFuZGxlcjxSYXdTZXJ2ZXIgZXh0ZW5kcyBSYXdTZXJ2ZXJCYXNlID0gUmF3U2VydmVyRGVmYXVsdCxcbiAgICBSYXdSZXF1ZXN0IGV4dGVuZHMgUmF3UmVxdWVzdERlZmF1bHRFeHByZXNzaW9uPFJhd1NlcnZlcj4gPSBSYXdSZXF1ZXN0RGVmYXVsdEV4cHJlc3Npb248UmF3U2VydmVyPixcbiAgICBSYXdSZXBseSBleHRlbmRzIFJhd1JlcGx5RGVmYXVsdEV4cHJlc3Npb248UmF3U2VydmVyPiA9IFJhd1JlcGx5RGVmYXVsdEV4cHJlc3Npb248UmF3U2VydmVyPj4ge1xuXG4gICAgdXJsOiBzdHJpbmc7XG4gICAgbWV0aG9kOiBIdHRwTWV0aG9kcztcbiAgICBvcHRpb25zOiBSb3V0ZVNob3J0aGFuZE9wdGlvbnM7XG4gICAgaGFuZGxlck1ldGhvZDogc3RyaW5nIHwgc3ltYm9sO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVycm9ySGFuZGxlciB7XG4gICAgYWNjZXB0czxUIGV4dGVuZHMgRXJyb3I+KGVycm9yPzogVCk6IGJvb2xlYW47XG5cbiAgICBoYW5kbGVyTmFtZTogc3RyaW5nIHwgc3ltYm9sO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhvb2sge1xuICAgIG5hbWU6IGFueTtcbiAgICBoYW5kbGVyTmFtZTogc3RyaW5nIHwgc3ltYm9sO1xufVxuIl19

@@ -10,6 +10,5 @@ /**

export { ControllerConfig } from './controller-config';
export { ControllerConstructor } from './controller';
export { ControllerHandlersAndHooks } from './controller';
export { ControllerConstructor, ControllerHandlersAndHooks, ErrorHandler, Handler, Hook } from './controller';
export { RequestHandler } from './request-handler';
export { RouteConfig } from './route-config';
export { InjectableClass } from './injectable-class';

@@ -12,2 +12,2 @@ "use strict";

Object.defineProperty(exports, "RequestHandler", { enumerable: true, get: function () { return request_handler_1.RequestHandler; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvaW50ZXJmYWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOztBQU1ILHFEQUFtRDtBQUExQyxpSEFBQSxjQUFjLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQW5kcmV5IENoYWxraW4gPEwyakxpZ2FAZ21haWwuY29tPiAoaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EpLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhL2Zhc3RpZnktZGVjb3JhdG9ycy9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuZXhwb3J0IHsgQm9vdHN0cmFwQ29uZmlnIH0gZnJvbSAnLi9ib290c3RyYXAtY29uZmlnJztcbmV4cG9ydCB7IENvbnRyb2xsZXJDb25maWcgfSBmcm9tICcuL2NvbnRyb2xsZXItY29uZmlnJztcbmV4cG9ydCB7IENvbnRyb2xsZXJDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29udHJvbGxlcic7XG5leHBvcnQgeyBDb250cm9sbGVySGFuZGxlcnNBbmRIb29rcyB9IGZyb20gJy4vY29udHJvbGxlcic7XG5leHBvcnQgeyBSZXF1ZXN0SGFuZGxlciB9IGZyb20gJy4vcmVxdWVzdC1oYW5kbGVyJztcbmV4cG9ydCB7IFJvdXRlQ29uZmlnIH0gZnJvbSAnLi9yb3V0ZS1jb25maWcnO1xuZXhwb3J0IHsgSW5qZWN0YWJsZUNsYXNzIH0gZnJvbSAnLi9pbmplY3RhYmxlLWNsYXNzJztcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvaW50ZXJmYWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOztBQUtILHFEQUFtRDtBQUExQyxpSEFBQSxjQUFjLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQW5kcmV5IENoYWxraW4gPEwyakxpZ2FAZ21haWwuY29tPiAoaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EpLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhL2Zhc3RpZnktZGVjb3JhdG9ycy9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuZXhwb3J0IHsgQm9vdHN0cmFwQ29uZmlnIH0gZnJvbSAnLi9ib290c3RyYXAtY29uZmlnJztcbmV4cG9ydCB7IENvbnRyb2xsZXJDb25maWcgfSBmcm9tICcuL2NvbnRyb2xsZXItY29uZmlnJztcbmV4cG9ydCB7IENvbnRyb2xsZXJDb25zdHJ1Y3RvciwgQ29udHJvbGxlckhhbmRsZXJzQW5kSG9va3MsIEVycm9ySGFuZGxlciwgSGFuZGxlciwgSG9vayB9IGZyb20gJy4vY29udHJvbGxlcic7XG5leHBvcnQgeyBSZXF1ZXN0SGFuZGxlciB9IGZyb20gJy4vcmVxdWVzdC1oYW5kbGVyJztcbmV4cG9ydCB7IFJvdXRlQ29uZmlnIH0gZnJvbSAnLi9yb3V0ZS1jb25maWcnO1xuZXhwb3J0IHsgSW5qZWN0YWJsZUNsYXNzIH0gZnJvbSAnLi9pbmplY3RhYmxlLWNsYXNzJztcbiJdfQ==

@@ -8,5 +8,5 @@ /**

*/
/// <reference types="node" />
import { FastifyInstance, FastifyReply, FastifyRequest } from 'fastify';
import { IncomingMessage, ServerResponse } from 'http';
import { RequestGenericInterface } from 'fastify/types/request';
import { ContextConfigDefault, RawReplyDefaultExpression, RawRequestDefaultExpression, RawServerBase, RawServerDefault } from 'fastify/types/utils';
import { CREATOR } from '../symbols';

@@ -16,6 +16,6 @@ /**

*/
export declare abstract class RequestHandler<Request = IncomingMessage, Response = ServerResponse> {
protected request: FastifyRequest<Request>;
protected reply: FastifyReply<Response>;
protected constructor(request: FastifyRequest<Request>, reply: FastifyReply<Response>);
export declare abstract class RequestHandler<RawServer extends RawServerBase = RawServerDefault, RawRequest extends RawRequestDefaultExpression<RawServer> = RawRequestDefaultExpression<RawServer>, RawReply extends RawReplyDefaultExpression<RawServer> = RawReplyDefaultExpression<RawServer>, RequestGeneric extends RequestGenericInterface = RequestGenericInterface, ContextConfig = ContextConfigDefault> {
protected request: FastifyRequest<RawServer, RawRequest, RequestGeneric>;
protected reply: FastifyReply<RawServer, RawRequest, RawReply, RequestGeneric, ContextConfig>;
protected constructor(request: FastifyRequest<RawServer, RawRequest, RequestGeneric>, reply: FastifyReply<RawServer, RawRequest, RawReply, RequestGeneric, ContextConfig>);
/**

@@ -22,0 +22,0 @@ * Main method for request handling

@@ -22,2 +22,2 @@ "use strict";

exports.RequestHandler = RequestHandler;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2ludGVyZmFjZXMvcmVxdWVzdC1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUlILHdDQUFxQztBQUVyQzs7R0FFRztBQUNILE1BQXNCLGNBQWM7SUFDaEMsWUFBZ0MsT0FBZ0MsRUFDaEMsS0FBNkI7UUFEN0IsWUFBTyxHQUFQLE9BQU8sQ0FBeUI7UUFDaEMsVUFBSyxHQUFMLEtBQUssQ0FBd0I7SUFDN0QsQ0FBQztDQVdKO0FBZEQsd0NBY0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQW5kcmV5IENoYWxraW4gPEwyakxpZ2FAZ21haWwuY29tPiAoaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EpLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhL2Zhc3RpZnktZGVjb3JhdG9ycy9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHsgRmFzdGlmeUluc3RhbmNlLCBGYXN0aWZ5UmVwbHksIEZhc3RpZnlSZXF1ZXN0IH0gZnJvbSAnZmFzdGlmeSc7XG5pbXBvcnQgeyBJbmNvbWluZ01lc3NhZ2UsIFNlcnZlclJlc3BvbnNlIH0gZnJvbSAnaHR0cCc7XG5pbXBvcnQgeyBDUkVBVE9SIH0gZnJvbSAnLi4vc3ltYm9scyc7XG5cbi8qKlxuICogQWJzdHJhY3QgY2xhc3Mgd2hpY2ggc2hvdWxkIGV4dGVuZCBhbGwgZGVjb3JhdGVkIHJlcXVlc3QgaGFuZGxlcnNcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJlcXVlc3RIYW5kbGVyPFJlcXVlc3QgPSBJbmNvbWluZ01lc3NhZ2UsIFJlc3BvbnNlID0gU2VydmVyUmVzcG9uc2U+IHtcbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlcXVlc3Q6IEZhc3RpZnlSZXF1ZXN0PFJlcXVlc3Q+LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgcmVwbHk6IEZhc3RpZnlSZXBseTxSZXNwb25zZT4pIHtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNYWluIG1ldGhvZCBmb3IgcmVxdWVzdCBoYW5kbGluZ1xuICAgICAqL1xuICAgIGFic3RyYWN0IGhhbmRsZSgpOiB2b2lkIHwgUHJvbWlzZTxhbnk+O1xuXG4gICAgLyoqXG4gICAgICogU3RhdGljIG1ldGhvZCB0byByZWdpc3RlciBoYW5kbGVyIGJ5IGF1dG9sb2FkZXIgKGJvb3RzdHJhcClcbiAgICAgKi9cbiAgICBzdGF0aWMgcmVhZG9ubHkgW0NSRUFUT1JdOiB7IHJlZ2lzdGVyOiAoaW5zdGFuY2U6IEZhc3RpZnlJbnN0YW5jZSkgPT4gdm9pZCB9O1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2ludGVyZmFjZXMvcmVxdWVzdC1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUtILHdDQUFxQztBQUVyQzs7R0FFRztBQUNILE1BQXNCLGNBQWM7SUFPaEMsWUFBZ0MsT0FBOEQsRUFDOUQsS0FBbUY7UUFEbkYsWUFBTyxHQUFQLE9BQU8sQ0FBdUQ7UUFDOUQsVUFBSyxHQUFMLEtBQUssQ0FBOEU7SUFDbkgsQ0FBQztDQVdKO0FBcEJELHdDQW9CQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbmRyZXkgQ2hhbGtpbiA8TDJqTGlnYUBnbWFpbC5jb20+IChodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYSkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EvZmFzdGlmeS1kZWNvcmF0b3JzL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgeyBGYXN0aWZ5SW5zdGFuY2UsIEZhc3RpZnlSZXBseSwgRmFzdGlmeVJlcXVlc3QgfSBmcm9tICdmYXN0aWZ5JztcbmltcG9ydCB7IFJlcXVlc3RHZW5lcmljSW50ZXJmYWNlIH0gZnJvbSAnZmFzdGlmeS90eXBlcy9yZXF1ZXN0JztcbmltcG9ydCB7IENvbnRleHRDb25maWdEZWZhdWx0LCBSYXdSZXBseURlZmF1bHRFeHByZXNzaW9uLCBSYXdSZXF1ZXN0RGVmYXVsdEV4cHJlc3Npb24sIFJhd1NlcnZlckJhc2UsIFJhd1NlcnZlckRlZmF1bHQgfSBmcm9tICdmYXN0aWZ5L3R5cGVzL3V0aWxzJztcbmltcG9ydCB7IENSRUFUT1IgfSBmcm9tICcuLi9zeW1ib2xzJztcblxuLyoqXG4gKiBBYnN0cmFjdCBjbGFzcyB3aGljaCBzaG91bGQgZXh0ZW5kIGFsbCBkZWNvcmF0ZWQgcmVxdWVzdCBoYW5kbGVyc1xuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmVxdWVzdEhhbmRsZXI8UmF3U2VydmVyIGV4dGVuZHMgUmF3U2VydmVyQmFzZSA9IFJhd1NlcnZlckRlZmF1bHQsXG4gICAgUmF3UmVxdWVzdCBleHRlbmRzIFJhd1JlcXVlc3REZWZhdWx0RXhwcmVzc2lvbjxSYXdTZXJ2ZXI+ID0gUmF3UmVxdWVzdERlZmF1bHRFeHByZXNzaW9uPFJhd1NlcnZlcj4sXG4gICAgUmF3UmVwbHkgZXh0ZW5kcyBSYXdSZXBseURlZmF1bHRFeHByZXNzaW9uPFJhd1NlcnZlcj4gPSBSYXdSZXBseURlZmF1bHRFeHByZXNzaW9uPFJhd1NlcnZlcj4sXG4gICAgUmVxdWVzdEdlbmVyaWMgZXh0ZW5kcyBSZXF1ZXN0R2VuZXJpY0ludGVyZmFjZSA9IFJlcXVlc3RHZW5lcmljSW50ZXJmYWNlLFxuICAgIENvbnRleHRDb25maWcgPSBDb250ZXh0Q29uZmlnRGVmYXVsdCxcbiAgICA+IHtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVxdWVzdDogRmFzdGlmeVJlcXVlc3Q8UmF3U2VydmVyLCBSYXdSZXF1ZXN0LCBSZXF1ZXN0R2VuZXJpYz4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCByZXBseTogRmFzdGlmeVJlcGx5PFJhd1NlcnZlciwgUmF3UmVxdWVzdCwgUmF3UmVwbHksIFJlcXVlc3RHZW5lcmljLCBDb250ZXh0Q29uZmlnPikge1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1haW4gbWV0aG9kIGZvciByZXF1ZXN0IGhhbmRsaW5nXG4gICAgICovXG4gICAgYWJzdHJhY3QgaGFuZGxlKCk6IHZvaWQgfCBQcm9taXNlPGFueT47XG5cbiAgICAvKipcbiAgICAgKiBTdGF0aWMgbWV0aG9kIHRvIHJlZ2lzdGVyIGhhbmRsZXIgYnkgYXV0b2xvYWRlciAoYm9vdHN0cmFwKVxuICAgICAqL1xuICAgIHN0YXRpYyByZWFkb25seSBbQ1JFQVRPUl06IHsgcmVnaXN0ZXI6IChpbnN0YW5jZTogRmFzdGlmeUluc3RhbmNlKSA9PiB2b2lkIH07XG59XG4iXX0=
{
"name": "fastify-decorators",
"version": "2.0.0",
"version": "3.0.0-0",
"description": "Build your Fastify server with controllers, services and hooks",

@@ -31,3 +31,3 @@ "main": "index.js",

"engines": {
"node": ">= 10.0.0"
"node": ">= 10.16.0"
},

@@ -37,4 +37,4 @@ "type": "commonjs",

"@types/node": "*",
"fastify": "^2.0.0"
"fastify": "^3.0.0-rc.1 || ^3.0.0"
}
}

@@ -30,3 +30,3 @@ # Fastify decorators

- [Testing]
- [Migration to V2]
- [Migration guide (V3)]

@@ -171,7 +171,7 @@ ## Basic usage

[Getting Started]: https://github.com/L2jLiga/fastify-decorators/blob/v2.0.0/lib/docs/Getting-Started.md
[Request Handler]: https://github.com/L2jLiga/fastify-decorators/blob/v2.0.0/lib/docs/Request-Handlers.md
[Controllers]: https://github.com/L2jLiga/fastify-decorators/blob/v2.0.0/lib/docs/Controllers.md
[Dependency Injection]: https://github.com/L2jLiga/fastify-decorators/blob/v2.0.0/lib/docs/Dependency-Injection.md
[Testing]: https://github.com/L2jLiga/fastify-decorators/blob/v2.0.0/lib/docs/Testing.md
[Migration to V2]: https://github.com/L2jLiga/fastify-decorators/blob/v2.0.0/lib/docs/Migration-to-v2.md
[Getting Started]: https://github.com/L2jLiga/fastify-decorators/blob/v3.0.0-0/lib/docs/Getting-Started.md
[Request Handler]: https://github.com/L2jLiga/fastify-decorators/blob/v3.0.0-0/lib/docs/Request-Handlers.md
[Controllers]: https://github.com/L2jLiga/fastify-decorators/blob/v3.0.0-0/lib/docs/Controllers.md
[Dependency Injection]: https://github.com/L2jLiga/fastify-decorators/blob/v3.0.0-0/lib/docs/Dependency-Injection.md
[Testing]: https://github.com/L2jLiga/fastify-decorators/blob/v3.0.0-0/lib/docs/Testing.md
[Migration guide (V3)]: https://github.com/L2jLiga/fastify-decorators/blob/v3.0.0-0/lib/lib/docs/Migration-to-v3.md

@@ -8,4 +8,3 @@ /**

*/
/// <reference types="node" />
import fastify = require('fastify');
import { FastifyInstance } from 'fastify';
import { ServiceMock } from './service-mock';

@@ -16,2 +15,2 @@ export interface ControllerTestConfig {

}
export declare function configureControllerTest(config: ControllerTestConfig): Promise<fastify.FastifyInstance<import("http").Server, import("http").IncomingMessage, import("http").ServerResponse>>;
export declare function configureControllerTest(config: ControllerTestConfig): Promise<FastifyInstance<any, any, any, any>>;

@@ -11,3 +11,3 @@ "use strict";

exports.configureControllerTest = void 0;
const fastify = require("fastify");
const fastify_1 = require("fastify");
const injectables_1 = require("../registry/injectables");

@@ -17,8 +17,9 @@ const symbols_1 = require("../symbols");

async function configureControllerTest(config) {
const instance = fastify();
const instance = fastify_1.fastify();
const injectablesWithMocks = mocks_manager_1.MocksManager.create(injectables_1.injectables, config.mocks);
config.controller[symbols_1.CREATOR].register(instance, injectablesWithMocks, false);
await config.controller[symbols_1.CREATOR].register(instance, injectablesWithMocks, false);
await instance.ready();
return instance;
}
exports.configureControllerTest = configureControllerTest;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJlLWNvbnRyb2xsZXItdGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi90ZXN0aW5nL2NvbmZpZ3VyZS1jb250cm9sbGVyLXRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBRUgsbUNBQW9DO0FBQ3BDLHlEQUFzRDtBQUN0RCx3Q0FBcUM7QUFDckMsbURBQStDO0FBUXhDLEtBQUssVUFBVSx1QkFBdUIsQ0FBQyxNQUE0QjtJQUN0RSxNQUFNLFFBQVEsR0FBRyxPQUFPLEVBQUUsQ0FBQztJQUMzQixNQUFNLG9CQUFvQixHQUFHLDRCQUFZLENBQUMsTUFBTSxDQUFDLHlCQUFXLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTVFLE1BQU0sQ0FBQyxVQUFVLENBQUMsaUJBQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFFM0UsT0FBTyxRQUFRLENBQUM7QUFDcEIsQ0FBQztBQVBELDBEQU9DIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFuZHJleSBDaGFsa2luIDxMMmpMaWdhQGdtYWlsLmNvbT4gKGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhKS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYS9mYXN0aWZ5LWRlY29yYXRvcnMvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCBmYXN0aWZ5ID0gcmVxdWlyZSgnZmFzdGlmeScpO1xuaW1wb3J0IHsgaW5qZWN0YWJsZXMgfSBmcm9tICcuLi9yZWdpc3RyeS9pbmplY3RhYmxlcyc7XG5pbXBvcnQgeyBDUkVBVE9SIH0gZnJvbSAnLi4vc3ltYm9scyc7XG5pbXBvcnQgeyBNb2Nrc01hbmFnZXIgfSBmcm9tICcuL21vY2tzLW1hbmFnZXInO1xuaW1wb3J0IHsgU2VydmljZU1vY2sgfSBmcm9tICcuL3NlcnZpY2UtbW9jayc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udHJvbGxlclRlc3RDb25maWcge1xuICAgIGNvbnRyb2xsZXI6IGFueTtcbiAgICBtb2Nrcz86IFNlcnZpY2VNb2NrW107XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb25maWd1cmVDb250cm9sbGVyVGVzdChjb25maWc6IENvbnRyb2xsZXJUZXN0Q29uZmlnKSB7XG4gICAgY29uc3QgaW5zdGFuY2UgPSBmYXN0aWZ5KCk7XG4gICAgY29uc3QgaW5qZWN0YWJsZXNXaXRoTW9ja3MgPSBNb2Nrc01hbmFnZXIuY3JlYXRlKGluamVjdGFibGVzLCBjb25maWcubW9ja3MpO1xuXG4gICAgY29uZmlnLmNvbnRyb2xsZXJbQ1JFQVRPUl0ucmVnaXN0ZXIoaW5zdGFuY2UsIGluamVjdGFibGVzV2l0aE1vY2tzLCBmYWxzZSk7XG5cbiAgICByZXR1cm4gaW5zdGFuY2U7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJlLWNvbnRyb2xsZXItdGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi90ZXN0aW5nL2NvbmZpZ3VyZS1jb250cm9sbGVyLXRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBRUgscUNBQW1EO0FBQ25ELHlEQUFzRDtBQUN0RCx3Q0FBcUM7QUFDckMsbURBQStDO0FBUXhDLEtBQUssVUFBVSx1QkFBdUIsQ0FBQyxNQUE0QjtJQUN0RSxNQUFNLFFBQVEsR0FBRyxpQkFBTyxFQUFFLENBQUM7SUFDM0IsTUFBTSxvQkFBb0IsR0FBRyw0QkFBWSxDQUFDLE1BQU0sQ0FBQyx5QkFBVyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUU1RSxNQUFNLE1BQU0sQ0FBQyxVQUFVLENBQUMsaUJBQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDakYsTUFBTSxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7SUFFdkIsT0FBTyxRQUFRLENBQUM7QUFDcEIsQ0FBQztBQVJELDBEQVFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFuZHJleSBDaGFsa2luIDxMMmpMaWdhQGdtYWlsLmNvbT4gKGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhKS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYS9mYXN0aWZ5LWRlY29yYXRvcnMvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCB7IGZhc3RpZnksIEZhc3RpZnlJbnN0YW5jZSB9IGZyb20gJ2Zhc3RpZnknO1xuaW1wb3J0IHsgaW5qZWN0YWJsZXMgfSBmcm9tICcuLi9yZWdpc3RyeS9pbmplY3RhYmxlcyc7XG5pbXBvcnQgeyBDUkVBVE9SIH0gZnJvbSAnLi4vc3ltYm9scyc7XG5pbXBvcnQgeyBNb2Nrc01hbmFnZXIgfSBmcm9tICcuL21vY2tzLW1hbmFnZXInO1xuaW1wb3J0IHsgU2VydmljZU1vY2sgfSBmcm9tICcuL3NlcnZpY2UtbW9jayc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udHJvbGxlclRlc3RDb25maWcge1xuICAgIGNvbnRyb2xsZXI6IGFueTtcbiAgICBtb2Nrcz86IFNlcnZpY2VNb2NrW107XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb25maWd1cmVDb250cm9sbGVyVGVzdChjb25maWc6IENvbnRyb2xsZXJUZXN0Q29uZmlnKTogUHJvbWlzZTxGYXN0aWZ5SW5zdGFuY2U8YW55LCBhbnksIGFueSwgYW55Pj4ge1xuICAgIGNvbnN0IGluc3RhbmNlID0gZmFzdGlmeSgpO1xuICAgIGNvbnN0IGluamVjdGFibGVzV2l0aE1vY2tzID0gTW9ja3NNYW5hZ2VyLmNyZWF0ZShpbmplY3RhYmxlcywgY29uZmlnLm1vY2tzKTtcblxuICAgIGF3YWl0IGNvbmZpZy5jb250cm9sbGVyW0NSRUFUT1JdLnJlZ2lzdGVyKGluc3RhbmNlLCBpbmplY3RhYmxlc1dpdGhNb2NrcywgZmFsc2UpO1xuICAgIGF3YWl0IGluc3RhbmNlLnJlYWR5KCk7XG5cbiAgICByZXR1cm4gaW5zdGFuY2U7XG59XG4iXX0=
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc