0.0.5 • Published 7 months ago

playwright-single-file v0.0.5

Weekly downloads
-
License
AGPL-3.0-or-later
Repository
github
Last release
7 months ago

Playwright SingleFile

A Node.js library that integrates SingleFile functionality with Playwright for saving complete web pages as single HTML files. This package allows you to capture full-page snapshots including CSS, images, and other resources embedded directly in the HTML file.

Installation

pnpm add playwright-single-file

Requirements

  • Node.js 20 or higher
  • Playwright ^1.48.0 (peer dependency)

Usage

import { chromium } from 'playwright'
import { pageToSingleFile } from 'playwright-single-file'

// Basic usage
async function savePage(page) {
  const pageData = await pageToSingleFile(page, {
    removeScripts: true,
    compressHTML: false,
    removeHidden: false,
  })

  // pageData.content contains the HTML string
  // pageData.stats contains processing statistics
  await fs.writeFile('output.html', pageData.content)
}

// Advanced usage with script handling
async function savePageWithScripts(page) {
  const pageData = await pageToSingleFile(page, {
    removeScripts: false, // Keep JavaScript
    blockScripts: false, // Don't block script execution
  })

  // Stats will show processed vs discarded resources
  console.log('Stats:', pageData.stats)
  // {
  //   processed: { scripts: number, ... },
  //   discarded: { scripts: number, ... }
  // }
}

Options

  • removeScripts: Remove JavaScript from the page (default: false)
  • blockScripts: Block script execution (default: false)
  • compressHTML: Compress the output HTML (default: false)
  • removeHidden: Remove hidden elements (default: false)
  • removeEmptyLines: Remove empty lines from output (default: false)

Features

  • Captures complete web pages as single HTML files
  • Embeds CSS, images, and other resources
  • Configurable script handling (remove/keep/block)
  • Detailed processing statistics
  • Compatible with Playwright's automation capabilities
  • TypeScript support

Development

# Install dependencies
pnpm install

# Build the project
pnpm build

# Run tests
pnpm test

# Run tests with UI
pnpm test:ui

# Run tests in debug mode
pnpm test:debug

Made possible by

License

SingleFile and SingleFile CLI are licensed under AGPL. Code derived from third-party projects is licensed under MIT. Contact gildas.lormeau <at> gmail.com if you are interested in licensing the SingleFile code for a commercial service or product.

0.0.5

7 months ago

0.0.4

7 months ago

0.0.3

7 months ago

0.0.2

7 months ago

0.0.1

7 months ago