@inversifyjs/http-fastify 4.6.0 → 4.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # @inversifyjs/http-fastify
2
2
 
3
+ ## 4.7.0
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated `InversifyFastifyHttpAdapter` to handle http2 scenarios
8
+ - Updated dependencies
9
+ - @inversifyjs/http-core@4.7.0
10
+
3
11
  ## 4.6.0
4
12
 
5
13
  ### Minor Changes
@@ -1,26 +1,31 @@
1
+ import http from 'node:http';
2
+ import http2 from 'node:http2';
1
3
  import { Readable } from 'node:stream';
2
4
  import { HttpStatusCode, InversifyHttpAdapter, RouterParams } from '@inversifyjs/http-core';
3
- import { FastifyInstance, FastifyReply, FastifyRequest } from 'fastify';
5
+ import { FastifyInstance, FastifyReply, FastifyRequest, RouteGenericInterface } from 'fastify';
4
6
  import { Container } from 'inversify';
5
7
  import { FastifyHttpAdapterOptions } from '../models/FastifyHttpAdapterOptions';
6
- export declare class InversifyFastifyHttpAdapter extends InversifyHttpAdapter<FastifyRequest, FastifyReply, () => void, void, FastifyHttpAdapterOptions> {
8
+ type InversifyFastifyRequest = FastifyRequest<RouteGenericInterface, http.Server | http2.Http2Server, http.IncomingMessage | http2.Http2ServerRequest>;
9
+ type InversifyFastifyReply = FastifyReply<RouteGenericInterface, http.Server | http2.Http2Server, http.IncomingMessage | http2.Http2ServerRequest, http.ServerResponse | http2.Http2ServerResponse>;
10
+ export declare class InversifyFastifyHttpAdapter extends InversifyHttpAdapter<InversifyFastifyRequest, InversifyFastifyReply, () => void, void, FastifyHttpAdapterOptions> {
7
11
  #private;
8
12
  constructor(container: Container, httpAdapterOptions?: FastifyHttpAdapterOptions, customApp?: FastifyInstance);
9
13
  build(): Promise<FastifyInstance>;
10
- protected _getBody(request: FastifyRequest, _response: FastifyReply, parameterName?: string): unknown;
11
- protected _getParams(request: FastifyRequest): Record<string, string>;
12
- protected _getParams(request: FastifyRequest, parameterName: string): string | undefined;
13
- protected _getQuery(request: FastifyRequest): Record<string, unknown>;
14
- protected _getQuery(request: FastifyRequest, parameterName: string): unknown;
15
- protected _getHeaders(request: FastifyRequest): Record<string, string | string[] | undefined>;
16
- protected _getHeaders(request: FastifyRequest, parameterName: string): string | string[] | undefined;
17
- protected _getCookies(request: FastifyRequest, _response: FastifyReply, parameterName?: string): unknown;
18
- protected _replyText(_request: FastifyRequest, response: FastifyReply, value: string): void;
19
- protected _replyJson(_request: FastifyRequest, response: FastifyReply, value?: object): void;
20
- protected _replyStream(_request: FastifyRequest, response: FastifyReply, value: Readable): Promise<void>;
21
- protected _sendBodySeparator(_request: FastifyRequest, response: FastifyReply): void;
22
- protected _setStatus(_request: FastifyRequest, response: FastifyReply, statusCode: HttpStatusCode): void;
23
- protected _setHeader(_request: FastifyRequest, response: FastifyReply, key: string, value: string): void;
24
- protected _buildRouter(routerParams: RouterParams<FastifyRequest, FastifyReply, () => void, void>): void;
14
+ protected _getBody(request: InversifyFastifyRequest, _response: InversifyFastifyReply, parameterName?: string): unknown;
15
+ protected _getParams(request: InversifyFastifyRequest): Record<string, string>;
16
+ protected _getParams(request: InversifyFastifyRequest, parameterName: string): string | undefined;
17
+ protected _getQuery(request: InversifyFastifyRequest): Record<string, unknown>;
18
+ protected _getQuery(request: InversifyFastifyRequest, parameterName: string): unknown;
19
+ protected _getHeaders(request: InversifyFastifyRequest): Record<string, string | string[] | undefined>;
20
+ protected _getHeaders(request: InversifyFastifyRequest, parameterName: string): string | string[] | undefined;
21
+ protected _getCookies(request: InversifyFastifyRequest, _response: InversifyFastifyReply, parameterName?: string): unknown;
22
+ protected _replyText(_request: InversifyFastifyRequest, response: InversifyFastifyReply, value: string): void;
23
+ protected _replyJson(_request: InversifyFastifyRequest, response: InversifyFastifyReply, value?: object): void;
24
+ protected _replyStream(_request: InversifyFastifyRequest, response: InversifyFastifyReply, value: Readable): Promise<void>;
25
+ protected _sendBodySeparator(_request: InversifyFastifyRequest, response: InversifyFastifyReply): void;
26
+ protected _setStatus(_request: InversifyFastifyRequest, response: InversifyFastifyReply, statusCode: HttpStatusCode): void;
27
+ protected _setHeader(_request: InversifyFastifyRequest, response: InversifyFastifyReply, key: string, value: string): void;
28
+ protected _buildRouter(routerParams: RouterParams<InversifyFastifyRequest, InversifyFastifyReply, () => void, void>): void;
25
29
  }
30
+ export {};
26
31
  //# sourceMappingURL=InversifyFastifyHttpAdapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InversifyFastifyHttpAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapter/InversifyFastifyHttpAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAKvC,OAAO,EAGL,cAAc,EACd,oBAAoB,EAIpB,YAAY,EACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEL,eAAe,EAEf,YAAY,EACZ,cAAc,EAEf,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAEhF,qBAAa,2BAA4B,SAAQ,oBAAoB,CACnE,cAAc,EACd,YAAY,EACZ,MAAM,IAAI,EACV,IAAI,EACJ,yBAAyB,CAC1B;;gBAIG,SAAS,EAAE,SAAS,EACpB,kBAAkB,CAAC,EAAE,yBAAyB,EAC9C,SAAS,CAAC,EAAE,eAAe;IAgBhB,KAAK,IAAI,OAAO,CAAC,eAAe,CAAC;IAM9C,SAAS,CAAC,QAAQ,CAChB,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,YAAY,EACvB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO;IAQV,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IACrE,SAAS,CAAC,UAAU,CAClB,OAAO,EAAE,cAAc,EACvB,aAAa,EAAE,MAAM,GACpB,MAAM,GAAG,SAAS;IASrB,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACrE,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO;IAU5E,SAAS,CAAC,WAAW,CACnB,OAAO,EAAE,cAAc,GACtB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;IAChD,SAAS,CAAC,WAAW,CACnB,OAAO,EAAE,cAAc,EACvB,aAAa,EAAE,MAAM,GACpB,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS;IAchC,SAAS,CAAC,WAAW,CACnB,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,YAAY,EACvB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO;IAMV,SAAS,CAAC,UAAU,CAClB,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,MAAM,GACZ,IAAI;IAIP,SAAS,CAAC,UAAU,CAClB,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,YAAY,EACtB,KAAK,CAAC,EAAE,MAAM,GACb,IAAI;cAIS,YAAY,CAC1B,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,QAAQ,GACd,OAAO,CAAC,IAAI,CAAC;IAIhB,SAAS,CAAC,kBAAkB,CAC1B,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,YAAY,GACrB,IAAI;IAmBP,SAAS,CAAC,UAAU,CAClB,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,cAAc,GACzB,IAAI;IAIP,SAAS,CAAC,UAAU,CAClB,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,YAAY,EACtB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GACZ,IAAI;IAIP,SAAS,CAAC,YAAY,CACpB,YAAY,EAAE,YAAY,CAAC,cAAc,EAAE,YAAY,EAAE,MAAM,IAAI,EAAE,IAAI,CAAC,GACzE,IAAI;CAkHR"}
1
+ {"version":3,"file":"InversifyFastifyHttpAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapter/InversifyFastifyHttpAdapter.ts"],"names":[],"mappings":"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"}
@@ -61,14 +61,27 @@ class InversifyFastifyHttpAdapter extends http_core_1.InversifyHttpAdapter {
61
61
  }
