Skip to content

Commit

Permalink
feat: optimize PDF generation by using Promise.all for template rende…
Browse files Browse the repository at this point in the history
…ring
  • Loading branch information
janosbabik committed Dec 3, 2024
1 parent 6055d69 commit a615f64
Showing 1 changed file with 31 additions and 29 deletions.
60 changes: 31 additions & 29 deletions src/workflows/pdf/proposal/AutoProposalPdfFactory.ts
Original file line number Diff line number Diff line change
Expand Up @@ -242,14 +242,14 @@ export class AutoProposalPdfFactory extends PdfFactory<
}

try {
const renderedProposalHtml = await renderTemplate('proposal-main.hbs', {
proposal,
principalInvestigator,
coProposers,
});
const renderedHeaderFooter = await renderHeaderFooter(
proposal.proposalId
);
const [renderedProposalHtml, renderedHeaderFooter] = await Promise.all([
renderTemplate('proposal-main.hbs', {
proposal,
principalInvestigator,
coProposers,
}),
renderHeaderFooter(proposal.proposalId),
]);

const pdf = await generatePdfFromHtml(renderedProposalHtml, {
pdfOptions: renderedHeaderFooter,
Expand All @@ -275,13 +275,15 @@ export class AutoProposalPdfFactory extends PdfFactory<
}

try {
const renderedProposalQuestion = await renderTemplate(
'questionary-step.hbs',
{ steps: questionarySteps, genericTemplates, attachmentsFileMeta }
);
const renderedHeaderFooter = await renderHeaderFooter(
proposal.proposalId
);
const [renderedProposalQuestion, renderedHeaderFooter] =
await Promise.all([
renderTemplate('questionary-step.hbs', {
steps: questionarySteps,
genericTemplates,
attachmentsFileMeta,
}),
renderHeaderFooter(proposal.proposalId),
]);

const pdf = await generatePdfFromHtml(renderedProposalQuestion, {
pdfOptions: renderedHeaderFooter,
Expand Down Expand Up @@ -310,12 +312,11 @@ export class AutoProposalPdfFactory extends PdfFactory<
}

try {
const renderedTechnicalReview = await renderTemplate(
'technical-review.hbs',
{ technicalReviews }
);
const renderedHeaderFooter = await renderHeaderFooter(
proposal.proposalId
const [renderedTechnicalReview, renderedHeaderFooter] = await Promise.all(
[
renderTemplate('technical-review.hbs', { technicalReviews }),
renderHeaderFooter(proposal.proposalId),
]
);

const pdf = await generatePdfFromHtml(renderedTechnicalReview, {
Expand All @@ -342,14 +343,15 @@ export class AutoProposalPdfFactory extends PdfFactory<
return;
}

const renderedProposalSample = await renderTemplate('sample.hbs', {
sample,
sampleQuestionaryFields,
attachmentsFileMeta,
});
const renderedHeaderFooter = await renderHeaderFooter(
proposal.proposalId
);
const [renderedProposalSample, renderedHeaderFooter] =
await Promise.all([
renderTemplate('sample.hbs', {
sample,
sampleQuestionaryFields,
attachmentsFileMeta,
}),
renderHeaderFooter(proposal.proposalId),
]);

const pdf = await generatePdfFromHtml(renderedProposalSample, {
pdfOptions: renderedHeaderFooter,
Expand Down

0 comments on commit a615f64

Please sign in to comment.