diff --git a/src/PdfCreator.ts b/src/PdfCreator.ts index 9c9cdff..0f74596 100644 --- a/src/PdfCreator.ts +++ b/src/PdfCreator.ts @@ -20,11 +20,13 @@ export class PdfCreator { * Initializes i18n(ext), Handlebars and puppeteer. */ constructor() { - this.init().then(() => { - return this; - }) + this.init(); } + /** + * Main constructor. + * Initializes i18n(ext), Handlebars and puppeteer. + */ public async init() { await i18next .use(Backend) diff --git a/src/controllers/PdfController.ts b/src/controllers/PdfController.ts index 0f6ac16..b99e486 100644 --- a/src/controllers/PdfController.ts +++ b/src/controllers/PdfController.ts @@ -11,10 +11,15 @@ import { PdfCreator } from '../PdfCreator'; @JsonController() export class PdfController { private pdf: PdfCreator = new PdfCreator(); + private initialized: boolean = false; @Post('/contracts') @OpenAPI({ description: "Generate Sponsoring contract pdfs from runner objects.
You can choose your prefered locale by passing the 'locale' query-param." }) async generateContracts(@Body({ validate: true }) runners: Runner | Runner[], @Res() res: any, @QueryParam("locale") locale: string) { + if (!this.initialized) { + await this.pdf.init(); + this.initialized = true; + } if (!Array.isArray(runners)) { runners = [runners]; }