@tstdl/base 0.71.57 → 0.71.60

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.
@@ -27,10 +27,10 @@ export declare const imageFormatSchema: import("superstruct").Struct<"png" | "jp
27
27
  export declare type ImageFormat = Infer<typeof imageFormatSchema>;
28
28
  export declare const imageOptionsSchema: import("superstruct").Struct<{
29
29
  origin?: "center" | "smart" | "top" | "left" | "right" | "bottom" | "topleft" | "topright" | "bottomleft" | "bottomright" | undefined;
30
- format?: "png" | "jpg" | "jpeg" | "webp" | "avif" | undefined;
31
- resizeMode?: "fill" | "fit" | undefined;
32
30
  width?: number | undefined;
33
31
  height?: number | undefined;
32
+ format?: "png" | "jpg" | "jpeg" | "webp" | "avif" | undefined;
33
+ resizeMode?: "fill" | "fit" | undefined;
34
34
  quality?: number | undefined;
35
35
  cacheBuster?: string | undefined;
36
36
  }, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tstdl/base",
3
- "version": "0.71.57",
3
+ "version": "0.71.60",
4
4
  "author": "Patrick Hein",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -3,6 +3,22 @@ import { afterResolve } from "../container";
3
3
  import type { AsyncDisposable } from "../disposable/disposable";
4
4
  import { disposeAsync } from "../disposable/disposable";
5
5
  import { TemplateService } from "../templates";
6
+ export declare type PdfRenderOptions = {
7
+ omitDefaultBackground?: boolean;
8
+ renderBackground?: boolean;
9
+ landscape?: boolean;
10
+ format?: 'letter' | 'legal' | 'tabloid' | 'ledger' | 'a0' | 'a1' | 'a2' | 'a3' | 'a4' | 'a5' | 'a6';
11
+ width?: string | number;
12
+ height?: string | number;
13
+ scale?: number;
14
+ margin?: string | number | {
15
+ top?: number | string;
16
+ bottom?: number | string;
17
+ right?: number | string;
18
+ left?: number | string;
19
+ };
20
+ waitForNetworkIdle?: boolean;
21
+ };
6
22
  export declare class PdfService implements AsyncDisposable, AfterResolve {
7
23
  private readonly templateService;
8
24
  private readonly pool;
@@ -10,8 +26,8 @@ export declare class PdfService implements AsyncDisposable, AfterResolve {
10
26
  [afterResolve](): void;
11
27
  [disposeAsync](): Promise<void>;
12
28
  dispose(): Promise<void>;
13
- renderHtml(html: string): Promise<Uint8Array>;
14
- renderUrl(url: string): Promise<Uint8Array>;
15
- renderTemplate(key: string, templateContext: object): Promise<Uint8Array>;
29
+ renderHtml(html: string, options?: PdfRenderOptions): Promise<Uint8Array>;
30
+ renderUrl(url: string, options?: PdfRenderOptions): Promise<Uint8Array>;
31
+ renderTemplate(key: string, templateContext?: object, options?: PdfRenderOptions): Promise<Uint8Array>;
16
32
  private render;
17
33
  }
@@ -15,6 +15,7 @@ const core_1 = require("../core");
15
15
  const disposable_1 = require("../disposable/disposable");
16
16
  const pool_1 = require("../pool");
17
17
  const templates_1 = require("../templates");
18
+ const type_guards_1 = require("../utils/type-guards");
18
19
  const puppeteer = require("puppeteer");
19
20
  let PdfService = class PdfService {
20
21
  constructor(templateService) {
@@ -30,22 +31,42 @@ let PdfService = class PdfService {
30
31
  async dispose() {
31
32
  return this.pool.dispose();
32
33
  }
33
- async renderHtml(html) {
34
- return this.render(async (page) => page.setContent(html, { waitUntil: 'networkidle2' }));
34
+ async renderHtml(html, options) {
35
+ return this.render(async (page) => page.setContent(html, { waitUntil: ((options === null || options === void 0 ? void 0 : options.waitForNetworkIdle) == true) ? 'networkidle2' : 'load' }), options);
35
36
  }
36
- async renderUrl(url) {
37
- return this.render(async (page) => page.goto(url, { waitUntil: 'networkidle2' }));
37
+ async renderUrl(url, options) {
38
+ return this.render(async (page) => page.goto(url, { waitUntil: ((options === null || options === void 0 ? void 0 : options.waitForNetworkIdle) == true) ? 'networkidle2' : 'load' }), options);
38
39
  }
39
- async renderTemplate(key, templateContext) {
40
+ async renderTemplate(key, templateContext, options) {
40
41
  const html = await this.templateService.render(key, templateContext);
41
- return this.renderHtml(html);
42
+ return this.renderHtml(html, options);
42
43
  }
43
- async render(handler) {
44
+ async render(handler, options) {
44
45
  return this.pool.use(async (browser) => {
46
+ var _a;
45
47
  const page = await browser.newPage();
46
48
  try {
47
49
  await handler(page);
48
- const result = await page.pdf({ format: 'a4' });
50
+ const margin = (0, type_guards_1.isUndefined)(options === null || options === void 0 ? void 0 : options.margin)
51
+ ? undefined
52
+ : (0, type_guards_1.isObject)(options.margin)
53
+ ? options.margin
54
+ : {
55
+ top: options.margin,
56
+ bottom: options.margin,
57
+ right: options.margin,
58
+ left: options.margin
59
+ };
60
+ const result = await page.pdf({
61
+ format: (_a = options === null || options === void 0 ? void 0 : options.format) !== null && _a !== void 0 ? _a : 'a4',
62
+ scale: options === null || options === void 0 ? void 0 : options.scale,
63
+ landscape: options === null || options === void 0 ? void 0 : options.landscape,
64
+ width: options === null || options === void 0 ? void 0 : options.width,
65
+ height: options === null || options === void 0 ? void 0 : options.height,
66
+ omitBackground: options === null || options === void 0 ? void 0 : options.omitDefaultBackground,
67
+ printBackground: options === null || options === void 0 ? void 0 : options.renderBackground,
68
+ margin
69
+ });
49
70
  return result;
50
71
  }
51
72
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"pdf.service.js","sourceRoot":"","sources":["../../source/pdf/pdf.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,4CAAsD;AACtD,kCAAkC;AAElC,yDAAuD;AACvD,kCAA8B;AAC9B,4CAA8C;AAC9C,uCAAuC;AAGvC,IAAa,UAAU,GAAvB,MAAa,UAAU;IAIrB,YAAY,eAAgC;QAC1C,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QAEvC,IAAI,CAAC,IAAI,GAAG,IAAI,WAAI,CAClB,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAC9B,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CACnC,CAAC;IACJ,CAAC;IAED,CAAC,wBAAY,CAAC;QACZ,eAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,CAAC,yBAAY,CAAC;QAClB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAY;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAW;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;IACpF,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,GAAW,EAAE,eAAuB;QACvD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAEO,KAAK,CAAC,MAAM,CAAC,OAA0C;QAC7D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YACrC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YAErC,IAAI;gBACF,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;gBACpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBAChD,OAAO,MAAM,CAAC;aACf;oBACO;gBACN,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;aACpB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AApDY,UAAU;IADtB,IAAA,qBAAS,GAAE;qCAKmB,2BAAe;GAJjC,UAAU,CAoDtB;AApDY,gCAAU"}
1
+ {"version":3,"file":"pdf.service.js","sourceRoot":"","sources":["../../source/pdf/pdf.service.ts"],"names":[],"mappings":"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"}