@inversifyjs/http-fastify 4.2.0 → 4.3.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 +12 -0
- package/lib/cjs/adapter/InversifyFastifyHttpAdapter.d.ts.map +1 -1
- package/lib/cjs/adapter/InversifyFastifyHttpAdapter.js +49 -16
- package/lib/cjs/adapter/InversifyFastifyHttpAdapter.js.map +1 -1
- package/lib/cjs/models/FastifyHttpAdapterOptions.d.ts +2 -0
- package/lib/cjs/models/FastifyHttpAdapterOptions.d.ts.map +1 -1
- package/lib/esm/index.d.ts +2 -0
- package/lib/esm/index.js +1 -1
- package/lib/esm/index.js.map +1 -1
- package/package.json +6 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @inversifyjs/http-fastify
|
|
2
2
|
|
|
3
|
+
## 4.3.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Updated `InversifyFastifyHttpAdapter` to handle multipart form data
|
|
8
|
+
- Updated `FastifyHttpAdapterOptions` with `useMultipartFormData`
|
|
9
|
+
|
|
10
|
+
### Patch Changes
|
|
11
|
+
|
|
12
|
+
- Updated dependencies
|
|
13
|
+
- @inversifyjs/http-core@4.3.0
|
|
14
|
+
|
|
3
15
|
## 4.2.0
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
|
@@ -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;
|
|
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,EACL,cAAc,EACd,oBAAoB,EAKpB,YAAY,EACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEL,eAAe,EAEf,YAAY,EACZ,cAAc,EACd,uBAAuB,EAKxB,MAAM,SAAS,CAAC;AACjB,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,uBAAuB,EACvB,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,CAClB,OAAO,EAAE,cAAc,EACvB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO;IAKV,SAAS,CAAC,SAAS,CACjB,OAAO,EAAE,cAAc,EACvB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO;IAMV,SAAS,CAAC,WAAW,CACnB,OAAO,EAAE,cAAc,EACvB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO;IAMV,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,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,CACxB,cAAc,EACd,YAAY,EACZ,uBAAuB,EACvB,IAAI,CACL,GACA,IAAI;CA8NR"}
|
|
@@ -4,12 +4,18 @@ exports.InversifyFastifyHttpAdapter = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const cookie_1 = tslib_1.__importDefault(require("@fastify/cookie"));
|
|
6
6
|
const formbody_1 = tslib_1.__importDefault(require("@fastify/formbody"));
|
|
7
|
+
const multipart_1 = tslib_1.__importDefault(require("@fastify/multipart"));
|
|
7
8
|
const http_core_1 = require("@inversifyjs/http-core");
|
|
8
9
|
const fastify_1 = require("fastify");
|
|
9
10
|
class InversifyFastifyHttpAdapter extends http_core_1.InversifyHttpAdapter {
|
|
10
11
|
#app;
|
|
11
12
|
constructor(container, httpAdapterOptions, customApp) {
|
|
12
|
-
super(container, {
|
|
13
|
+
super(container, {
|
|
14
|
+
logger: true,
|
|
15
|
+
useCookies: false,
|
|
16
|
+
useFormUrlEncoded: false,
|
|
17
|
+
useMultipartFormData: false,
|
|
18
|
+
}, httpAdapterOptions, [http_core_1.RequestMethodParameterType.Body]);
|
|
13
19
|
this.#app = this.#buildDefaultFastifyApp(customApp);
|
|
14
20
|
}
|
|
15
21
|
async build() {
|
|
@@ -17,29 +23,32 @@ class InversifyFastifyHttpAdapter extends http_core_1.InversifyHttpAdapter {
|
|
|
17
23
|
return this.#app;
|
|
18
24
|
}
|
|
19
25
|
_getBody(request, _response, parameterName) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
26
|
+
if (this.httpAdapterOptions.useMultipartFormData !== false) {
|
|
27
|
+
return this.#getMultipartRequestBody(request, parameterName);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
return this.#getRequestBody(request, parameterName);
|
|
31
|
+
}
|
|
23
32
|
}
|
|
24
33
|
_getParams(request, parameterName) {
|
|
25
|
-
return parameterName
|
|
26
|
-
? request.params
|
|
27
|
-
: request.params;
|
|
34
|
+
return parameterName === undefined
|
|
35
|
+
? request.params
|
|
36
|
+
: request.params[parameterName];
|
|
28
37
|
}
|
|
29
38
|
_getQuery(request, parameterName) {
|
|
30
|
-
return parameterName
|
|
31
|
-
? request.query
|
|
32
|
-
: request.query;
|
|
39
|
+
return parameterName === undefined
|
|
40
|
+
? request.query
|
|
41
|
+
: request.query[parameterName];
|
|
33
42
|
}
|
|
34
43
|
_getHeaders(request, parameterName) {
|
|
35
|
-
return parameterName
|
|
36
|
-
? request.headers
|
|
37
|
-
: request.headers;
|
|
44
|
+
return parameterName === undefined
|
|
45
|
+
? request.headers
|
|
46
|
+
: request.headers[parameterName];
|
|
38
47
|
}
|
|
39
48
|
_getCookies(request, _response, parameterName) {
|
|
40
|
-
return parameterName
|
|
41
|
-
? request.cookies
|
|
42
|
-
: request.cookies;
|
|
49
|
+
return parameterName === undefined
|
|
50
|
+
? request.cookies
|
|
51
|
+
: request.cookies[parameterName];
|
|
43
52
|
}
|
|
44
53
|
_replyText(_request, response, value) {
|
|
45
54
|
response.send(value);
|
|
@@ -84,6 +93,14 @@ class InversifyFastifyHttpAdapter extends http_core_1.InversifyHttpAdapter {
|
|
|
84
93
|
if (this.httpAdapterOptions.useFormUrlEncoded) {
|
|
85
94
|
app.register(formbody_1.default);
|
|
86
95
|
}
|
|
96
|
+
if (this.httpAdapterOptions.useMultipartFormData !== false) {
|
|
97
|
+
if (this.httpAdapterOptions.useMultipartFormData === true) {
|
|
98
|
+
app.register(multipart_1.default);
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
app.register(multipart_1.default, this.httpAdapterOptions.useMultipartFormData);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
87
104
|
return app;
|
|
88
105
|
}
|
|
89
106
|
#buildFastifyHandler(handler) {
|
|
@@ -142,6 +159,22 @@ class InversifyFastifyHttpAdapter extends http_core_1.InversifyHttpAdapter {
|
|
|
142
159
|
? Object.values(http_core_1.RequestMethodType).filter((method) => method !== http_core_1.RequestMethodType.All)
|
|
143
160
|
: requestMethodType;
|
|
144
161
|
}
|
|
162
|
+
#getMultipartRequestBody(request, parameterName) {
|
|
163
|
+
if (request.isMultipart()) {
|
|
164
|
+
if (parameterName === undefined) {
|
|
165
|
+
return request.parts();
|
|
166
|
+
}
|
|
167
|
+
throw new Error('Cannot get multipart form data body with a specific parameter name.');
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
return this.#getRequestBody(request, parameterName);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
#getRequestBody(request, parameterName) {
|
|
174
|
+
return parameterName === undefined
|
|
175
|
+
? request.body
|
|
176
|
+
: request.body[parameterName];
|
|
177
|
+
}
|
|
145
178
|
}
|
|
146
179
|
exports.InversifyFastifyHttpAdapter = InversifyFastifyHttpAdapter;
|
|
147
180
|
//# sourceMappingURL=InversifyFastifyHttpAdapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InversifyFastifyHttpAdapter.js","sourceRoot":"","sources":["../../../src/adapter/InversifyFastifyHttpAdapter.ts"],"names":[],"mappings":";;;;AAEA,qEAA+D;AAC/D,yEAAgD;AAChD,
|
|
1
|
+
{"version":3,"file":"InversifyFastifyHttpAdapter.js","sourceRoot":"","sources":["../../../src/adapter/InversifyFastifyHttpAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { type FastifyMultipartAttachFieldsToBodyOptions, FastifyMultipartOptions } from '@fastify/multipart';
|
|
1
2
|
import { HttpAdapterOptions } from '@inversifyjs/http-core';
|
|
2
3
|
export interface FastifyHttpAdapterOptions extends HttpAdapterOptions {
|
|
3
4
|
useCookies?: boolean;
|
|
4
5
|
useFormUrlEncoded?: boolean;
|
|
6
|
+
useMultipartFormData?: boolean | FastifyMultipartAttachFieldsToBodyOptions | FastifyMultipartOptions;
|
|
5
7
|
}
|
|
6
8
|
//# sourceMappingURL=FastifyHttpAdapterOptions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FastifyHttpAdapterOptions.d.ts","sourceRoot":"","sources":["../../../src/models/FastifyHttpAdapterOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,MAAM,WAAW,yBAA0B,SAAQ,kBAAkB;IACnE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B"}
|
|
1
|
+
{"version":3,"file":"FastifyHttpAdapterOptions.d.ts","sourceRoot":"","sources":["../../../src/models/FastifyHttpAdapterOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,yCAAyC,EAC9C,uBAAuB,EACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,MAAM,WAAW,yBAA0B,SAAQ,kBAAkB;IACnE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,oBAAoB,CAAC,EACjB,OAAO,GACP,yCAAyC,GACzC,uBAAuB,CAAC;CAC7B"}
|
package/lib/esm/index.d.ts
CHANGED
|
@@ -2,10 +2,12 @@ import { Readable } from 'node:stream';
|
|
|
2
2
|
import { HttpAdapterOptions, InversifyHttpAdapter, HttpStatusCode, RouterParams, ErrorFilter, Guard, Interceptor, Middleware } from '@inversifyjs/http-core';
|
|
3
3
|
import { FastifyRequest, FastifyReply, HookHandlerDoneFunction, FastifyInstance } from 'fastify';
|
|
4
4
|
import { Container } from 'inversify';
|
|
5
|
+
import { FastifyMultipartAttachFieldsToBodyOptions, FastifyMultipartOptions } from '@fastify/multipart';
|
|
5
6
|
|
|
6
7
|
interface FastifyHttpAdapterOptions extends HttpAdapterOptions {
|
|
7
8
|
useCookies?: boolean;
|
|
8
9
|
useFormUrlEncoded?: boolean;
|
|
10
|
+
useMultipartFormData?: boolean | FastifyMultipartAttachFieldsToBodyOptions | FastifyMultipartOptions;
|
|
9
11
|
}
|
|
10
12
|
|
|
11
13
|
declare class InversifyFastifyHttpAdapter extends InversifyHttpAdapter<FastifyRequest, FastifyReply, HookHandlerDoneFunction, void, FastifyHttpAdapterOptions> {
|
package/lib/esm/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"@fastify/cookie";import
|
|
1
|
+
import e from"@fastify/cookie";import t from"@fastify/formbody";import r from"@fastify/multipart";import{InversifyHttpAdapter as s,RequestMethodParameterType as i,RequestMethodType as a}from"@inversifyjs/http-core";import{fastify as o}from"fastify";class d extends s{#e;constructor(e,t,r){super(e,{logger:!0,useCookies:!1,useFormUrlEncoded:!1,useMultipartFormData:!1},t,[i.Body]),this.#e=this.#t(r)}async build(){return await this._buildServer(),this.#e}_getBody(e,t,r){return!1!==this.httpAdapterOptions.useMultipartFormData?this.#r(e,r):this.#s(e,r)}_getParams(e,t){return void 0===t?e.params:e.params[t]}_getQuery(e,t){return void 0===t?e.query:e.query[t]}_getHeaders(e,t){return void 0===t?e.headers:e.headers[t]}_getCookies(e,t,r){return void 0===r?e.cookies:e.cookies[r]}_replyText(e,t,r){t.send(r)}_replyJson(e,t,r){t.send(r)}async _replyStream(e,t,r){await t.send(r)}_setStatus(e,t,r){t.status(r)}_setHeader(e,t,r,s){t.header(r,s)}_buildRouter(e){this.#e.register((t,r,s)=>{for(const r of e.routeParamsList){const e=[...r.preHandlerMiddlewareList,...r.guardList],s="/"===r.path?"":r.path;t.route({handler:this.#i(r.handler),method:this.#a(r.requestMethodType),onResponse:this.#o(r.postHandlerMiddlewareList),preHandler:this.#d(e),url:s})}s()},{prefix:e.path})}#t(s){const i=s??o();return this.httpAdapterOptions.useCookies&&i.register(e),this.httpAdapterOptions.useFormUrlEncoded&&i.register(t),!1!==this.httpAdapterOptions.useMultipartFormData&&(!0===this.httpAdapterOptions.useMultipartFormData?i.register(r):i.register(r,this.httpAdapterOptions.useMultipartFormData)),i}#i(e){return async(t,r)=>{await new Promise((s,i)=>{s(e(t,r,e=>{void 0!==e?i(e):s()}))})}}#d(e){return e.map(e=>this.#n(e))}#o(e){return e.map(e=>this.#p(e))}#n(e){return async(t,r)=>{await new Promise((s,i)=>{e(t,r,e=>{void 0!==e?i(e):s()})})}}#p(e){return async(t,r)=>{await new Promise((s,i)=>{e(t,r,e=>{void 0!==e?i(e):s()})})}}#a(e){return e===a.All?Object.values(a).filter(e=>e!==a.All):e}#r(e,t){if(e.isMultipart()){if(void 0===t)return e.parts();throw new Error("Cannot get multipart form data body with a specific parameter name.")}return this.#s(e,t)}#s(e,t){return void 0===t?e.body:e.body[t]}}export{d 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","this","buildDefaultFastifyApp","build","_buildServer","_getBody","request","_response","parameterName","
|
|
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","_setStatus","statusCode","status","_setHeader","key","header","_buildRouter","routerParams","register","fastifyInstance","_opts","done","routeParams","routeParamsList","orderedMiddlewareList","preHandlerMiddlewareList","guardList","normalizedUrl","path","route","handler","buildFastifyHandler","method","convertRequestMethodType","requestMethodType","onResponse","buildFastifyOnResponseAsyncMiddlewareList","postHandlerMiddlewareList","preHandler","buildFastifyPreHandlerAsyncMiddlewareList","url","prefix","fastify","cookie","fastifyFormbody","fastifyMultipart","async","reply","Promise","resolve","reject","err","middlewareList","map","middleware","buildFastifyPreHandlerAsyncMiddleware","buildFastifyOnResponseAsyncMiddleware","RequestMethodType","All","Object","values","filter","isMultipart","parts","Error","body"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -7,22 +7,23 @@
|
|
|
7
7
|
"dependencies": {
|
|
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.3.0"
|
|
11
12
|
},
|
|
12
13
|
"devDependencies": {
|
|
13
14
|
"@stryker-mutator/core": "9.3.0",
|
|
14
15
|
"@stryker-mutator/typescript-checker": "9.3.0",
|
|
15
16
|
"@stryker-mutator/vitest-runner": "9.3.0",
|
|
16
17
|
"@types/node": "24.10.0",
|
|
17
|
-
"@vitest/coverage-v8": "4.0.
|
|
18
|
+
"@vitest/coverage-v8": "4.0.8",
|
|
18
19
|
"eslint": "9.39.1",
|
|
19
20
|
"prettier": "3.6.2",
|
|
20
21
|
"rimraf": "6.1.0",
|
|
21
|
-
"rollup": "4.
|
|
22
|
+
"rollup": "4.53.1",
|
|
22
23
|
"ts-loader": "9.5.4",
|
|
23
24
|
"tslib": "2.8.1",
|
|
24
25
|
"typescript": "5.9.3",
|
|
25
|
-
"vitest": "4.0.
|
|
26
|
+
"vitest": "4.0.8"
|
|
26
27
|
},
|
|
27
28
|
"devEngines": {
|
|
28
29
|
"node": "^24.10.0",
|
|
@@ -60,7 +61,7 @@
|
|
|
60
61
|
"type": "git",
|
|
61
62
|
"url": "git+https://github.com/inversify/monorepo.git"
|
|
62
63
|
},
|
|
63
|
-
"version": "4.
|
|
64
|
+
"version": "4.3.0",
|
|
64
65
|
"scripts": {
|
|
65
66
|
"build": "pnpm run build:cjs && pnpm run build:esm",
|
|
66
67
|
"build:cjs": "tsc --build tsconfig.cjs.json && pnpm exec foundation-ts-package-cjs ./lib/cjs",
|