@inversifyjs/http-fastify 4.6.0 → 4.8.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 +20 -0
- package/lib/cjs/adapter/InversifyFastifyHttpAdapter.d.ts +23 -17
- package/lib/cjs/adapter/InversifyFastifyHttpAdapter.d.ts.map +1 -1
- package/lib/cjs/adapter/InversifyFastifyHttpAdapter.js +20 -5
- package/lib/cjs/adapter/InversifyFastifyHttpAdapter.js.map +1 -1
- package/lib/esm/index.d.ts +22 -17
- package/lib/esm/index.js +1 -1
- package/lib/esm/index.js.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# @inversifyjs/http-fastify
|
|
2
2
|
|
|
3
|
+
## 4.8.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Updated adapter with `id` property
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies
|
|
12
|
+
- @inversifyjs/http-core@4.8.0
|
|
13
|
+
- inversify@7.10.5
|
|
14
|
+
|
|
15
|
+
## 4.7.0
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- Updated `InversifyFastifyHttpAdapter` to handle http2 scenarios
|
|
20
|
+
- Updated dependencies
|
|
21
|
+
- @inversifyjs/http-core@4.7.0
|
|
22
|
+
|
|
3
23
|
## 4.6.0
|
|
4
24
|
|
|
5
25
|
### Minor Changes
|
|
@@ -1,26 +1,32 @@
|
|
|
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;
|
|
12
|
+
readonly id: symbol;
|
|
8
13
|
constructor(container: Container, httpAdapterOptions?: FastifyHttpAdapterOptions, customApp?: FastifyInstance);
|
|
9
14
|
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 _sendBodySeparator(_request:
|
|
22
|
-
protected _setStatus(_request:
|
|
23
|
-
protected _setHeader(_request:
|
|
24
|
-
protected _buildRouter(routerParams: RouterParams<
|
|
15
|
+
protected _getBody(request: InversifyFastifyRequest, _response: InversifyFastifyReply, parameterName?: string): unknown;
|
|
16
|
+
protected _getParams(request: InversifyFastifyRequest): Record<string, string>;
|
|
17
|
+
protected _getParams(request: InversifyFastifyRequest, parameterName: string): string | undefined;
|
|
18
|
+
protected _getQuery(request: InversifyFastifyRequest): Record<string, unknown>;
|
|
19
|
+
protected _getQuery(request: InversifyFastifyRequest, parameterName: string): unknown;
|
|
20
|
+
protected _getHeaders(request: InversifyFastifyRequest): Record<string, string | string[] | undefined>;
|
|
21
|
+
protected _getHeaders(request: InversifyFastifyRequest, parameterName: string): string | string[] | undefined;
|
|
22
|
+
protected _getCookies(request: InversifyFastifyRequest, _response: InversifyFastifyReply, parameterName?: string): unknown;
|
|
23
|
+
protected _replyText(_request: InversifyFastifyRequest, response: InversifyFastifyReply, value: string): void;
|
|
24
|
+
protected _replyJson(_request: InversifyFastifyRequest, response: InversifyFastifyReply, value?: object): void;
|
|
25
|
+
protected _replyStream(_request: InversifyFastifyRequest, response: InversifyFastifyReply, value: Readable): Promise<void>;
|
|
26
|
+
protected _sendBodySeparator(_request: InversifyFastifyRequest, response: InversifyFastifyReply): void;
|
|
27
|
+
protected _setStatus(_request: InversifyFastifyRequest, response: InversifyFastifyReply, statusCode: HttpStatusCode): void;
|
|
28
|
+
protected _setHeader(_request: InversifyFastifyRequest, response: InversifyFastifyReply, key: string, value: string): void;
|
|
29
|
+
protected _buildRouter(routerParams: RouterParams<InversifyFastifyRequest, InversifyFastifyReply, () => void, void>): void;
|
|
25
30
|
}
|
|
31
|
+
export {};
|
|
26
32
|
//# 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":"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"}
|
|
@@ -7,7 +7,9 @@ const formbody_1 = tslib_1.__importDefault(require("@fastify/formbody"));
|
|
|
7
7
|
const multipart_1 = tslib_1.__importDefault(require("@fastify/multipart"));
|
|
8
8
|
const http_core_1 = require("@inversifyjs/http-core");
|
|
9
9
|
const fastify_1 = require("fastify");
|
|
10
|
+
const ADAPTER_ID = Symbol.for('@inversifyjs/http-fastify/InversifyFastifyHttpAdapter');
|
|
10
11
|
class InversifyFastifyHttpAdapter extends http_core_1.InversifyHttpAdapter {
|
|
12
|
+
id = ADAPTER_ID;
|
|
11
13
|
#app;
|
|
12
14
|
constructor(container, httpAdapterOptions, customApp) {
|
|
13
15
|
super(container, {
|
|
@@ -61,14 +63,27 @@ class InversifyFastifyHttpAdapter extends http_core_1.InversifyHttpAdapter {
|
|
|
61
63
|
}
|
|
62
64
|
_sendBodySeparator(_request, response) {
|
|
63
65
|
// Set headers and status code if not already set
|
|
64
|
-
response.raw.statusCode = response.statusCode;
|
|
65
66
|
const responseHeaders = response.getHeaders();
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
response.
|
|
67
|
+
if ('stream' in response.raw) {
|
|
68
|
+
const headers = {
|
|
69
|
+
':status': response.statusCode,
|
|
70
|
+
};
|
|
71
|
+
for (const [headerKey, headerValue] of Object.entries(responseHeaders)) {
|
|
72
|
+
if (headerValue !== undefined) {
|
|
73
|
+
headers[headerKey] = headerValue;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
response.raw.stream.respond(headers, { endStream: false });
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
response.raw.statusCode = response.statusCode;
|
|
80
|
+
for (const [headerKey, headerValue] of Object.entries(responseHeaders)) {
|
|
81
|
+
if (headerValue !== undefined) {
|
|
82
|
+
response.raw.setHeader(headerKey, headerValue);
|
|
83
|
+
}
|
|
69
84
|
}
|
|
85
|
+
response.raw.flushHeaders();
|
|
70
86
|
}
|
|
71
|
-
response.raw.flushHeaders();
|
|
72
87
|
}
|
|
73
88
|
_setStatus(_request, response, statusCode) {
|
|
74
89
|
response.status(statusCode);
|
|
@@ -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,25 +12,28 @@ 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;
|
|
19
|
+
readonly id: symbol;
|
|
15
20
|
constructor(container: Container, httpAdapterOptions?: FastifyHttpAdapterOptions, customApp?: FastifyInstance);
|
|
16
21
|
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 _sendBodySeparator(_request:
|
|
29
|
-
protected _setStatus(_request:
|
|
30
|
-
protected _setHeader(_request:
|
|
31
|
-
protected _buildRouter(routerParams: RouterParams<
|
|
22
|
+
protected _getBody(request: InversifyFastifyRequest, _response: InversifyFastifyReply, parameterName?: string): unknown;
|
|
23
|
+
protected _getParams(request: InversifyFastifyRequest): Record<string, string>;
|
|
24
|
+
protected _getParams(request: InversifyFastifyRequest, parameterName: string): string | undefined;
|
|
25
|
+
protected _getQuery(request: InversifyFastifyRequest): Record<string, unknown>;
|
|
26
|
+
protected _getQuery(request: InversifyFastifyRequest, parameterName: string): unknown;
|
|
27
|
+
protected _getHeaders(request: InversifyFastifyRequest): Record<string, string | string[] | undefined>;
|
|
28
|
+
protected _getHeaders(request: InversifyFastifyRequest, parameterName: string): string | string[] | undefined;
|
|
29
|
+
protected _getCookies(request: InversifyFastifyRequest, _response: InversifyFastifyReply, parameterName?: string): unknown;
|
|
30
|
+
protected _replyText(_request: InversifyFastifyRequest, response: InversifyFastifyReply, value: string): void;
|
|
31
|
+
protected _replyJson(_request: InversifyFastifyRequest, response: InversifyFastifyReply, value?: object): void;
|
|
32
|
+
protected _replyStream(_request: InversifyFastifyRequest, response: InversifyFastifyReply, value: Readable): Promise<void>;
|
|
33
|
+
protected _sendBodySeparator(_request: InversifyFastifyRequest, response: InversifyFastifyReply): void;
|
|
34
|
+
protected _setStatus(_request: InversifyFastifyRequest, response: InversifyFastifyReply, statusCode: HttpStatusCode): void;
|
|
35
|
+
protected _setHeader(_request: InversifyFastifyRequest, response: InversifyFastifyReply, key: string, value: string): void;
|
|
36
|
+
protected _buildRouter(routerParams: RouterParams<InversifyFastifyRequest, InversifyFastifyReply, () => void, void>): void;
|
|
32
37
|
}
|
|
33
38
|
|
|
34
39
|
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{
|
|
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";const n=Symbol.for("@inversifyjs/http-fastify/InversifyFastifyHttpAdapter");class u extends s{id=n;#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","_sendBodySeparator","
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/adapter/InversifyFastifyHttpAdapter.ts"],"sourcesContent":[null],"names":["ADAPTER_ID","Symbol","for","InversifyFastifyHttpAdapter","InversifyHttpAdapter","id","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.
|
|
11
|
+
"@inversifyjs/http-core": "4.8.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.
|
|
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.8.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",
|