Skip to content

minzique/resource-saver-headless

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

Node.js utility for downloading all webpage resources files while keeping folder structures.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors