utils.d.ts — fastify Source File
Architecture documentation for utils.d.ts, a typescript file in the fastify codebase. 3 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR c3fb9a58_7985_6ffb_4306_4966379f0098["utils.d.ts"] bd94e3ff_2705_51a0_bac0_884f2c38b615["node:http"] c3fb9a58_7985_6ffb_4306_4966379f0098 --> bd94e3ff_2705_51a0_bac0_884f2c38b615 3e7d58ec_f92a_95db_e97c_fb49a00b5105["node:http2"] c3fb9a58_7985_6ffb_4306_4966379f0098 --> 3e7d58ec_f92a_95db_e97c_fb49a00b5105 663b99b5_576e_9407_ccf2_377b37f4ae0d["node:https"] c3fb9a58_7985_6ffb_4306_4966379f0098 --> 663b99b5_576e_9407_ccf2_377b37f4ae0d style c3fb9a58_7985_6ffb_4306_4966379f0098 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import * as http from 'node:http'
import * as http2 from 'node:http2'
import * as https from 'node:https'
type AutocompletePrimitiveBaseType<T> =
T extends string ? string :
T extends number ? number :
T extends boolean ? boolean :
never
export type Autocomplete<T> = T | (AutocompletePrimitiveBaseType<T> & Record<never, never>)
/**
* Standard HTTP method strings
* for internal use
*/
type _HTTPMethods = 'DELETE' | 'GET' | 'HEAD' | 'PATCH' | 'POST' | 'PUT' | 'OPTIONS' |
'PROPFIND' | 'PROPPATCH' | 'MKCOL' | 'COPY' | 'MOVE' | 'LOCK' | 'UNLOCK' | 'TRACE' | 'SEARCH' | 'REPORT' | 'MKCALENDAR'
export type HTTPMethods = Autocomplete<_HTTPMethods | Lowercase<_HTTPMethods>>
/**
* A union type of the Node.js server types from the http, https, and http2 modules.
*/
export type RawServerBase = http.Server | https.Server | http2.Http2Server | http2.Http2SecureServer
/**
* The default server type
*/
export type RawServerDefault = http.Server
/**
* The default request type based on the server type. Utilizes generic constraining.
*/
export type RawRequestDefaultExpression<
RawServer extends RawServerBase = RawServerDefault
> = RawServer extends http.Server | https.Server ? http.IncomingMessage
: RawServer extends http2.Http2Server | http2.Http2SecureServer ? http2.Http2ServerRequest
: never
/**
* The default reply type based on the server type. Utilizes generic constraining.
*/
export type RawReplyDefaultExpression<
RawServer extends RawServerBase = RawServerDefault
> = RawServer extends http.Server | https.Server ? http.ServerResponse
: RawServer extends http2.Http2Server | http2.Http2SecureServer ? http2.Http2ServerResponse
: never
export type RequestBodyDefault = unknown
export type RequestQuerystringDefault = unknown
export type RequestParamsDefault = unknown
export type RequestHeadersDefault = unknown
export type ContextConfigDefault = unknown
export type ReplyDefault = unknown
/**
* Helpers for determining the type of the response payload based on the code
*/
type StringAsNumber<T extends string> = T extends `${infer N extends number}` ? N : never
type CodeClasses = 1 | 2 | 3 | 4 | 5
type Digit = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
type HttpCodes = StringAsNumber<`${CodeClasses}${Digit}${Digit}`>
type HttpKeys = HttpCodes | `${Digit}xx`
export type StatusCodeReply = {
[Key in HttpKeys]?: unknown;
}
// weird TS quirk: https://stackoverflow.com/questions/58977876/generic-conditional-type-resolves-to-never-when-the-generic-type-is-set-to-never
export type ReplyKeysToCodes<Key> = [Key] extends [never] ? number :
Key extends HttpCodes ? Key :
Key extends `${infer X extends CodeClasses}xx` ?
StringAsNumber<`${X}${Digit}${Digit}`> : number
export type CodeToReplyKey<Code extends number> = `${Code}` extends `${infer FirstDigit extends CodeClasses}${number}`
? `${FirstDigit}xx`
: never
export type RecordKeysToLowercase<Input> = Input extends Record<string, unknown>
? {
[Key in keyof Input as Key extends string
? Lowercase<Key>
: Key
]: Input[Key];
}
: Input
type OmitIndexSignature<T> = {
[K in keyof T as string extends K ? never : number extends K ? never : K]: T[K];
}
/**
* HTTP header strings
* Use this type only for input values, not for output values.
*/
export type HttpHeader = keyof OmitIndexSignature<http.OutgoingHttpHeaders> | (string & Record<never, never>)
Types
- Autocomplete
- AutocompletePrimitiveBaseType
- CodeClasses
- CodeToReplyKey
- ContextConfigDefault
- Digit
- HTTPMethods
- HttpCodes
- HttpHeader
- HttpKeys
- OmitIndexSignature
- RawReplyDefaultExpression
- RawRequestDefaultExpression
- RawServerBase
- RawServerDefault
- RecordKeysToLowercase
- ReplyDefault
- ReplyKeysToCodes
- RequestBodyDefault
- RequestHeadersDefault
- RequestParamsDefault
- RequestQuerystringDefault
- StatusCodeReply
- StringAsNumber
- _HTTPMethods
Dependencies
- node:http
- node:http2
- node:https
Source
Frequently Asked Questions
What does utils.d.ts do?
utils.d.ts is a source file in the fastify codebase, written in typescript.
What does utils.d.ts depend on?
utils.d.ts imports 3 module(s): node:http, node:http2, node:https.
Where is utils.d.ts in the architecture?
utils.d.ts is located at types/utils.d.ts (directory: types).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free