Skip to content

Commit d1ba7c8

Browse files
author
Andrea Cosentino
committed
fix: parseRequest
1 parent a7164c1 commit d1ba7c8

1 file changed

Lines changed: 9 additions & 4 deletions

File tree

src/utils/utils.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -416,16 +416,21 @@ export const Utils = {
416416
if (parserRequest) {
417417
logger.debug("parseRequest: START");
418418
if (typeof parserRequest === "object") {
419-
const { promise, reject, resolve } = Utils.plugin.promiseWithResolver<any>();
420-
const next = (error?: any) => resolve(error);
421419
let parserFunc: UniversalApiParserFunction[] = [];
422420
if (!Array.isArray(parserRequest.parser)) {
423421
parserFunc.push(parserRequest.parser);
424422
} else {
425423
parserFunc = parserRequest.parser;
426424
}
427-
Promise.all(parserFunc.map(callbackfn => callbackfn(request, res, next))).then(() => resolve("done")).catch(reject);
428-
await promise;
425+
for (const parserFn of parserFunc) {
426+
await new Promise<void>((resolve, reject) => {
427+
const next = (error?: any) => error ? reject(error) : resolve();
428+
const result = parserFn(request, res, next);
429+
if (result && typeof (result as any).then === "function") {
430+
(result as Promise<void>).then(() => resolve(), reject);
431+
}
432+
});
433+
}
429434
const { body, files, query } = parserRequest.transform(request);
430435
body != undefined && (request.body = body);
431436
files != undefined && (request.files = files);

0 commit comments

Comments
 (0)