@d-zero/puppeteer-page-scan 1.0.0 → 2.0.0
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/dist/before-page-scan.d.ts +4 -3
- package/dist/before-page-scan.js +10 -3
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/page-scan-listener.d.ts +4 -0
- package/dist/page-scan-listener.js +22 -0
- package/dist/types.d.ts +5 -3
- package/package.json +6 -4
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
1
|
+
import type { PageHook, PageScanPhase, Size } from './types.js';
|
|
2
|
+
import type { Listener } from '@d-zero/puppeteer-general-actions';
|
|
3
|
+
import type { Page } from '@d-zero/puppeteer-page';
|
|
3
4
|
type Options = {
|
|
4
5
|
name: string;
|
|
5
6
|
hooks?: readonly PageHook[];
|
|
6
|
-
listener?: Listener<
|
|
7
|
+
listener?: Listener<PageScanPhase>;
|
|
7
8
|
} & Size;
|
|
8
9
|
export declare function beforePageScan(page: Page, url: string, options?: Options): Promise<void>;
|
|
9
10
|
export {};
|
package/dist/before-page-scan.js
CHANGED
|
@@ -12,7 +12,7 @@ export async function beforePageScan(page, url, options) {
|
|
|
12
12
|
width > 1000 ? Math.floor(width * 0.75) : Math.floor(width * 1.5),
|
|
13
13
|
deviceScaleFactor: resolution ?? 1,
|
|
14
14
|
});
|
|
15
|
-
if (page.url() === url) {
|
|
15
|
+
if ((await page.url()) === url) {
|
|
16
16
|
listener?.('load', { name, type: 'reaload' });
|
|
17
17
|
await page.reload({ waitUntil: 'networkidle0' });
|
|
18
18
|
}
|
|
@@ -28,6 +28,13 @@ export async function beforePageScan(page, url, options) {
|
|
|
28
28
|
log: (message) => listener?.('hook', { name, message }),
|
|
29
29
|
});
|
|
30
30
|
}
|
|
31
|
-
listener?.('scroll', {
|
|
32
|
-
|
|
31
|
+
listener?.('scroll', {
|
|
32
|
+
name,
|
|
33
|
+
scrollY: 0,
|
|
34
|
+
scrollHeight: Number.NaN,
|
|
35
|
+
message: 'Start scrolling',
|
|
36
|
+
});
|
|
37
|
+
await scrollAllOver(page, {
|
|
38
|
+
logger: (scrollY, scrollHeight, message) => listener?.('scroll', { name, scrollY, scrollHeight, message }),
|
|
39
|
+
});
|
|
33
40
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { beforePageScan } from './before-page-scan.js';
|
|
2
2
|
export { defaultSizes } from './default-sizes.js';
|
|
3
3
|
export { readPageHooks } from './read-page-hooks.js';
|
|
4
|
+
export { pageScanListener, pageScanLoggers } from './page-scan-listener.js';
|
|
4
5
|
export * from './types.js';
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { beforePageScan } from './before-page-scan.js';
|
|
2
2
|
export { defaultSizes } from './default-sizes.js';
|
|
3
3
|
export { readPageHooks } from './read-page-hooks.js';
|
|
4
|
+
export { pageScanListener, pageScanLoggers } from './page-scan-listener.js';
|
|
4
5
|
export * from './types.js';
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { PageScanPhase } from './types.js';
|
|
2
|
+
import type { Loggers } from '@d-zero/puppeteer-general-actions';
|
|
3
|
+
export declare const pageScanLoggers: Loggers<PageScanPhase>;
|
|
4
|
+
export declare const pageScanListener: (log: (log: string) => void) => import("@d-zero/puppeteer-general-actions").Listener<PageScanPhase>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { createListener } from '@d-zero/puppeteer-general-actions';
|
|
2
|
+
export const pageScanLoggers = (log) => ({
|
|
3
|
+
setViewport: ({ width }) => {
|
|
4
|
+
log(`↔️ Change viewport size to ${width}px`);
|
|
5
|
+
},
|
|
6
|
+
load({ type }) {
|
|
7
|
+
log(`%earth% ${type === 'open' ? 'Open' : 'Reload'} page`);
|
|
8
|
+
},
|
|
9
|
+
hook({ message }) {
|
|
10
|
+
log(message);
|
|
11
|
+
},
|
|
12
|
+
scroll({ scrollY, scrollHeight, message }) {
|
|
13
|
+
if (Number.isNaN(scrollHeight)) {
|
|
14
|
+
log(`%propeller% ${message}`);
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
log(`%propeller% ${scrollY}px/${scrollHeight}px (${Math.round((scrollY / scrollHeight) * 100)}%) ${message}`);
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
export const pageScanListener = createListener((log) => {
|
|
21
|
+
return pageScanLoggers(log);
|
|
22
|
+
});
|
package/dist/types.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type { Page } from 'puppeteer';
|
|
2
|
-
export type Listener<P> = (phase: keyof P, data: P[keyof P]) => void;
|
|
1
|
+
import type { Page } from '@d-zero/puppeteer-page';
|
|
3
2
|
export type Sizes = Record<string, Size>;
|
|
4
3
|
export type Size = {
|
|
5
4
|
width: number;
|
|
@@ -9,7 +8,7 @@ export type PageHook = (page: Page, size: Size & {
|
|
|
9
8
|
name: string;
|
|
10
9
|
log: (message: string) => void;
|
|
11
10
|
}) => Promise<void>;
|
|
12
|
-
export type
|
|
11
|
+
export type PageScanPhase = {
|
|
13
12
|
setViewport: {
|
|
14
13
|
name: string;
|
|
15
14
|
width: number;
|
|
@@ -25,5 +24,8 @@ export type Phase = {
|
|
|
25
24
|
};
|
|
26
25
|
scroll: {
|
|
27
26
|
name: string;
|
|
27
|
+
scrollY: number;
|
|
28
|
+
scrollHeight: number;
|
|
29
|
+
message: string;
|
|
28
30
|
};
|
|
29
31
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@d-zero/puppeteer-page-scan",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "Scanning page function for puppeteer",
|
|
5
5
|
"author": "D-ZERO",
|
|
6
6
|
"license": "MIT",
|
|
@@ -20,13 +20,15 @@
|
|
|
20
20
|
],
|
|
21
21
|
"scripts": {
|
|
22
22
|
"build": "tsc",
|
|
23
|
+
"watch": "tsc --watch",
|
|
23
24
|
"clean": "tsc --build --clean"
|
|
24
25
|
},
|
|
25
26
|
"dependencies": {
|
|
26
|
-
"@d-zero/puppeteer-
|
|
27
|
+
"@d-zero/puppeteer-general-actions": "1.1.0",
|
|
28
|
+
"@d-zero/puppeteer-scroll": "2.0.0"
|
|
27
29
|
},
|
|
28
30
|
"devDependencies": {
|
|
29
|
-
"puppeteer": "
|
|
31
|
+
"@d-zero/puppeteer-page": "0.2.0"
|
|
30
32
|
},
|
|
31
|
-
"gitHead": "
|
|
33
|
+
"gitHead": "1eb1c03400580040119121e11ffb33acd876fe1b"
|
|
32
34
|
}
|