62
62
  _sendBodySeparator(_request, response) {
63
63
  // Set headers and status code if not already set
64
- response.raw.statusCode = response.statusCode;
65
64
  const responseHeaders = response.getHeaders();
66
- for (const [headerKey, headerValue] of Object.entries(responseHeaders)) {
67
- if (headerValue !== undefined) {
68
- response.raw.setHeader(headerKey, headerValue);
65
+ if ('stream' in response.raw) {
66
+ const headers = {
67
+ ':status': response.statusCode,
68
+ };
69
+ for (const [headerKey, headerValue] of Object.entries(responseHeaders)) {
70
+ if (headerValue !== undefined) {
71
+ headers[headerKey] = headerValue;
72
+ }
73
+ }
74
+ response.raw.stream.respond(headers, { endStream: false });
75
+ }
76
+ else {
77
+ response.raw.statusCode = response.statusCode;
78
+ for (const [headerKey, headerValue] of Object.entries(responseHeaders)) {
79
+ if (headerValue !== undefined) {
80
+ response.raw.setHeader(headerKey, headerValue);
81
+ }
69
82
  }
83
+ response.raw.flushHeaders();
70
84
  }
71
- response.raw.flushHeaders();
72
85
  }
73
86
  _setStatus(_request, response, statusCode) {
74
87
  response.status(statusCode);
@@ -1 +1 @@
1
- {"version":3,"file":"InversifyFastifyHttpAdapter.js","sourceRoot":"","sources":["../../../src/adapter/InversifyFastifyHttpAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InversifyFastifyHttpAdapter.js","sourceRoot":"","sources":["../../../src/adapter/InversifyFastifyHttpAdapter.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
+ import http from 'node:http';
2
+ import http2 from 'node:http2';
1
3
  import { Readable } from 'node:stream';
2
4
  import { HttpAdapterOptions, InversifyHttpAdapter, HttpStatusCode, RouterParams, ErrorFilter, Guard, Interceptor, Middleware } from '@inversifyjs/http-core';
3
- import { FastifyRequest, FastifyReply, FastifyInstance } from 'fastify';
5
+ import { FastifyRequest, RouteGenericInterface, FastifyReply, FastifyInstance } from 'fastify';
4
6
  import { Container } from 'inversify';
5
7
  import { FastifyMultipartAttachFieldsToBodyOptions, FastifyMultipartOptions } from '@fastify/multipart';
6
8
 
@@ -10,25 +12,27 @@ interface FastifyHttpAdapterOptions extends HttpAdapterOptions {
10
12
  useMultipartFormData?: boolean | FastifyMultipartAttachFieldsToBodyOptions | FastifyMultipartOptions;
11
13
  }
12
14
 
13
- declare class InversifyFastifyHttpAdapter extends InversifyHttpAdapter<FastifyRequest, FastifyReply, () => void, void, FastifyHttpAdapterOptions> {
15
+ type InversifyFastifyRequest = FastifyRequest<RouteGenericInterface, http.Server | http2.Http2Server, http.IncomingMessage | http2.Http2ServerRequest>;
16
+ type InversifyFastifyReply = FastifyReply<RouteGenericInterface, http.Server | http2.Http2Server, http.IncomingMessage | http2.Http2ServerRequest, http.ServerResponse | http2.Http2ServerResponse>;
17
+ declare class InversifyFastifyHttpAdapter extends InversifyHttpAdapter<InversifyFastifyRequest, InversifyFastifyReply, () => void, void, FastifyHttpAdapterOptions> {
14
18
  #private;
15
19
  constructor(container: Container, httpAdapterOptions?: FastifyHttpAdapterOptions, customApp?: FastifyInstance);
16
20
  build(): Promise<FastifyInstance>;
17
- protected _getBody(request: FastifyRequest, _response: FastifyReply, parameterName?: string): unknown;
18
- protected _getParams(request: FastifyRequest): Record<string, string>;
19
- protected _getParams(request: FastifyRequest, parameterName: string): string | undefined;
20
- protected _getQuery(request: FastifyRequest): Record<string, unknown>;
21
- protected _getQuery(request: FastifyRequest, parameterName: string): unknown;
22
- protected _getHeaders(request: FastifyRequest): Record<string, string | string[] | undefined>;
23
- protected _getHeaders(request: FastifyRequest, parameterName: string): string | string[] | undefined;
24
- protected _getCookies(request: FastifyRequest, _response: FastifyReply, parameterName?: string): unknown;
25
- protected _replyText(_request: FastifyRequest, response: FastifyReply, value: string): void;
26
- protected _replyJson(_request: FastifyRequest, response: FastifyReply, value?: object): void;
27
- protected _replyStream(_request: FastifyRequest, response: FastifyReply, value: Readable): Promise<void>;
28
- protected _sendBodySeparator(_request: FastifyRequest, response: FastifyReply): void;
29
- protected _setStatus(_request: FastifyRequest, response: FastifyReply, statusCode: HttpStatusCode): void;
30
- protected _setHeader(_request: FastifyRequest, response: FastifyReply, key: string, value: string): void;
31
- protected _buildRouter(routerParams: RouterParams<FastifyRequest, FastifyReply, () => void, void>): void;
21
+ protected _getBody(request: InversifyFastifyRequest, _response: InversifyFastifyReply, parameterName?: string): unknown;
22
+ protected _getParams(request: InversifyFastifyRequest): Record<string, string>;
23
+ protected _getParams(request: InversifyFastifyRequest, parameterName: string): string | undefined;
24
+ protected _getQuery(request: InversifyFastifyRequest): Record<string, unknown>;
25
+ protected _getQuery(request: InversifyFastifyRequest, parameterName: string): unknown;
26
+ protected _getHeaders(request: InversifyFastifyRequest): Record<string, string | string[] | undefined>;
27
+ protected _getHeaders(request: InversifyFastifyRequest, parameterName: string): string | string[] | undefined;
28
+ protected _getCookies(request: InversifyFastifyRequest, _response: InversifyFastifyReply, parameterName?: string): unknown;
29
+ protected _replyText(_request: InversifyFastifyRequest, response: InversifyFastifyReply, value: string): void;
30
+ protected _replyJson(_request: InversifyFastifyRequest, response: InversifyFastifyReply, value?: object): void;
31
+ protected _replyStream(_request: InversifyFastifyRequest, response: InversifyFastifyReply, value: Readable): Promise<void>;
32
+ protected _sendBodySeparator(_request: InversifyFastifyRequest, response: InversifyFastifyReply): void;
33
+ protected _setStatus(_request: InversifyFastifyRequest, response: InversifyFastifyReply, statusCode: HttpStatusCode): void;
34
+ protected _setHeader(_request: InversifyFastifyRequest, response: InversifyFastifyReply, key: string, value: string): void;
35
+ protected _buildRouter(routerParams: RouterParams<InversifyFastifyRequest, InversifyFastifyReply, () => void, void>): void;
32
36
  }
33
37
 
34
38
  type FastifyErrorFilter<TError = unknown> = ErrorFilter<TError, FastifyRequest, FastifyReply, void>;
package/lib/esm/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import t from"@fastify/cookie";import e from"@fastify/formbody";import r from"@fastify/multipart";import{InversifyHttpAdapter as s,RequestMethodParameterType as a,buildNormalizedPath as i,handleMiddlewareList as p,RequestMethodType as o}from"@inversifyjs/http-core";import{fastify as d}from"fastify";class u extends s{#t;constructor(t,e,r){super(t,{logger:!0,useCookies:!1,useFormUrlEncoded:!1,useMultipartFormData:!1},e,[a.Body]),this.#t=this.#e(r)}async build(){return await this._buildServer(),this.#t}_getBody(t,e,r){return!1!==this.httpAdapterOptions.useMultipartFormData?this.#r(t,r):this.#s(t,r)}_getParams(t,e){return void 0===e?t.params:t.params[e]}_getQuery(t,e){return void 0===e?t.query:t.query[e]}_getHeaders(t,e){return void 0===e?t.headers:t.headers[e]}_getCookies(t,e,r){return void 0===r?t.cookies:t.cookies[r]}_replyText(t,e,r){e.send(r)}_replyJson(t,e,r){e.send(r)}async _replyStream(t,e,r){await e.send(r)}_sendBodySeparator(t,e){e.raw.statusCode=e.statusCode;const r=e.getHeaders();for(const[t,s]of Object.entries(r))void 0!==s&&e.raw.setHeader(t,s);e.raw.flushHeaders()}_setStatus(t,e,r){e.status(r)}_setHeader(t,e,r,s){e.header(r,s)}_buildRouter(t){for(const e of t.routeParamsList){const r=[...e.preHandlerMiddlewareList,...e.guardList,e.handler,...e.postHandlerMiddlewareList],s=i(`${t.path}${e.path}`),a=p(r),o=async(t,e)=>{await a(t,e)};this.#a(e.requestMethodType)(s,o)}}#e(s){const a=s??d();return this.httpAdapterOptions.useCookies&&a.register(t),this.httpAdapterOptions.useFormUrlEncoded&&a.register(e),!1!==this.httpAdapterOptions.useMultipartFormData&&(!0===this.httpAdapterOptions.useMultipartFormData?a.register(r):a.register(r,this.httpAdapterOptions.useMultipartFormData)),a}#a(t){switch(t){case o.All:return this.#t.all.bind(this.#t);case o.Delete:return this.#t.delete.bind(this.#t);case o.Get:return this.#t.get.bind(this.#t);case o.Head:return this.#t.head.bind(this.#t);case o.Options:return this.#t.options.bind(this.#t);case o.Patch:return this.#t.patch.bind(this.#t);case o.Post:return this.#t.post.bind(this.#t);case o.Put:return this.#t.put.bind(this.#t)}}#r(t,e){if(t.isMultipart()){if(void 0===e)return t.parts();throw new Error("Cannot get multipart form data body with a specific parameter name.")}return this.#s(t,e)}#s(t,e){return void 0===e?t.body:t.body[e]}}export{u as InversifyFastifyHttpAdapter};
1
+ import t from"@fastify/cookie";import e from"@fastify/formbody";import r from"@fastify/multipart";import{InversifyHttpAdapter as s,RequestMethodParameterType as a,buildNormalizedPath as i,handleMiddlewareList as p,RequestMethodType as o}from"@inversifyjs/http-core";import{fastify as d}from"fastify";class u extends s{#t;constructor(t,e,r){super(t,{logger:!0,useCookies:!1,useFormUrlEncoded:!1,useMultipartFormData:!1},e,[a.Body]),this.#t=this.#e(r)}async build(){return await this._buildServer(),this.#t}_getBody(t,e,r){return!1!==this.httpAdapterOptions.useMultipartFormData?this.#r(t,r):this.#s(t,r)}_getParams(t,e){return void 0===e?t.params:t.params[e]}_getQuery(t,e){return void 0===e?t.query:t.query[e]}_getHeaders(t,e){return void 0===e?t.headers:t.headers[e]}_getCookies(t,e,r){return void 0===r?t.cookies:t.cookies[r]}_replyText(t,e,r){e.send(r)}_replyJson(t,e,r){e.send(r)}async _replyStream(t,e,r){await e.send(r)}_sendBodySeparator(t,e){const r=e.getHeaders();if("stream"in e.raw){const t={":status":e.statusCode};for(const[e,s]of Object.entries(r))void 0!==s&&(t[e]=s);e.raw.stream.respond(t,{endStream:!1})}else{e.raw.statusCode=e.statusCode;for(const[t,s]of Object.entries(r))void 0!==s&&e.raw.setHeader(t,s);e.raw.flushHeaders()}}_setStatus(t,e,r){e.status(r)}_setHeader(t,e,r,s){e.header(r,s)}_buildRouter(t){for(const e of t.routeParamsList){const r=[...e.preHandlerMiddlewareList,...e.guardList,e.handler,...e.postHandlerMiddlewareList],s=i(`${t.path}${e.path}`),a=p(r),o=async(t,e)=>{await a(t,e)};this.#a(e.requestMethodType)(s,o)}}#e(s){const a=s??d();return this.httpAdapterOptions.useCookies&&a.register(t),this.httpAdapterOptions.useFormUrlEncoded&&a.register(e),!1!==this.httpAdapterOptions.useMultipartFormData&&(!0===this.httpAdapterOptions.useMultipartFormData?a.register(r):a.register(r,this.httpAdapterOptions.useMultipartFormData)),a}#a(t){switch(t){case o.All:return this.#t.all.bind(this.#t);case o.Delete:return this.#t.delete.bind(this.#t);case o.Get:return this.#t.get.bind(this.#t);case o.Head:return this.#t.head.bind(this.#t);case o.Options:return this.#t.options.bind(this.#t);case o.Patch:return this.#t.patch.bind(this.#t);case o.Post:return this.#t.post.bind(this.#t);case o.Put:return this.#t.put.bind(this.#t)}}#r(t,e){if(t.isMultipart()){if(void 0===e)return t.parts();throw new Error("Cannot get multipart form data body with a specific parameter name.")}return this.#s(t,e)}#s(t,e){return void 0===e?t.body:t.body[e]}}export{u as InversifyFastifyHttpAdapter};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/adapter/InversifyFastifyHttpAdapter.ts"],"sourcesContent":[null],"names":["InversifyFastifyHttpAdapter","InversifyHttpAdapter","app","constructor","container","httpAdapterOptions","customApp","super","logger","useCookies","useFormUrlEncoded","useMultipartFormData","RequestMethodParameterType","Body","this","buildDefaultFastifyApp","build","_buildServer","_getBody","request","_response","parameterName","getMultipartRequestBody","getRequestBody","_getParams","undefined","params","_getQuery","query","_getHeaders","headers","_getCookies","cookies","_replyText","_request","response","value","send","_replyJson","_replyStream","_sendBodySeparator","raw","statusCode","responseHeaders","getHeaders","headerKey","headerValue","Object","entries","setHeader","flushHeaders","_setStatus","status","_setHeader","key","header","_buildRouter","routerParams","routeParams","routeParamsList","orderedHandlers","preHandlerMiddlewareList","guardList","handler","postHandlerMiddlewareList","normalizedPath","buildNormalizedPath","path","handleMiddlewares","handleMiddlewareList","fastifyHandler","async","reply","getAppRouteHandler","requestMethodType","fastify","register","cookie","fastifyFormbody","fastifyMultipart","RequestMethodType","All","all","bind","Delete","delete","Get","get","Head","head","Options","options","Patch","patch","Post","post","Put","put","isMultipart","parts","Error","body"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/adapter/InversifyFastifyHttpAdapter.ts"],"sourcesContent":[null],"names":["InversifyFastifyHttpAdapter","InversifyHttpAdapter","app","constructor","container","httpAdapterOptions","customApp","super","logger","useCookies","useFormUrlEncoded","useMultipartFormData","RequestMethodParameterType","Body","this","buildDefaultFastifyApp","build","_buildServer","_getBody","request","_response","parameterName","getMultipartRequestBody","getRequestBody","_getParams","undefined","params","_getQuery","query","_getHeaders","headers","_getCookies","cookies","_replyText","_request","response","value","send","_replyJson","_replyStream","_sendBodySeparator","responseHeaders","getHeaders","raw","statusCode","headerKey","headerValue","Object","entries","stream","respond","endStream","setHeader","flushHeaders","_setStatus","status","_setHeader","key","header","_buildRouter","routerParams","routeParams","routeParamsList","orderedHandlers","preHandlerMiddlewareList","guardList","handler","postHandlerMiddlewareList","normalizedPath","buildNormalizedPath","path","handleMiddlewares","handleMiddlewareList","fastifyHandler","async","reply","getAppRouteHandler","requestMethodType","fastify","register","cookie","fastifyFormbody","fastifyMultipart","RequestMethodType","All","all","bind","Delete","delete","Get","get","Head","head","Options","options","Patch","patch","Post","post","Put","put","isMultipart","parts","Error","body"],"mappings":"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"}
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "@fastify/cookie": "11.0.2",
9
9
  "@fastify/formbody": "8.0.2",
10
10
  "@fastify/multipart": "9.3.0",
11
- "@inversifyjs/http-core": "4.6.0"
11
+ "@inversifyjs/http-core": "4.7.0"
12
12
  },
13
13
  "devDependencies": {
14
14
  "@stryker-mutator/core": "9.4.0",
@@ -17,7 +17,7 @@
17
17
  "@types/node": "24.10.1",
18
18
  "@vitest/coverage-v8": "4.0.10",
19
19
  "eslint": "9.39.1",
20
- "prettier": "3.6.2",
20
+ "prettier": "3.7.3",
21
21
  "rimraf": "6.1.2",
22
22
  "rollup": "4.53.3",
23
23
  "ts-loader": "9.5.4",
@@ -61,7 +61,7 @@
61
61
  "type": "git",
62
62
  "url": "git+https://github.com/inversify/monorepo.git"
63
63
  },
64
- "version": "4.6.0",
64
+ "version": "4.7.0",
65
65
  "scripts": {
66
66
  "build": "pnpm run build:cjs && pnpm run build:esm",
67
67
  "build:cjs": "tsc --build tsconfig.cjs.json && pnpm exec foundation-ts-package-cjs ./lib/cjs",