puppeteer-browser-ready 1.3.9 → 1.4.1
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.
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//! puppeteer-browser-ready v1.
|
|
1
|
+
//! puppeteer-browser-ready v1.4.1 ~~ https://github.com/center-key/puppeteer-browser-ready ~~ MIT License
|
|
2
2
|
|
|
3
3
|
import { Browser, HTTPResponse, Page } from 'puppeteer';
|
|
4
4
|
import { HTMLElement } from 'node-html-parser';
|
|
@@ -39,6 +39,7 @@ declare global {
|
|
|
39
39
|
var describe: SuiteFunction;
|
|
40
40
|
}
|
|
41
41
|
declare const browserReady: {
|
|
42
|
+
assert(ok: unknown, message: string | null): void;
|
|
42
43
|
log(...args: unknown[]): void;
|
|
43
44
|
startWebServer(options?: StartWebServerOptions): Promise<Http>;
|
|
44
45
|
shutdownWebServer(http: Http): Promise<void>;
|
|
@@ -1,16 +1,25 @@
|
|
|
1
|
-
//! puppeteer-browser-ready v1.
|
|
1
|
+
//! puppeteer-browser-ready v1.4.1 ~~ https://github.com/center-key/puppeteer-browser-ready ~~ MIT License
|
|
2
2
|
|
|
3
3
|
import { parse } from 'node-html-parser';
|
|
4
4
|
import express from 'express';
|
|
5
5
|
import httpTerminator from 'http-terminator';
|
|
6
6
|
// Package
|
|
7
7
|
const browserReady = {
|
|
8
|
+
assert(ok, message) {
|
|
9
|
+
if (!ok)
|
|
10
|
+
throw new Error(`[puppeteer-browser-ready] ${message}`);
|
|
11
|
+
},
|
|
8
12
|
log(...args) {
|
|
9
13
|
const indent = typeof globalThis.describe === 'function' ? ' [' : '[';
|
|
10
14
|
console.info(indent + new Date().toISOString() + ']', ...args);
|
|
11
15
|
},
|
|
12
16
|
startWebServer(options) {
|
|
13
|
-
const defaults = {
|
|
17
|
+
const defaults = {
|
|
18
|
+
folder: '.',
|
|
19
|
+
port: 0,
|
|
20
|
+
verbose: true,
|
|
21
|
+
autoCleanup: true,
|
|
22
|
+
};
|
|
14
23
|
const settings = { ...defaults, ...options };
|
|
15
24
|
const server = express().use(express.static(settings.folder)).listen(settings.port);
|
|
16
25
|
const terminator = httpTerminator.createHttpTerminator({ server });
|
|
@@ -42,28 +51,31 @@ const browserReady = {
|
|
|
42
51
|
return http.terminator.terminate();
|
|
43
52
|
},
|
|
44
53
|
goto(url, options) {
|
|
45
|
-
const defaults = {
|
|
54
|
+
const defaults = {
|
|
55
|
+
parseHtml: true,
|
|
56
|
+
verbose: false,
|
|
57
|
+
};
|
|
46
58
|
const settings = { ...defaults, ...options };
|
|
47
|
-
const
|
|
48
|
-
console.info(' ', Date.now() % 100000, label + ':', msg);
|
|
59
|
+
const output = (label, msg) => settings.verbose &&
|
|
60
|
+
console.info(' ', Date.now() % 100000, label + ':'.padEnd(16 - label.length, ' '), msg);
|
|
49
61
|
const rootInfo = (root) => `${root.constructor.name}/${root.firstChild?.toString().trim()}`;
|
|
50
62
|
const web = async (browser) => {
|
|
51
|
-
log('Connected', browser.connected);
|
|
52
63
|
try {
|
|
64
|
+
output('[1/8] Connected', browser.connected);
|
|
53
65
|
const page = await browser.newPage();
|
|
54
|
-
|
|
66
|
+
output('[2/8] Page', url);
|
|
55
67
|
const response = await page.goto(url);
|
|
56
|
-
|
|
68
|
+
output('[3/8] Response', response?.url());
|
|
57
69
|
const status = response && response.status();
|
|
58
|
-
|
|
70
|
+
output('[4/8] Status', status);
|
|
59
71
|
const location = await page.evaluate(() => globalThis.location);
|
|
60
|
-
|
|
72
|
+
output('[5/8] Host', location.host);
|
|
61
73
|
const title = response && await page.title();
|
|
62
|
-
|
|
74
|
+
output('[6/8] Title', title);
|
|
63
75
|
const html = response && await response.text();
|
|
64
|
-
|
|
76
|
+
output('[7/8] Bytes', html?.length);
|
|
65
77
|
const root = html && settings.parseHtml ? parse(html) : null;
|
|
66
|
-
|
|
78
|
+
output('[8/8] DOM root', root ? rootInfo(root) : null);
|
|
67
79
|
return { browser, page, response, status, location, title, html, root };
|
|
68
80
|
}
|
|
69
81
|
catch (error) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "puppeteer-browser-ready",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.1",
|
|
4
4
|
"description": "Simple utility to go to a URL and wait for the HTTP response",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -68,24 +68,24 @@
|
|
|
68
68
|
"node-html-parser": "~7.0"
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
71
|
-
"@eslint/js": "~9.
|
|
71
|
+
"@eslint/js": "~9.39",
|
|
72
72
|
"@types/express": "~5.0",
|
|
73
73
|
"@types/mocha": "~10.0",
|
|
74
|
-
"@types/node": "~24.
|
|
74
|
+
"@types/node": "~24.10",
|
|
75
75
|
"@types/ws": "~8.18",
|
|
76
|
-
"add-dist-header": "~1.
|
|
76
|
+
"add-dist-header": "~1.6",
|
|
77
77
|
"assert-deep-strict-equal": "~1.2",
|
|
78
78
|
"copy-file-util": "~1.3",
|
|
79
79
|
"copy-folder-util": "~1.1",
|
|
80
|
-
"eslint": "~9.
|
|
80
|
+
"eslint": "~9.39",
|
|
81
81
|
"jshint": "~2.13",
|
|
82
82
|
"mocha": "~11.7",
|
|
83
83
|
"open": "~10.2",
|
|
84
|
-
"puppeteer": "~24.
|
|
85
|
-
"rimraf": "~6.
|
|
84
|
+
"puppeteer": "~24.29",
|
|
85
|
+
"rimraf": "~6.1",
|
|
86
86
|
"run-scripts-util": "~1.3",
|
|
87
87
|
"typescript": "~5.9",
|
|
88
|
-
"typescript-eslint": "~8.
|
|
89
|
-
"w3c-html-validator": "~
|
|
88
|
+
"typescript-eslint": "~8.46",
|
|
89
|
+
"w3c-html-validator": "~2.0"
|
|
90
90
|
}
|
|
91
91
|
}
|