@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.
package/dist/lib/api/endpoint.js
CHANGED
|
@@ -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.
|
|
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 (
|
|
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> = {
|