@coobaha/typed-fastify
Advanced tools
Comparing version
"use strict"; | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); | ||
var desc = Object.getOwnPropertyDescriptor(m, k); | ||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
desc = { enumerable: true, get: function() { return m[k]; } }; | ||
} | ||
Object.defineProperty(o, k2, desc); | ||
}) : (function(o, m, k, k2) { | ||
@@ -35,2 +39,3 @@ if (k2 === undefined) k2 = k; | ||
const mergedAllOfSchema = (0, json_schema_merge_allof_1.default)(originalSchema); | ||
const escapeGenerics = (key) => key.replace(/</gim, '__').replace(/>/gim, '__'); | ||
(0, json_schema_traverse_1.default)(mergedAllOfSchema, (schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) => { | ||
@@ -41,2 +46,10 @@ var _a; | ||
} | ||
if (parentSchema && keyIndex && parentKeyword === 'definitions' && jsonPtr.includes('<') && jsonPtr.endsWith('>')) { | ||
const escapedKey = escapeGenerics(String(keyIndex)); | ||
parentSchema[parentKeyword][escapedKey] = parentSchema[parentKeyword][keyIndex]; | ||
delete parentSchema[parentKeyword][keyIndex]; | ||
} | ||
if (schema.type && schema.$ref) { | ||
schema.$ref = escapeGenerics(schema.$ref); | ||
} | ||
if (schema.type && schema.$ref && parentSchema && parentKeyword && parentSchema[parentKeyword]) { | ||
@@ -43,0 +56,0 @@ if (keyIndex === 'request') { |
# Changelog | ||
## [0.8.0](https://github.com/Coobaha/typed-fastify/compare/v0.7.0...v0.8.0) (2022-07-03) | ||
### ⚠ BREAKING CHANGES | ||
* bump to fastify4 | ||
### Bug Fixes | ||
* bump to fastify4 ([b1e9813](https://github.com/Coobaha/typed-fastify/commit/b1e98132abb660cc0bb7b0d0d905ef252f3b15d0)) | ||
## [0.7.0](https://github.com/Coobaha/typed-fastify/compare/v0.6.0...v0.7.0) (2022-05-22) | ||
@@ -4,0 +15,0 @@ |
"use strict"; | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); | ||
var desc = Object.getOwnPropertyDescriptor(m, k); | ||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
desc = { enumerable: true, get: function() { return m[k]; } }; | ||
} | ||
Object.defineProperty(o, k2, desc); | ||
}) : (function(o, m, k, k2) { | ||
@@ -6,0 +10,0 @@ if (k2 === undefined) k2 = k; |
/// <reference types="node" /> | ||
/// <reference types="node" /> | ||
/// <reference types="node" /> | ||
import { HTTPMethods } from 'fastify'; | ||
@@ -3,0 +5,0 @@ import { IncomingHttpHeaders, OutgoingHttpHeaders } from 'http'; |
import type * as F from 'fastify'; | ||
import { FastifyRequestType, FastifyTypeProvider, FastifyTypeProviderDefault, ResolveFastifyRequestType } from 'fastify/types/type-provider'; | ||
import { Operation, Schema } from './schema'; | ||
declare const addSchema: <ServiceSchema extends Schema<string>, RawServer extends F.RawServerBase = import("http").Server, RawRequest extends F.RawRequestDefaultExpression<RawServer> = F.RawRequestDefaultExpression<RawServer>, RawReply extends F.RawReplyDefaultExpression<RawServer> = F.RawReplyDefaultExpression<RawServer>, Logger = F.FastifyLoggerInstance, ContextConfig = unknown, S = Service<ServiceSchema, RawServer, RawRequest, RawReply, ContextConfig>>(fastify: F.FastifyInstance<RawServer, RawRequest, RawReply, Logger>, opts: { | ||
declare const addSchema: <ServiceSchema extends Schema<string>, RawServer extends F.RawServerBase = import("http").Server, RawRequest extends F.RawRequestDefaultExpression<RawServer> = F.RawRequestDefaultExpression<RawServer>, RawReply extends F.RawReplyDefaultExpression<RawServer> = F.RawReplyDefaultExpression<RawServer>, Logger extends F.FastifyLoggerInstance = F.FastifyLoggerInstance, S = Service<ServiceSchema, RawServer, RawRequest, RawReply, Logger, F.FastifySchema, F.FastifyTypeProviderDefault, F.FastifyLoggerInstance>>(fastify: F.FastifyInstance<RawServer, RawRequest, RawReply, Logger, F.FastifyTypeProviderDefault>, opts: { | ||
jsonSchema: { | ||
@@ -64,7 +65,7 @@ schema: Record<string, any>; | ||
} : never; | ||
interface Request<ServiceSchema extends Schema, Op extends Operation, Path extends keyof ServiceSchema['paths'], RawServer extends F.RawServerBase = F.RawServerDefault, RawRequest extends F.RawRequestDefaultExpression<RawServer> = F.RawRequestDefaultExpression<RawServer>, OpRequest extends Router<Op> = Router<Op>, PathParams = OpRequest['Params'] extends never ? ExtractParams<Path> : Id<Omit<ExtractParams<Path>, keyof OpRequest['Params']>>> extends Omit<F.FastifyRequest<OpRequest['Params'] extends [never] ? Omit<Router<Op>, 'Params'> & { | ||
interface Request<ServiceSchema extends Schema, Op extends Operation, Path extends keyof ServiceSchema['paths'], RawServer extends F.RawServerBase = F.RawServerDefault, RawRequest extends F.RawRequestDefaultExpression<RawServer> = F.RawRequestDefaultExpression<RawServer>, SchemaCompiler extends F.FastifySchema = F.FastifySchema, TypeProvider extends F.FastifyTypeProvider = F.FastifyTypeProviderDefault, ContextConfig = F.ContextConfigDefault, Logger extends F.FastifyLoggerInstance = F.FastifyLoggerInstance, OpRequest extends Router<Op> = Router<Op>, PathParams = OpRequest['Params'] extends never ? ExtractParams<Path> : Id<Omit<ExtractParams<Path>, keyof OpRequest['Params']>>, RouteGeneric = OpRequest['Params'] extends [never] ? Omit<Router<Op>, 'Params'> & { | ||
Params: PathParams; | ||
} : Omit<Router<Op>, 'Params'> & { | ||
Params: Id<PathParams & Router<Op>['Params']>; | ||
}, RawServer, RawRequest>, 'headers' | 'method' | 'routerMethod' | 'routerPath'> { | ||
}, RequestType extends FastifyRequestType = ResolveFastifyRequestType<TypeProvider, SchemaCompiler, RouteGeneric>> extends Omit<F.FastifyRequest<RouteGeneric, RawServer, RawRequest, SchemaCompiler, TypeProvider, ContextConfig, RequestType, Logger>, 'headers' | 'method' | 'routerMethod' | 'routerPath'> { | ||
readonly method: MP<Path>[0]; | ||
@@ -78,19 +79,19 @@ readonly body: MP<Path>[0] extends 'GET' ? never : Get<Op['request'], 'body'>; | ||
declare type GetInvalidParamsValidation<Op extends Operation, Path extends keyof ServiceSchema['paths'], ServiceSchema extends Schema, DifferentKeys = Id<Omit<Router<Op>['Params'], keyof ExtractParams<Path>>>> = Router<Op>['Params'] extends never ? false : IsEqual<DifferentKeys, {}> extends false ? Invalid<`request.params keys doesn't match params from router path, probably due to typo in [ ${Extract<keyof DifferentKeys, string>} ] in path: [ ${Extract<MP<Path>[1], string>} ]`> : false; | ||
declare type Handler<Op extends Operation, Path extends keyof ServiceSchema['paths'], ServiceSchema extends Schema, RawServer extends F.RawServerBase = F.RawServerDefault, RawRequest extends F.RawRequestDefaultExpression<RawServer> = F.RawRequestDefaultExpression<RawServer>, RawReply extends F.RawReplyDefaultExpression<RawServer> = F.RawReplyDefaultExpression<RawServer>, ContextConfig = F.ContextConfigDefault, InvalidParams = GetInvalidParamsValidation<Op, Path, ServiceSchema>, ValidSchema = [Op['response'][keyof Op['response']]] extends [never] ? Invalid<`${Extract<Path, string>} - has no response, every path should have at least one response defined`> : InvalidParams extends Invalid ? InvalidParams : true, Status extends keyof Op['response'] = keyof Op['response']> = ValidSchema extends true ? (this: F.FastifyInstance<RawServer, RawRequest, RawReply, ContextConfig>, request: Request<ServiceSchema, Op, Path, RawServer, RawRequest>, reply: Reply<Op, never, never, never, Path, ServiceSchema, RawServer, RawRequest, RawReply, ContextConfig> & { | ||
declare type Handler<Op extends Operation, Path extends keyof ServiceSchema['paths'], ServiceSchema extends Schema, RawServer extends F.RawServerBase = F.RawServerDefault, RawRequest extends F.RawRequestDefaultExpression<RawServer> = F.RawRequestDefaultExpression<RawServer>, RawReply extends F.RawReplyDefaultExpression<RawServer> = F.RawReplyDefaultExpression<RawServer>, ContextConfig = F.ContextConfigDefault, SchemaCompiler = F.FastifySchema, TypeProvider extends F.FastifyTypeProvider = F.FastifyTypeProviderDefault, RequestType extends FastifyRequestType = ResolveFastifyRequestType<TypeProvider, SchemaCompiler, Router<Op>>, Logger extends F.FastifyLoggerInstance = F.FastifyLoggerInstance, InvalidParams = GetInvalidParamsValidation<Op, Path, ServiceSchema>, ValidSchema = [Op['response'][keyof Op['response']]] extends [never] ? Invalid<`${Extract<Path, string>} - has no response, every path should have at least one response defined`> : InvalidParams extends Invalid ? InvalidParams : true, Status extends keyof Op['response'] = keyof Op['response']> = ValidSchema extends true ? (this: F.FastifyInstance<RawServer, RawRequest, RawReply, Logger>, request: Request<ServiceSchema, Op, Path, RawServer, RawRequest, ContextConfig, TypeProvider, RequestType, Logger>, reply: Reply<Op, never, never, never, Path, ServiceSchema, RawServer, RawRequest, RawReply, Logger> & { | ||
readonly __unknownReply: unique symbol; | ||
M: MP<Path>[0]; | ||
}) => AsReply | Promise<AsReply> : ValidSchema; | ||
declare type HandlerObj<Op extends Operation, Path extends keyof ServiceSchema['paths'], ServiceSchema extends Schema, RawServer extends F.RawServerBase = F.RawServerDefault, RawRequest extends F.RawRequestDefaultExpression<RawServer> = F.RawRequestDefaultExpression<RawServer>, RawReply extends F.RawReplyDefaultExpression<RawServer> = F.RawReplyDefaultExpression<RawServer>, ContextConfig = F.ContextConfigDefault> = F.RouteShorthandOptions<RawServer, RawRequest, RawReply, Router<Op>> & { | ||
handler: Handler<Op, Path, ServiceSchema, RawServer, RawRequest, RawReply, ContextConfig>; | ||
declare type HandlerObj<Op extends Operation, Path extends keyof ServiceSchema['paths'], ServiceSchema extends Schema, RawServer extends F.RawServerBase = F.RawServerDefault, RawRequest extends F.RawRequestDefaultExpression<RawServer> = F.RawRequestDefaultExpression<RawServer>, RawReply extends F.RawReplyDefaultExpression<RawServer> = F.RawReplyDefaultExpression<RawServer>, ContextConfig = F.ContextConfigDefault, SchemaCompiler = F.FastifySchema, TypeProvider extends F.FastifyTypeProvider = F.FastifyTypeProviderDefault, RequestType extends FastifyRequestType = ResolveFastifyRequestType<TypeProvider, SchemaCompiler, Router<Op>>, Logger extends F.FastifyLoggerInstance = F.FastifyLoggerInstance> = F.RouteShorthandOptions<RawServer, RawRequest, RawReply, Router<Op>, ContextConfig, SchemaCompiler, TypeProvider, RequestType, Logger> & { | ||
handler: Handler<Op, Path, ServiceSchema, RawServer, RawRequest, RawReply, ContextConfig, Logger>; | ||
}; | ||
export declare type Service<S extends Schema, RawServer extends F.RawServerBase = F.RawServerDefault, RawRequest extends F.RawRequestDefaultExpression<RawServer> = F.RawRequestDefaultExpression<RawServer>, RawReply extends F.RawReplyDefaultExpression<RawServer> = F.RawReplyDefaultExpression<RawServer>, ContextConfig = F.ContextConfigDefault> = { | ||
[P in keyof S['paths']]: Handler<S['paths'][P], P, S, RawServer, RawRequest, RawReply, ContextConfig> | HandlerObj<S['paths'][P], P, S, RawServer, RawRequest, RawReply, ContextConfig>; | ||
export declare type Service<S extends Schema, RawServer extends F.RawServerBase = F.RawServerDefault, RawRequest extends F.RawRequestDefaultExpression<RawServer> = F.RawRequestDefaultExpression<RawServer>, RawReply extends F.RawReplyDefaultExpression<RawServer> = F.RawReplyDefaultExpression<RawServer>, ContextConfig = F.ContextConfigDefault, SchemaCompiler = F.FastifySchema, TypeProvider extends FastifyTypeProvider = FastifyTypeProviderDefault, Logger extends F.FastifyLoggerInstance = F.FastifyLoggerInstance> = { | ||
[P in keyof S['paths']]: Handler<S['paths'][P], P, S, RawServer, RawRequest, RawReply, ContextConfig, SchemaCompiler, TypeProvider, ResolveFastifyRequestType<TypeProvider, SchemaCompiler, Router<S['paths'][P]>>, Logger> | HandlerObj<S['paths'][P], P, S, RawServer, RawRequest, RawReply, ContextConfig, SchemaCompiler, TypeProvider, ResolveFastifyRequestType<TypeProvider, SchemaCompiler, Router<S['paths'][P]>>, Logger>; | ||
}; | ||
export declare type RequestHandler<ServiceSchema extends Schema, HandlerPaths extends keyof ServiceSchema['paths'], RawServer extends F.RawServerBase = F.RawServerDefault, RawRequest extends F.RawRequestDefaultExpression<RawServer> = F.RawRequestDefaultExpression<RawServer>, RawReply extends F.RawReplyDefaultExpression<RawServer> = F.RawReplyDefaultExpression<RawServer>, ContextConfig = F.ContextConfigDefault, S = Service<ServiceSchema, RawServer, RawRequest, RawReply, ContextConfig>, Paths = ServiceSchema['paths'], OpHandler = { | ||
[Path in HandlerPaths]: Handler<Path extends keyof Paths ? Paths[Path] : never, Path, ServiceSchema, RawServer, RawRequest, RawReply, ContextConfig>; | ||
export declare type RequestHandler<ServiceSchema extends Schema, HandlerPaths extends keyof ServiceSchema['paths'], RawServer extends F.RawServerBase = F.RawServerDefault, RawRequest extends F.RawRequestDefaultExpression<RawServer> = F.RawRequestDefaultExpression<RawServer>, RawReply extends F.RawReplyDefaultExpression<RawServer> = F.RawReplyDefaultExpression<RawServer>, ContextConfig = F.ContextConfigDefault, SchemaCompiler = F.FastifySchema, TypeProvider extends FastifyTypeProvider = FastifyTypeProviderDefault, Logger extends F.FastifyLoggerInstance = F.FastifyLoggerInstance, S = Service<ServiceSchema, RawServer, RawRequest, RawReply, Logger>, Paths = ServiceSchema['paths'], OpHandler = { | ||
[Path in HandlerPaths]: Handler<Path extends keyof Paths ? Paths[Path] : never, Path, ServiceSchema, RawServer, RawRequest, RawReply, ContextConfig, SchemaCompiler, TypeProvider, ResolveFastifyRequestType<TypeProvider, SchemaCompiler, Router<Path extends keyof Paths ? Paths[Path] : never>>, Logger>; | ||
}[HandlerPaths], OpHandlerObj = { | ||
[Path in HandlerPaths]: HandlerObj<Path extends keyof Paths ? Paths[Path] : never, Path, ServiceSchema, RawServer, RawRequest, RawReply, ContextConfig>; | ||
[Path in HandlerPaths]: HandlerObj<Path extends keyof Paths ? Paths[Path] : never, Path, ServiceSchema, RawServer, RawRequest, RawReply, ContextConfig, SchemaCompiler, TypeProvider, ResolveFastifyRequestType<TypeProvider, SchemaCompiler, Router<Path extends keyof Paths ? Paths[Path] : never>>, Logger>; | ||
}[HandlerPaths]> = OpHandler extends (...args: any) => any ? { | ||
Request: Parameters<OpHandler>[0]; | ||
AsFastifyRequest: Parameters<OpHandler>[0] extends F.FastifyRequest<any, any, any> ? F.FastifyRequest<Router<Paths[keyof Paths]>, RawServer, RawRequest> : never; | ||
AsFastifyRequest: Parameters<OpHandler>[0] extends F.FastifyRequest<any, any, any> ? F.FastifyRequest<Router<Paths[keyof Paths]>, RawServer, RawRequest, SchemaCompiler, TypeProvider, ContextConfig, ResolveFastifyRequestType<TypeProvider, SchemaCompiler, Router<Paths[keyof Paths]>>, Logger> : never; | ||
Reply: Parameters<OpHandler>[1]; | ||
@@ -97,0 +98,0 @@ Return: AsReply | Promise<AsReply>; |
{ | ||
"name": "@coobaha/typed-fastify", | ||
"description": "opinionated types for fastify", | ||
"version": "0.7.0", | ||
"version": "0.8.0", | ||
"bin": { | ||
@@ -22,19 +22,19 @@ "typed-fastify-schema": "bin/gen.bin.js", | ||
"@types/json-schema-merge-allof": "^0.6.1", | ||
"@types/node": "^17.0.35", | ||
"@types/prettier": "^2.6.1", | ||
"@types/node": "^18.0.0", | ||
"@types/prettier": "^2.6.3", | ||
"@types/split2": "^3.2.1", | ||
"@types/tap": "^15.0.7", | ||
"@types/yargs": "^17.0.10", | ||
"fastify": "^3.29.0", | ||
"fastify": "^4.1.0", | ||
"husky": "^8.0.1", | ||
"lint-staged": "^12.4.1", | ||
"lint-staged": "^13.0.3", | ||
"pinst": "^3.0.0", | ||
"prettier": "^2.6.2", | ||
"prettier": "^2.7.1", | ||
"split2": "^4.1.0", | ||
"syncpack": "^7.2.1", | ||
"tap": "^16.2.0", | ||
"ts-node-dev": "^1.1.8", | ||
"tsd": "^0.20.0", | ||
"type-fest": "^2.12.2", | ||
"typescript": "^4.6.4" | ||
"syncpack": "^8.2.4", | ||
"tap": "^16.3.0", | ||
"ts-node-dev": "^2.0.0", | ||
"tsd": "^0.21.0", | ||
"type-fest": "^2.14.0", | ||
"typescript": "^4.7.4" | ||
}, | ||
@@ -41,0 +41,0 @@ "directories": { |
import type * as F from 'fastify'; | ||
import { | ||
FastifyRequestType, | ||
FastifyTypeProvider, | ||
FastifyTypeProviderDefault, | ||
ResolveFastifyRequestType, | ||
} from 'fastify/types/type-provider'; | ||
import { Operation, Schema } from './schema'; | ||
@@ -275,2 +281,4 @@ const addSchema = < | ||
RawRequest extends F.RawRequestDefaultExpression<RawServer> = F.RawRequestDefaultExpression<RawServer>, | ||
SchemaCompiler extends F.FastifySchema = F.FastifySchema, | ||
TypeProvider extends F.FastifyTypeProvider = F.FastifyTypeProviderDefault, | ||
ContextConfig = F.ContextConfigDefault, | ||
@@ -282,10 +290,15 @@ Logger extends F.FastifyLoggerInstance = F.FastifyLoggerInstance, | ||
: Id<Omit<ExtractParams<Path>, keyof OpRequest['Params']>>, | ||
RouteGeneric = OpRequest['Params'] extends [never] | ||
? Omit<Router<Op>, 'Params'> & { Params: PathParams } | ||
: Omit<Router<Op>, 'Params'> & { Params: Id<PathParams & Router<Op>['Params']> }, | ||
RequestType extends FastifyRequestType = ResolveFastifyRequestType<TypeProvider, SchemaCompiler, RouteGeneric>, | ||
> extends Omit< | ||
F.FastifyRequest< | ||
OpRequest['Params'] extends [never] | ||
? Omit<Router<Op>, 'Params'> & { Params: PathParams } | ||
: Omit<Router<Op>, 'Params'> & { Params: Id<PathParams & Router<Op>['Params']> }, | ||
RouteGeneric, | ||
RawServer, | ||
RawRequest, | ||
SchemaCompiler, | ||
TypeProvider, | ||
ContextConfig, | ||
RequestType, | ||
Logger | ||
@@ -328,2 +341,4 @@ >, | ||
SchemaCompiler = F.FastifySchema, | ||
TypeProvider extends F.FastifyTypeProvider = F.FastifyTypeProviderDefault, | ||
RequestType extends FastifyRequestType = ResolveFastifyRequestType<TypeProvider, SchemaCompiler, Router<Op>>, | ||
Logger extends F.FastifyLoggerInstance = F.FastifyLoggerInstance, | ||
@@ -340,3 +355,13 @@ InvalidParams = GetInvalidParamsValidation<Op, Path, ServiceSchema>, | ||
this: F.FastifyInstance<RawServer, RawRequest, RawReply, Logger>, | ||
request: Request<ServiceSchema, Op, Path, RawServer, RawRequest, ContextConfig, Logger>, | ||
request: Request< | ||
ServiceSchema, | ||
Op, | ||
Path, | ||
RawServer, | ||
RawRequest, | ||
ContextConfig, | ||
TypeProvider, | ||
RequestType, | ||
Logger | ||
>, | ||
reply: Reply<Op, never, never, never, Path, ServiceSchema, RawServer, RawRequest, RawReply, Logger> & { | ||
@@ -358,4 +383,16 @@ readonly __unknownReply: unique symbol; | ||
SchemaCompiler = F.FastifySchema, | ||
TypeProvider extends F.FastifyTypeProvider = F.FastifyTypeProviderDefault, | ||
RequestType extends FastifyRequestType = ResolveFastifyRequestType<TypeProvider, SchemaCompiler, Router<Op>>, | ||
Logger extends F.FastifyLoggerInstance = F.FastifyLoggerInstance, | ||
> = F.RouteShorthandOptions<RawServer, RawRequest, RawReply, Router<Op>, ContextConfig, SchemaCompiler, Logger> & { | ||
> = F.RouteShorthandOptions< | ||
RawServer, | ||
RawRequest, | ||
RawReply, | ||
Router<Op>, | ||
ContextConfig, | ||
SchemaCompiler, | ||
TypeProvider, | ||
RequestType, | ||
Logger | ||
> & { | ||
handler: Handler<Op, Path, ServiceSchema, RawServer, RawRequest, RawReply, ContextConfig, Logger>; | ||
@@ -371,7 +408,32 @@ }; | ||
SchemaCompiler = F.FastifySchema, | ||
TypeProvider extends FastifyTypeProvider = FastifyTypeProviderDefault, | ||
Logger extends F.FastifyLoggerInstance = F.FastifyLoggerInstance, | ||
> = { | ||
[P in keyof S['paths']]: | ||
| Handler<S['paths'][P], P, S, RawServer, RawRequest, RawReply, ContextConfig, SchemaCompiler, Logger> | ||
| HandlerObj<S['paths'][P], P, S, RawServer, RawRequest, RawReply, ContextConfig, SchemaCompiler, Logger>; | ||
| Handler< | ||
S['paths'][P], | ||
P, | ||
S, | ||
RawServer, | ||
RawRequest, | ||
RawReply, | ||
ContextConfig, | ||
SchemaCompiler, | ||
TypeProvider, | ||
ResolveFastifyRequestType<TypeProvider, SchemaCompiler, Router<S['paths'][P]>>, | ||
Logger | ||
> | ||
| HandlerObj< | ||
S['paths'][P], | ||
P, | ||
S, | ||
RawServer, | ||
RawRequest, | ||
RawReply, | ||
ContextConfig, | ||
SchemaCompiler, | ||
TypeProvider, | ||
ResolveFastifyRequestType<TypeProvider, SchemaCompiler, Router<S['paths'][P]>>, | ||
Logger | ||
>; | ||
}; | ||
@@ -387,2 +449,3 @@ | ||
SchemaCompiler = F.FastifySchema, | ||
TypeProvider extends FastifyTypeProvider = FastifyTypeProviderDefault, | ||
Logger extends F.FastifyLoggerInstance = F.FastifyLoggerInstance, | ||
@@ -400,2 +463,5 @@ S = Service<ServiceSchema, RawServer, RawRequest, RawReply, Logger>, | ||
ContextConfig, | ||
SchemaCompiler, | ||
TypeProvider, | ||
ResolveFastifyRequestType<TypeProvider, SchemaCompiler, Router<Path extends keyof Paths ? Paths[Path] : never>>, | ||
Logger | ||
@@ -414,2 +480,4 @@ >; | ||
SchemaCompiler, | ||
TypeProvider, | ||
ResolveFastifyRequestType<TypeProvider, SchemaCompiler, Router<Path extends keyof Paths ? Paths[Path] : never>>, | ||
Logger | ||
@@ -422,3 +490,12 @@ >; | ||
AsFastifyRequest: Parameters<OpHandler>[0] extends F.FastifyRequest<any, any, any> | ||
? F.FastifyRequest<Router<Paths[keyof Paths]>, RawServer, RawRequest, ContextConfig, Logger> | ||
? F.FastifyRequest< | ||
Router<Paths[keyof Paths]>, | ||
RawServer, | ||
RawRequest, | ||
SchemaCompiler, | ||
TypeProvider, | ||
ContextConfig, | ||
ResolveFastifyRequestType<TypeProvider, SchemaCompiler, Router<Paths[keyof Paths]>>, | ||
Logger | ||
> | ||
: never; | ||
@@ -425,0 +502,0 @@ Reply: Parameters<OpHandler>[1]; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
89549
9.95%1031
11.7%