@inversifyjs/http-fastify 4.5.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 +21 -0
- package/lib/cjs/adapter/InversifyFastifyHttpAdapter.d.ts +22 -16
- package/lib/cjs/adapter/InversifyFastifyHttpAdapter.d.ts.map +1 -1
- package/lib/cjs/adapter/InversifyFastifyHttpAdapter.js +24 -0
- package/lib/cjs/adapter/InversifyFastifyHttpAdapter.js.map +1 -1
- package/lib/esm/index.d.ts +21 -16
- package/lib/esm/index.js +1 -1
- package/lib/esm/index.js.map +1 -1
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
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
|
+
|
|
11
|
+
## 4.6.0
|
|
12
|
+
|
|
13
|
+
### Minor Changes
|
|
14
|
+
|
|
15
|
+
- Updated HTTP adapter with `_sendBodySeparator`
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
Add support for custom native parameter decorators
|
|
20
|
+
|
|
21
|
+
- Updated dependencies
|
|
22
|
+
- @inversifyjs/http-core@4.6.0
|
|
23
|
+
|
|
3
24
|
## 4.5.0
|
|
4
25
|
|
|
5
26
|
### Patch Changes
|
|
@@ -1,25 +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
|
-
|
|
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:
|
|
11
|
-
protected _getParams(request:
|
|
12
|
-
protected _getParams(request:
|
|
13
|
-
protected _getQuery(request:
|
|
14
|
-
protected _getQuery(request:
|
|
15
|
-
protected _getHeaders(request:
|
|
16
|
-
protected _getHeaders(request:
|
|
17
|
-
protected _getCookies(request:
|
|
18
|
-
protected _replyText(_request:
|
|
19
|
-
protected _replyJson(_request:
|
|
20
|
-
protected _replyStream(_request:
|
|
21
|
-
protected
|
|
22
|
-
protected
|
|
23
|
-
protected
|
|
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;
|
|
24
29
|
}
|
|
30
|
+
export {};
|
|
25
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,
|
|
1
|
+
{"version":3,"file":"InversifyFastifyHttpAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapter/InversifyFastifyHttpAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,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,EACd,qBAAqB,EAEtB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAEhF,KAAK,uBAAuB,GAAG,cAAc,CAC3C,qBAAqB,EACrB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,WAAW,EAC/B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,kBAAkB,CAChD,CAAC;AAEF,KAAK,qBAAqB,GAAG,YAAY,CACvC,qBAAqB,EACrB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,WAAW,EAC/B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,kBAAkB,EAC/C,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,mBAAmB,CAChD,CAAC;AAEF,qBAAa,2BAA4B,SAAQ,oBAAoB,CACnE,uBAAuB,EACvB,qBAAqB,EACrB,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,uBAAuB,EAChC,SAAS,EAAE,qBAAqB,EAChC,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO;IAQV,SAAS,CAAC,UAAU,CAClB,OAAO,EAAE,uBAAuB,GAC/B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,UAAU,CAClB,OAAO,EAAE,uBAAuB,EAChC,aAAa,EAAE,MAAM,GACpB,MAAM,GAAG,SAAS;IASrB,SAAS,CAAC,SAAS,CACjB,OAAO,EAAE,uBAAuB,GAC/B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,SAAS,CACjB,OAAO,EAAE,uBAAuB,EAChC,aAAa,EAAE,MAAM,GACpB,OAAO;IAUV,SAAS,CAAC,WAAW,CACnB,OAAO,EAAE,uBAAuB,GAC/B,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;IAChD,SAAS,CAAC,WAAW,CACnB,OAAO,EAAE,uBAAuB,EAChC,aAAa,EAAE,MAAM,GACpB,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS;IAchC,SAAS,CAAC,WAAW,CACnB,OAAO,EAAE,uBAAuB,EAChC,SAAS,EAAE,qBAAqB,EAChC,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO;IAMV,SAAS,CAAC,UAAU,CAClB,QAAQ,EAAE,uBAAuB,EACjC,QAAQ,EAAE,qBAAqB,EAC/B,KAAK,EAAE,MAAM,GACZ,IAAI;IAIP,SAAS,CAAC,UAAU,CAClB,QAAQ,EAAE,uBAAuB,EACjC,QAAQ,EAAE,qBAAqB,EAC/B,KAAK,CAAC,EAAE,MAAM,GACb,IAAI;cAIS,YAAY,CAC1B,QAAQ,EAAE,uBAAuB,EACjC,QAAQ,EAAE,qBAAqB,EAC/B,KAAK,EAAE,QAAQ,GACd,OAAO,CAAC,IAAI,CAAC;IAIhB,SAAS,CAAC,kBAAkB,CAC1B,QAAQ,EAAE,uBAAuB,EACjC,QAAQ,EAAE,qBAAqB,GAC9B,IAAI;IAiCP,SAAS,CAAC,UAAU,CAClB,QAAQ,EAAE,uBAAuB,EACjC,QAAQ,EAAE,qBAAqB,EAC/B,UAAU,EAAE,cAAc,GACzB,IAAI;IAIP,SAAS,CAAC,UAAU,CAClB,QAAQ,EAAE,uBAAuB,EACjC,QAAQ,EAAE,qBAAqB,EAC/B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GACZ,IAAI;IAIP,SAAS,CAAC,YAAY,CACpB,YAAY,EAAE,YAAY,CACxB,uBAAuB,EACvB,qBAAqB,EACrB,MAAM,IAAI,EACV,IAAI,CACL,GACA,IAAI;CAkHR"}
|
|
@@ -59,6 +59,30 @@ class InversifyFastifyHttpAdapter extends http_core_1.InversifyHttpAdapter {
|
|
|
59
59
|
async _replyStream(_request, response, value) {
|
|
60
60
|
await response.send(value);
|
|
61
61
|
}
|
|
62
|
+
_sendBodySeparator(_request, response) {
|
|
63
|
+
// Set headers and status code if not already set
|
|
64
|
+
const responseHeaders = response.getHeaders();
|
|
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
|
+
}
|
|
82
|
+
}
|
|
83
|
+
response.raw.flushHeaders();
|
|
84
|
+
}
|
|
85
|
+
}
|
|
62
86
|
_setStatus(_request, response, statusCode) {
|
|
63
87
|
response.status(statusCode);
|
|
64
88
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InversifyFastifyHttpAdapter.js","sourceRoot":"","sources":["../../../src/adapter/InversifyFastifyHttpAdapter.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"InversifyFastifyHttpAdapter.js","sourceRoot":"","sources":["../../../src/adapter/InversifyFastifyHttpAdapter.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/index.d.ts
CHANGED
|
@@ -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,24 +12,27 @@ interface FastifyHttpAdapterOptions extends HttpAdapterOptions {
|
|
|
10
12
|
useMultipartFormData?: boolean | FastifyMultipartAttachFieldsToBodyOptions | FastifyMultipartOptions;
|
|
11
13
|
}
|
|
12
14
|
|
|
13
|
-
|
|
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:
|
|
18
|
-
protected _getParams(request:
|
|
19
|
-
protected _getParams(request:
|
|
20
|
-
protected _getQuery(request:
|
|
21
|
-
protected _getQuery(request:
|
|
22
|
-
protected _getHeaders(request:
|
|
23
|
-
protected _getHeaders(request:
|
|
24
|
-
protected _getCookies(request:
|
|
25
|
-
protected _replyText(_request:
|
|
26
|
-
protected _replyJson(_request:
|
|
27
|
-
protected _replyStream(_request:
|
|
28
|
-
protected
|
|
29
|
-
protected
|
|
30
|
-
protected
|
|
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;
|
|
31
36
|
}
|
|
32
37
|
|
|
33
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)}_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
|
package/lib/esm/index.js.map
CHANGED
|
@@ -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","
|
|
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,16 +8,16 @@
|
|
|
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.
|
|
11
|
+
"@inversifyjs/http-core": "4.7.0"
|
|
12
12
|
},
|
|
13
13
|
"devDependencies": {
|
|
14
|
-
"@stryker-mutator/core": "9.
|
|
15
|
-
"@stryker-mutator/typescript-checker": "9.
|
|
16
|
-
"@stryker-mutator/vitest-runner": "9.
|
|
14
|
+
"@stryker-mutator/core": "9.4.0",
|
|
15
|
+
"@stryker-mutator/typescript-checker": "9.4.0",
|
|
16
|
+
"@stryker-mutator/vitest-runner": "9.4.0",
|
|
17
17
|
"@types/node": "24.10.1",
|
|
18
18
|
"@vitest/coverage-v8": "4.0.10",
|
|
19
19
|
"eslint": "9.39.1",
|
|
20
|
-
"prettier": "3.
|
|
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.
|
|
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",
|