JSPM

resource-saver-headless

0.9.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1
  • Score
    100M100P100Q22041F
  • License ISC

A robust Node.js utility to save webpage resources using Chrome DevTools Protocol via Puppeteer. Extract and download all static assets from any webpage for offline use or analysis.

Package Exports

  • resource-saver-headless
  • resource-saver-headless/dist/src/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (resource-saver-headless) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

resource-saver-headless

Save every resource a webpage needs for offline use — HTML, CSS, JavaScript, images, fonts, and more — powered by Puppeteer and the Chrome DevTools Protocol.

Key Features

  • Works with any website, including single-page applications (SPAs)
  • Preserves the original directory structure
  • Concurrent, resumable downloads with robust error handling
  • Optional headless/DevTools debug mode
  • Modern, strictly-typed TypeScript codebase

Installation

git clone https://github.com/minzique/resource-saver-headless.git
cd resource-saver-headless
pnpm install
pnpm build

CLI Usage

# Save all resources from a webpage to ./output
resource-saver save https://example.com ./output

Options

Flag Description Default
--timeout <ms> Request timeout in milliseconds 30000
--parallel <num> Maximum concurrent downloads 10
--debug Launch Chrome window + DevTools false

Programmatic Usage

import { BrowserHelper } from 'resource-saver-headless';

async function save() {
  const browser = new BrowserHelper({ timeout: 30000 });
  await browser.init('https://example.com');

  const resources = await browser.getResources();

  for (const { path, content } of resources) {
    // Persist to disk or process as needed
  }

  await browser.close();
}

TODO

  • Core resource extraction engine
  • CLI interface
  • Concurrent downloads & robust error handling
  • Debug / DevTools mode
  • Strict TypeScript setup
  • Enhanced SPA support
  • Source-map extraction for original source files

License

ISC License — see the LICENSE file for details.