@tstdl/base 0.84.31 → 0.84.33
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/browser/browser-context-controller.d.ts +2 -0
- package/browser/browser-context-controller.js +4 -0
- package/browser/page-controller.d.ts +2 -0
- package/browser/page-controller.js +4 -0
- package/browser/utils.d.ts +7 -2
- package/browser/utils.js +63 -2
- package/examples/browser/basic.js +3 -0
- package/logger/console/logger.d.ts +3 -2
- package/logger/console/logger.js +6 -1
- package/logger/logger.d.ts +8 -3
- package/logger/noop/logger.d.ts +1 -0
- package/logger/noop/logger.js +3 -0
- package/package.json +3 -3
- package/pdf/pdf.service.d.ts +5 -1
- package/pdf/pdf.service.js +23 -3
- package/utils/repl.d.ts +10 -0
- package/utils/repl.js +35 -0
- package/utils/value-or-provider.d.ts +1 -0
|
@@ -3,6 +3,7 @@ import type { Injectable } from '../container/interfaces.js';
|
|
|
3
3
|
import { resolveArgumentType } from '../container/interfaces.js';
|
|
4
4
|
import type { AsyncDisposable } from '../disposable/disposable.js';
|
|
5
5
|
import { disposeAsync } from '../disposable/disposable.js';
|
|
6
|
+
import type { Logger } from '../logger/logger.js';
|
|
6
7
|
import type { Record } from '../types.js';
|
|
7
8
|
import type { Opaque } from 'type-fest';
|
|
8
9
|
import type { NewBrowserContextOptions } from './browser-controller.js';
|
|
@@ -30,4 +31,5 @@ export declare class BrowserContextController implements AsyncDisposable, Inject
|
|
|
30
31
|
newPage(options?: NewPageOptions): Promise<PageController>;
|
|
31
32
|
waitForNoPages(): Promise<void>;
|
|
32
33
|
waitForClose(): Promise<void>;
|
|
34
|
+
attachLogger(logger: Logger): void;
|
|
33
35
|
}
|
|
@@ -28,6 +28,7 @@ var import_object = require("../utils/object/object.js");
|
|
|
28
28
|
var import_type_guards = require("../utils/type-guards.js");
|
|
29
29
|
var import_browser_controller = require("./browser-controller.js");
|
|
30
30
|
var import_page_controller = require("./page-controller.js");
|
|
31
|
+
var import_utils = require("./utils.js");
|
|
31
32
|
var __decorate = function(decorators, target, key, desc) {
|
|
32
33
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
33
34
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
@@ -89,6 +90,9 @@ let BrowserContextController = class BrowserContextController2 {
|
|
|
89
90
|
async waitForClose() {
|
|
90
91
|
return new Promise((resolve) => this.context.once("close", () => resolve()));
|
|
91
92
|
}
|
|
93
|
+
attachLogger(logger) {
|
|
94
|
+
(0, import_utils.attachLogger)(this.context, logger);
|
|
95
|
+
}
|
|
92
96
|
};
|
|
93
97
|
BrowserContextController = __decorate([
|
|
94
98
|
(0, import_decorators.injectable)({
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Page } from 'playwright';
|
|
2
2
|
import type { AsyncDisposable } from '../disposable/disposable.js';
|
|
3
3
|
import { disposeAsync } from '../disposable/disposable.js';
|
|
4
|
+
import type { Logger } from '../logger/logger.js';
|
|
4
5
|
import type { DocumentControllerOptions } from './document-controller.js';
|
|
5
6
|
import { DocumentController } from './document-controller.js';
|
|
6
7
|
import type { FrameControllerOptions } from './frame-controller.js';
|
|
@@ -27,4 +28,5 @@ export declare class PageController extends DocumentController<Page> implements
|
|
|
27
28
|
frame(frameSelector: Parameters<Page['frame']>[0]): FrameController;
|
|
28
29
|
renderPdf(options?: PdfRenderOptions & Abortable): Promise<Uint8Array>;
|
|
29
30
|
renderPdfStream(options?: PdfRenderOptions & Abortable): ReadableStream<Uint8Array>;
|
|
31
|
+
attachLogger(logger: Logger): void;
|
|
30
32
|
}
|
|
@@ -29,6 +29,7 @@ var import_type_guards = require("../utils/type-guards.js");
|
|
|
29
29
|
var import_units = require("../utils/units.js");
|
|
30
30
|
var import_document_controller = require("./document-controller.js");
|
|
31
31
|
var import_frame_controller = require("./frame-controller.js");
|
|
32
|
+
var import_utils = require("./utils.js");
|
|
32
33
|
class PageController extends import_document_controller.DocumentController {
|
|
33
34
|
/** @deprecated should be avoided */
|
|
34
35
|
page;
|
|
@@ -86,6 +87,9 @@ class PageController extends import_document_controller.DocumentController {
|
|
|
86
87
|
});
|
|
87
88
|
});
|
|
88
89
|
}
|
|
90
|
+
attachLogger(logger) {
|
|
91
|
+
(0, import_utils.attachLogger)(this.page, logger);
|
|
92
|
+
}
|
|
89
93
|
}
|
|
90
94
|
function convertPdfOptions(options) {
|
|
91
95
|
const margin = (0, import_type_guards.isUndefined)(options.margin) ? void 0 : (0, import_type_guards.isObject)(options.margin) ? options.margin : {
|
package/browser/utils.d.ts
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Logger } from '../logger/logger.js';
|
|
2
|
+
import type { BrowserContext, ElementHandle, Frame, LaunchOptions, Locator, Page } from 'playwright';
|
|
2
3
|
import type { NewBrowserContextOptions } from './browser-controller.js';
|
|
3
4
|
import type { NewBrowserOptions } from './browser.service.js';
|
|
4
5
|
export declare function getLaunchOptions(options: NewBrowserOptions): LaunchOptions;
|
|
5
6
|
export declare function mergeNewBrowserContextOptions(a: NewBrowserContextOptions | undefined, b?: NewBrowserContextOptions, c?: NewBrowserContextOptions): NewBrowserContextOptions;
|
|
7
|
+
export declare function attachLogger(loggable: Page | BrowserContext, logger: Logger): void;
|
|
6
8
|
export declare function isLocator(locatorOrHandle: Locator | ElementHandle): locatorOrHandle is Locator;
|
|
7
|
-
export declare function isElementHandle(locatorOrHandle: Locator | ElementHandle): locatorOrHandle is
|
|
9
|
+
export declare function isElementHandle(locatorOrHandle: Locator | ElementHandle): locatorOrHandle is ElementHandle;
|
|
10
|
+
export declare function isPage(pageOrFrameOrContext: Page | Frame | BrowserContext): pageOrFrameOrContext is Page;
|
|
11
|
+
export declare function isFrame(pageOrFrameOrContext: Page | Frame | BrowserContext): pageOrFrameOrContext is Frame;
|
|
12
|
+
export declare function isBrowserContext(pageOrFrameOrContext: Page | Frame | BrowserContext): pageOrFrameOrContext is BrowserContext;
|
package/browser/utils.js
CHANGED
|
@@ -18,13 +18,19 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var utils_exports = {};
|
|
20
20
|
__export(utils_exports, {
|
|
21
|
+
attachLogger: () => attachLogger,
|
|
21
22
|
getLaunchOptions: () => getLaunchOptions,
|
|
23
|
+
isBrowserContext: () => isBrowserContext,
|
|
22
24
|
isElementHandle: () => isElementHandle,
|
|
25
|
+
isFrame: () => isFrame,
|
|
23
26
|
isLocator: () => isLocator,
|
|
27
|
+
isPage: () => isPage,
|
|
24
28
|
mergeNewBrowserContextOptions: () => mergeNewBrowserContextOptions
|
|
25
29
|
});
|
|
26
30
|
module.exports = __toCommonJS(utils_exports);
|
|
27
31
|
var import_object = require("../utils/object/object.js");
|
|
32
|
+
var import_type_guards = require("../utils/type-guards.js");
|
|
33
|
+
const pageLoggerMap = /* @__PURE__ */ new WeakMap();
|
|
28
34
|
function getLaunchOptions(options) {
|
|
29
35
|
const { windowSize, browserArguments, headless } = options;
|
|
30
36
|
const args = [`--window-size=${windowSize?.width ?? 1e3},${windowSize?.height ?? 1e3}`, ...browserArguments ?? []];
|
|
@@ -47,9 +53,64 @@ function mergeNewBrowserContextOptions(a, b, c) {
|
|
|
47
53
|
extraHttpHeaders: (0, import_object.objectKeys)(mergedExtraHttpHeaders).length > 0 ? mergedExtraHttpHeaders : void 0
|
|
48
54
|
};
|
|
49
55
|
}
|
|
56
|
+
function getPageLogger(page, baseLogger) {
|
|
57
|
+
let pageLogger = pageLoggerMap.get(page);
|
|
58
|
+
if ((0, import_type_guards.isUndefined)(pageLogger)) {
|
|
59
|
+
pageLogger = baseLogger.subModule(crypto.randomUUID().slice(-12));
|
|
60
|
+
pageLoggerMap.set(page, pageLogger);
|
|
61
|
+
}
|
|
62
|
+
return pageLogger;
|
|
63
|
+
}
|
|
64
|
+
function attachLogger(loggable, logger) {
|
|
65
|
+
if (isPage(loggable)) {
|
|
66
|
+
loggable.on("close", () => pageLoggerMap.delete(loggable));
|
|
67
|
+
loggable.on("pageerror", (error) => logger.error(error));
|
|
68
|
+
}
|
|
69
|
+
loggable.on("console", (consoleMessage) => {
|
|
70
|
+
const page = consoleMessage.page();
|
|
71
|
+
const pageLogger = (0, import_type_guards.isNull)(page) ? logger : getPageLogger(page, logger);
|
|
72
|
+
const rawUrl = consoleMessage.page()?.url();
|
|
73
|
+
const parsedUrl = (0, import_type_guards.isString)(rawUrl) && rawUrl.length > 0 ? new URL(rawUrl) : rawUrl;
|
|
74
|
+
const url = (0, import_type_guards.isString)(parsedUrl) ? parsedUrl : `${parsedUrl?.protocol.startsWith("http") == true ? "" : parsedUrl?.protocol}${parsedUrl?.host}${parsedUrl?.pathname}`;
|
|
75
|
+
const location = consoleMessage.location();
|
|
76
|
+
const rawLocationText = location.lineNumber == 0 ? location.url : `${location.url}:${location.lineNumber}:${location.columnNumber}`;
|
|
77
|
+
const locationText = rawLocationText.length == 0 ? void 0 : rawLocationText;
|
|
78
|
+
const additions = Object.entries({ location: locationText }).filter(([_, value]) => (0, import_type_guards.isDefined)(value)).map(([key, value]) => `${key}: ${value}`).join(", ");
|
|
79
|
+
const message = `${url}: ${consoleMessage.text()}${additions.length > 0 ? ` (${additions})` : ""}`;
|
|
80
|
+
switch (consoleMessage.type()) {
|
|
81
|
+
case "debug":
|
|
82
|
+
pageLogger.debug(message);
|
|
83
|
+
break;
|
|
84
|
+
case "error":
|
|
85
|
+
pageLogger.error(message);
|
|
86
|
+
break;
|
|
87
|
+
case "warning":
|
|
88
|
+
pageLogger.warn(message);
|
|
89
|
+
break;
|
|
90
|
+
case "trace":
|
|
91
|
+
pageLogger.trace(message);
|
|
92
|
+
break;
|
|
93
|
+
case "clear":
|
|
94
|
+
break;
|
|
95
|
+
case "info":
|
|
96
|
+
default:
|
|
97
|
+
pageLogger.info(message);
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
}
|
|
50
102
|
function isLocator(locatorOrHandle) {
|
|
51
|
-
return
|
|
103
|
+
return locatorOrHandle.constructor.name == "Locator";
|
|
52
104
|
}
|
|
53
105
|
function isElementHandle(locatorOrHandle) {
|
|
54
|
-
return
|
|
106
|
+
return locatorOrHandle.constructor.name == "ElementHandle";
|
|
107
|
+
}
|
|
108
|
+
function isPage(pageOrFrameOrContext) {
|
|
109
|
+
return pageOrFrameOrContext.constructor.name == "Page";
|
|
110
|
+
}
|
|
111
|
+
function isFrame(pageOrFrameOrContext) {
|
|
112
|
+
return pageOrFrameOrContext.constructor.name == "Frame";
|
|
113
|
+
}
|
|
114
|
+
function isBrowserContext(pageOrFrameOrContext) {
|
|
115
|
+
return pageOrFrameOrContext.constructor.name == "BrowserContext";
|
|
55
116
|
}
|
|
@@ -3,12 +3,15 @@ var import_node_fs = require("node:fs");
|
|
|
3
3
|
var import_application = require("../../application/index.js");
|
|
4
4
|
var import_browser_service = require("../../browser/browser.service.js");
|
|
5
5
|
var import_container = require("../../container/container.js");
|
|
6
|
+
var import_logger = require("../../logger/logger.js");
|
|
6
7
|
var import_timing = require("../../utils/timing.js");
|
|
7
8
|
async function main() {
|
|
8
9
|
const browserService = await import_container.container.resolveAsync(import_browser_service.BrowserService);
|
|
9
10
|
const browser = await browserService.newBrowser({ headless: false });
|
|
10
11
|
const context = await browser.newContext();
|
|
11
12
|
const page = await context.newPage();
|
|
13
|
+
const logger = import_container.container.resolve(import_logger.Logger).subModule("BROWSER");
|
|
14
|
+
page.attachLogger(logger);
|
|
12
15
|
await page.navigate("https://google.com");
|
|
13
16
|
await page.getBySelector("//div[text() = 'Alle ablehnen']").click();
|
|
14
17
|
await (0, import_timing.timeout)(1e3);
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { LogLevel } from '../level.js';
|
|
2
|
-
import type { LogErrorOptions } from '../logger.js';
|
|
2
|
+
import type { LogErrorOptions, LoggerForkOptions } from '../logger.js';
|
|
3
3
|
import { Logger } from '../logger.js';
|
|
4
4
|
export declare class ConsoleLogger extends Logger {
|
|
5
5
|
private readonly entryPrefix;
|
|
6
6
|
constructor(level: LogLevel, module?: string | string[], prefix?: string);
|
|
7
|
-
fork(
|
|
7
|
+
fork(options: LoggerForkOptions): ConsoleLogger;
|
|
8
|
+
subModule(subModule: string): ConsoleLogger;
|
|
8
9
|
prefix(prefix: string): ConsoleLogger;
|
|
9
10
|
protected log(level: LogLevel, entryOrError: string | Error, errorOptions?: LogErrorOptions): void;
|
|
10
11
|
}
|
package/logger/console/logger.js
CHANGED
|
@@ -57,7 +57,12 @@ let ConsoleLogger = ConsoleLogger_1 = class ConsoleLogger2 extends import_logger
|
|
|
57
57
|
const modulePrefix = (0, import_type_guards.isDefined)(this.module) ? this.module.map((m) => `[${m}]`).join(" ") : "";
|
|
58
58
|
this.entryPrefix = `${modulePrefix}${modulePrefix.length > 0 ? " " : ""}${this.logPrefix}`;
|
|
59
59
|
}
|
|
60
|
-
fork(
|
|
60
|
+
fork(options) {
|
|
61
|
+
const level = options.level ?? this.level;
|
|
62
|
+
const module2 = (0, import_type_guards.isDefined)(options.subModule) ? [...this.module ?? [], options.subModule] : this.module;
|
|
63
|
+
return new ConsoleLogger_1(level, module2, options.prefix);
|
|
64
|
+
}
|
|
65
|
+
subModule(subModule) {
|
|
61
66
|
return new ConsoleLogger_1(this.level, [...this.module ?? [], subModule]);
|
|
62
67
|
}
|
|
63
68
|
prefix(prefix) {
|
package/logger/logger.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type { Injectable } from '../container/index.js';
|
|
2
|
-
import type { resolveArgumentType } from '../container/index.js';
|
|
1
|
+
import type { Injectable, resolveArgumentType } from '../container/index.js';
|
|
3
2
|
import { LogLevel } from './level.js';
|
|
4
3
|
export type LogEntry = string;
|
|
5
4
|
export type LogEntryProvider = () => LogEntry;
|
|
@@ -15,6 +14,11 @@ export type LoggerArgument = string | undefined | {
|
|
|
15
14
|
module?: string | string[];
|
|
16
15
|
prefix?: string;
|
|
17
16
|
};
|
|
17
|
+
export type LoggerForkOptions = {
|
|
18
|
+
subModule?: string;
|
|
19
|
+
prefix?: string;
|
|
20
|
+
level?: LogLevel;
|
|
21
|
+
};
|
|
18
22
|
export declare abstract class Logger implements Injectable<LoggerArgument> {
|
|
19
23
|
readonly level: LogLevel;
|
|
20
24
|
readonly module?: string[];
|
|
@@ -29,7 +33,8 @@ export declare abstract class Logger implements Injectable<LoggerArgument> {
|
|
|
29
33
|
debug(entry: LogEntryOrProvider): void;
|
|
30
34
|
trace(entry: LogEntryOrProvider): void;
|
|
31
35
|
private _log;
|
|
32
|
-
abstract fork(
|
|
36
|
+
abstract fork(options: LoggerForkOptions): Logger;
|
|
37
|
+
abstract subModule(subModule: string): Logger;
|
|
33
38
|
abstract prefix(prefix: string): Logger;
|
|
34
39
|
protected abstract log(level: LogLevel, entry: LogEntry | Error, errorOptions?: LogErrorOptions): void;
|
|
35
40
|
}
|
package/logger/noop/logger.d.ts
CHANGED
package/logger/noop/logger.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tstdl/base",
|
|
3
|
-
"version": "0.84.
|
|
3
|
+
"version": "0.84.33",
|
|
4
4
|
"author": "Patrick Hein",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -33,8 +33,8 @@
|
|
|
33
33
|
"@types/mjml": "4.7",
|
|
34
34
|
"@types/node": "20",
|
|
35
35
|
"@types/nodemailer": "6.4",
|
|
36
|
-
"@typescript-eslint/eslint-plugin": "5.
|
|
37
|
-
"@typescript-eslint/parser": "5.
|
|
36
|
+
"@typescript-eslint/eslint-plugin": "5.60",
|
|
37
|
+
"@typescript-eslint/parser": "5.60",
|
|
38
38
|
"concurrently": "8.2",
|
|
39
39
|
"esbuild": "0.18",
|
|
40
40
|
"eslint": "8.43",
|
package/pdf/pdf.service.d.ts
CHANGED
|
@@ -4,12 +4,15 @@ import { BrowserController } from '../browser/browser-controller.js';
|
|
|
4
4
|
import { PdfRenderOptions } from '../browser/pdf-options.js';
|
|
5
5
|
import type { Injectable } from '../container/index.js';
|
|
6
6
|
import { resolveArgumentType } from '../container/index.js';
|
|
7
|
+
import { LogLevel } from '../logger/level.js';
|
|
8
|
+
import { Logger } from '../logger/logger.js';
|
|
7
9
|
import type { TemplateField } from '../templates/index.js';
|
|
8
10
|
import { Template, TemplateService } from '../templates/index.js';
|
|
9
11
|
export declare class PdfServiceRenderOptions extends PdfRenderOptions {
|
|
10
12
|
browserContext?: BrowserContextController;
|
|
11
13
|
locale?: string;
|
|
12
14
|
waitForNetworkIdle?: boolean;
|
|
15
|
+
log?: boolean | LogLevel;
|
|
13
16
|
}
|
|
14
17
|
export type PdfTemplateOptions = PdfRenderOptions;
|
|
15
18
|
export declare class PdfTemplate<Context extends object = any> extends Template<{
|
|
@@ -28,9 +31,10 @@ export type PdfServiceArgument = PdfServiceOptions & {
|
|
|
28
31
|
export declare class PdfService implements Injectable<PdfServiceArgument> {
|
|
29
32
|
private readonly templateService;
|
|
30
33
|
private readonly browserController;
|
|
34
|
+
private readonly logger;
|
|
31
35
|
private readonly defaultLocale;
|
|
32
36
|
readonly [resolveArgumentType]: PdfServiceArgument;
|
|
33
|
-
constructor(templateService: TemplateService, browserController: BrowserController, options?: PdfServiceOptions);
|
|
37
|
+
constructor(templateService: TemplateService, browserController: BrowserController, logger: Logger, options?: PdfServiceOptions);
|
|
34
38
|
/**
|
|
35
39
|
* Renders HTML to pdf stream
|
|
36
40
|
* @param html html to render
|
package/pdf/pdf.service.js
CHANGED
|
@@ -28,6 +28,8 @@ var import_browser_context_controller = require("../browser/browser-context-cont
|
|
|
28
28
|
var import_browser_controller = require("../browser/browser-controller.js");
|
|
29
29
|
var import_pdf_options = require("../browser/pdf-options.js");
|
|
30
30
|
var import_container = require("../container/index.js");
|
|
31
|
+
var import_level = require("../logger/level.js");
|
|
32
|
+
var import_logger = require("../logger/logger.js");
|
|
31
33
|
var import_schema = require("../schema/index.js");
|
|
32
34
|
var import_templates = require("../templates/index.js");
|
|
33
35
|
var import_finalize_stream = require("../utils/stream/finalize-stream.js");
|
|
@@ -57,6 +59,7 @@ class PdfServiceRenderOptions extends import_pdf_options.PdfRenderOptions {
|
|
|
57
59
|
browserContext;
|
|
58
60
|
locale;
|
|
59
61
|
waitForNetworkIdle;
|
|
62
|
+
log;
|
|
60
63
|
}
|
|
61
64
|
__decorate([
|
|
62
65
|
(0, import_schema.Optional)(),
|
|
@@ -70,6 +73,10 @@ __decorate([
|
|
|
70
73
|
(0, import_schema.Optional)(),
|
|
71
74
|
__metadata("design:type", Boolean)
|
|
72
75
|
], PdfServiceRenderOptions.prototype, "waitForNetworkIdle", void 0);
|
|
76
|
+
__decorate([
|
|
77
|
+
(0, import_schema.Optional)(),
|
|
78
|
+
__metadata("design:type", Object)
|
|
79
|
+
], PdfServiceRenderOptions.prototype, "log", void 0);
|
|
73
80
|
class PdfTemplate extends import_templates.Template {
|
|
74
81
|
}
|
|
75
82
|
__decorate([
|
|
@@ -80,10 +87,12 @@ const browserArguments = ["--font-render-hinting=none", "--disable-web-security"
|
|
|
80
87
|
let PdfService = class PdfService2 {
|
|
81
88
|
templateService;
|
|
82
89
|
browserController;
|
|
90
|
+
logger;
|
|
83
91
|
defaultLocale;
|
|
84
|
-
constructor(templateService, browserController, options = {}) {
|
|
92
|
+
constructor(templateService, browserController, logger, options = {}) {
|
|
85
93
|
this.templateService = templateService;
|
|
86
94
|
this.browserController = browserController;
|
|
95
|
+
this.logger = logger;
|
|
87
96
|
this.defaultLocale = options.locale;
|
|
88
97
|
}
|
|
89
98
|
/**
|
|
@@ -155,6 +164,11 @@ let PdfService = class PdfService2 {
|
|
|
155
164
|
return (0, import_readable_stream_from_promise.readableStreamFromPromise)(async () => {
|
|
156
165
|
const context = options.browserContext ?? await this.browserController.newContext({ locale: options.locale ?? this.defaultLocale });
|
|
157
166
|
const page = await context.newPage();
|
|
167
|
+
if ((0, import_type_guards.isDefined)(options.log) && options.log != false) {
|
|
168
|
+
const level = options.log == true ? import_level.LogLevel.Info : options.log;
|
|
169
|
+
const logger = this.logger.fork({ level, subModule: "PAGE" });
|
|
170
|
+
page.attachLogger(logger);
|
|
171
|
+
}
|
|
158
172
|
const optionsFromHandler = await handler(page);
|
|
159
173
|
const pdfStream = page.renderPdfStream({ ...optionsFromHandler, ...options });
|
|
160
174
|
const close = async () => {
|
|
@@ -175,8 +189,14 @@ let PdfService = class PdfService2 {
|
|
|
175
189
|
PdfService = __decorate([
|
|
176
190
|
(0, import_container.singleton)(),
|
|
177
191
|
__param(1, (0, import_container.forwardArg)((argument) => argument?.browserControllerArgument ?? { browserArguments })),
|
|
178
|
-
__param(2, (0, import_container.
|
|
179
|
-
|
|
192
|
+
__param(2, (0, import_container.resolveArg)("PdfService")),
|
|
193
|
+
__param(3, (0, import_container.injectArg)()),
|
|
194
|
+
__metadata("design:paramtypes", [
|
|
195
|
+
import_templates.TemplateService,
|
|
196
|
+
import_browser_controller.BrowserController,
|
|
197
|
+
import_logger.Logger,
|
|
198
|
+
Object
|
|
199
|
+
])
|
|
180
200
|
], PdfService);
|
|
181
201
|
function pdfTemplate(name, fields, options) {
|
|
182
202
|
return {
|
package/utils/repl.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
import type { ReplOptions } from 'node:repl';
|
|
3
|
+
import type { Record } from '../types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Starts an interactive (repl) session (node only)
|
|
6
|
+
* @param context context to set the repl context to
|
|
7
|
+
*/
|
|
8
|
+
export declare function repl(options?: ReplOptions & {
|
|
9
|
+
context?: Record<string>;
|
|
10
|
+
}): Promise<void>;
|
package/utils/repl.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var repl_exports = {};
|
|
20
|
+
__export(repl_exports, {
|
|
21
|
+
repl: () => repl
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(repl_exports);
|
|
24
|
+
var import_node_repl = require("node:repl");
|
|
25
|
+
var import_object = require("./object/object.js");
|
|
26
|
+
var import_type_guards = require("./type-guards.js");
|
|
27
|
+
async function repl(options) {
|
|
28
|
+
const replServer = (0, import_node_repl.start)(options);
|
|
29
|
+
if ((0, import_type_guards.isDefined)(options?.context)) {
|
|
30
|
+
for (const [key, value] of (0, import_object.objectEntries)(options.context)) {
|
|
31
|
+
replServer.context[key] = value;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
await new Promise((resolve) => replServer.once("exit", resolve));
|
|
35
|
+
}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export type ValueOrProvider<T> = T extends () => any ? never : T | (() => T);
|
|
2
|
+
export type ResolvedValueOrProvider<T extends ValueOrProvider<any>> = T extends ValueOrProvider<infer U> ? U : never;
|
|
2
3
|
export declare function resolveValueOrProvider<T>(valueOrProvider: ValueOrProvider<T>): T;
|