@tstdl/base 0.84.33 → 0.84.34
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.
- package/package.json +1 -1
- package/pdf/pdf.service.d.ts +11 -0
- package/pdf/pdf.service.js +23 -3
package/package.json
CHANGED
package/pdf/pdf.service.d.ts
CHANGED
|
@@ -11,7 +11,18 @@ import { Template, TemplateService } from '../templates/index.js';
|
|
|
11
11
|
export declare class PdfServiceRenderOptions extends PdfRenderOptions {
|
|
12
12
|
browserContext?: BrowserContextController;
|
|
13
13
|
locale?: string;
|
|
14
|
+
/**
|
|
15
|
+
* @default true
|
|
16
|
+
*/
|
|
14
17
|
waitForNetworkIdle?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Delay pdf creation to ensure content has finished rendering
|
|
20
|
+
* @default 50
|
|
21
|
+
*/
|
|
22
|
+
delay?: number;
|
|
23
|
+
/**
|
|
24
|
+
* @default false
|
|
25
|
+
*/
|
|
15
26
|
log?: boolean | LogLevel;
|
|
16
27
|
}
|
|
17
28
|
export type PdfTemplateOptions = PdfRenderOptions;
|
package/pdf/pdf.service.js
CHANGED
|
@@ -35,6 +35,7 @@ var import_templates = require("../templates/index.js");
|
|
|
35
35
|
var import_finalize_stream = require("../utils/stream/finalize-stream.js");
|
|
36
36
|
var import_readable_stream_from_promise = require("../utils/stream/readable-stream-from-promise.js");
|
|
37
37
|
var import_stream_reader = require("../utils/stream/stream-reader.js");
|
|
38
|
+
var import_timing = require("../utils/timing.js");
|
|
38
39
|
var import_type_guards = require("../utils/type-guards.js");
|
|
39
40
|
var __decorate = function(decorators, target, key, desc) {
|
|
40
41
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -58,7 +59,18 @@ var __param = function(paramIndex, decorator) {
|
|
|
58
59
|
class PdfServiceRenderOptions extends import_pdf_options.PdfRenderOptions {
|
|
59
60
|
browserContext;
|
|
60
61
|
locale;
|
|
62
|
+
/**
|
|
63
|
+
* @default true
|
|
64
|
+
*/
|
|
61
65
|
waitForNetworkIdle;
|
|
66
|
+
/**
|
|
67
|
+
* Delay pdf creation to ensure content has finished rendering
|
|
68
|
+
* @default 50
|
|
69
|
+
*/
|
|
70
|
+
delay;
|
|
71
|
+
/**
|
|
72
|
+
* @default false
|
|
73
|
+
*/
|
|
62
74
|
log;
|
|
63
75
|
}
|
|
64
76
|
__decorate([
|
|
@@ -73,6 +85,10 @@ __decorate([
|
|
|
73
85
|
(0, import_schema.Optional)(),
|
|
74
86
|
__metadata("design:type", Boolean)
|
|
75
87
|
], PdfServiceRenderOptions.prototype, "waitForNetworkIdle", void 0);
|
|
88
|
+
__decorate([
|
|
89
|
+
(0, import_schema.Optional)(),
|
|
90
|
+
__metadata("design:type", Number)
|
|
91
|
+
], PdfServiceRenderOptions.prototype, "delay", void 0);
|
|
76
92
|
__decorate([
|
|
77
93
|
(0, import_schema.Optional)(),
|
|
78
94
|
__metadata("design:type", Object)
|
|
@@ -102,7 +118,7 @@ let PdfService = class PdfService2 {
|
|
|
102
118
|
* @returns pdf stream
|
|
103
119
|
*/
|
|
104
120
|
renderHtmlStream(html, options) {
|
|
105
|
-
return this.renderStream(async (page) => page.setContent(html
|
|
121
|
+
return this.renderStream(async (page) => page.setContent(html), options);
|
|
106
122
|
}
|
|
107
123
|
/**
|
|
108
124
|
* Renders HTML to pdf
|
|
@@ -122,7 +138,7 @@ let PdfService = class PdfService2 {
|
|
|
122
138
|
*/
|
|
123
139
|
renderUrlStream(url, options) {
|
|
124
140
|
return this.renderStream(async (controller) => {
|
|
125
|
-
await controller.navigate(url
|
|
141
|
+
await controller.navigate(url);
|
|
126
142
|
}, options);
|
|
127
143
|
}
|
|
128
144
|
/**
|
|
@@ -145,7 +161,7 @@ let PdfService = class PdfService2 {
|
|
|
145
161
|
renderTemplateStream(keyOrTemplate, templateContext, options) {
|
|
146
162
|
return this.renderStream(async (page) => {
|
|
147
163
|
const { fields: { header, body, footer }, options: optionsFromTemplate } = await this.templateService.render(keyOrTemplate, templateContext);
|
|
148
|
-
await page.setContent(body
|
|
164
|
+
await page.setContent(body);
|
|
149
165
|
return { ...optionsFromTemplate, headerTemplate: header, footerTemplate: footer };
|
|
150
166
|
}, options);
|
|
151
167
|
}
|
|
@@ -170,6 +186,10 @@ let PdfService = class PdfService2 {
|
|
|
170
186
|
page.attachLogger(logger);
|
|
171
187
|
}
|
|
172
188
|
const optionsFromHandler = await handler(page);
|
|
189
|
+
if (options.waitForNetworkIdle != false) {
|
|
190
|
+
await page.waitForLoadState("networkidle");
|
|
191
|
+
}
|
|
192
|
+
await (0, import_timing.timeout)(options.delay ?? 50);
|
|
173
193
|
const pdfStream = page.renderPdfStream({ ...optionsFromHandler, ...options });
|
|
174
194
|
const close = async () => {
|
|
175
195
|
if ((0, import_type_guards.isDefined)(options.browserContext)) {
|