@lucaapp/service-utils 1.56.3 → 1.56.4

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.
@@ -156,7 +156,7 @@ async function stream2buffer(stream) {
156
156
  });
157
157
  }
158
158
  function handleFileUpload(request) {
159
- return new Promise(resolve => {
159
+ return new Promise((resolve, reject) => {
160
160
  const bb = (0, busboy_1.default)({
161
161
  headers: request.headers,
162
162
  defCharset: 'utf8',
@@ -166,8 +166,11 @@ function handleFileUpload(request) {
166
166
  },
167
167
  });
168
168
  let file = undefined;
169
+ bb.once('error', error => {
170
+ reject(error);
171
+ });
169
172
  bb.on('file', async (fieldname, fileStream, filename) => {
170
- const { encoding, mimetype, filename: name } = filename;
173
+ const { encoding, mimeType: mimetype, filename: name } = filename;
171
174
  const originalName = Buffer.from(name, 'latin1').toString('utf8');
172
175
  const fileBuffer = await stream2buffer(fileStream);
173
176
  file = {
@@ -180,7 +183,7 @@ function handleFileUpload(request) {
180
183
  filename: name,
181
184
  };
182
185
  });
183
- bb.on('finish', () => {
186
+ bb.once('finish', () => {
184
187
  resolve(file);
185
188
  });
186
189
  request.pipe(bb);
@@ -215,7 +218,8 @@ new Promise(async (resolve) => {
215
218
  }
216
219
  const { ip, baseUrl, originalUrl, route, method } = request;
217
220
  let file = undefined;
218
- if (request.headers['content-type']?.includes('multipart/form-data')) {
221
+ if (middleware.options.config?.isFileUpload &&
222
+ request.headers['content-type']?.includes('multipart/form-data')) {
219
223
  file = await handleFileUpload(request);
220
224
  }
221
225
  // if the header is multipart we should return a buffer with the content
@@ -37,6 +37,9 @@ export type MiddlewareOptions<TResponseSchemas extends ReadonlyArray<EndpointRes
37
37
  context?: TContextSchema;
38
38
  };
39
39
  responses: TResponseSchemas;
40
+ config?: {
41
+ isFileUpload?: boolean;
42
+ };
40
43
  errors?: Record<string, number>;
41
44
  };
42
45
  export type Middleware<TResponseSchemas extends ReadonlyArray<EndpointResponseSchema>, TRequestBodySchema, TRequestParamsSchema, TRequestQuerySchema, TRequestHeadersSchema, TContextSchema> = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lucaapp/service-utils",
3
- "version": "1.56.3",
3
+ "version": "1.56.4",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "files": [