diff --git a/README.md b/README.md index a09f31b7..a600871c 100644 --- a/README.md +++ b/README.md @@ -217,7 +217,7 @@ The only required parameter is `url`. // Passed to Puppeteer page.waitFor() waitFor: null, - // Passsed to Puppeteer page.setCookies() + // Passed to Puppeteer page.setCookies() cookies: [{ ... }] // Passed to Puppeteer page.setViewport() @@ -228,6 +228,9 @@ The only required parameter is `url`. // Passed to Puppeteer page.pdf() pdf: { ... } + + // Passed to Puppeteer page.setExtraHTTPHeaders() + setExtraHTTPHeaders: { "key": "value" } } ``` diff --git a/src/core/pdf-core.js b/src/core/pdf-core.js index b82066db..181dbf34 100644 --- a/src/core/pdf-core.js +++ b/src/core/pdf-core.js @@ -22,6 +22,7 @@ async function render(_opts = {}) { printBackground: true, }, failEarly: false, + setExtraHTTPHeaders: {}, }, _opts); if (_.get(_opts, 'pdf.width') && _.get(_opts, 'pdf.height')) { @@ -80,6 +81,9 @@ async function render(_opts = {}) { opts.cookies.map(async (cookie) => { await page.setCookie(cookie); }); + + logger.info('Setting headers...'); + await page.setExtraHTTPHeaders(opts.setExtraHTTPHeaders); if (opts.html) { logger.info('Set HTML ..'); diff --git a/src/util/validation.js b/src/util/validation.js index 3d6c73fd..31b9bec9 100644 --- a/src/util/validation.js +++ b/src/util/validation.js @@ -53,6 +53,7 @@ const sharedQuerySchema = Joi.object({ 'pdf.margin.bottom': Joi.string().min(1).max(2000), 'pdf.margin.left': Joi.string().min(1).max(2000), 'pdf.printBackground': Joi.boolean(), + setExtraHTTPHeaders: Joi.object(), }); const renderQuerySchema = Joi.object({ @@ -104,6 +105,7 @@ const renderBodyObject = Joi.object({ printBackground: Joi.boolean(), }), failEarly: Joi.string(), + setExtraHTTPHeaders: Joi.object(), }); const renderBodySchema = Joi.alternatives([