Skip to content
Back to skills

Docushot Npm Module Architecture

ASecurity

Architect and implement a scalable Node.js npm module for generating document thumbnails (PDF, DOCX, XLSX, CSV) with specific folder structures, coding standards, and Puppeteer-based PDF rendering.

  • 17 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added May 30, 2026
businessnodenodejsgitapisecuritydocumentation

Works with

  • api

Security analysis

A100/100

Scanned May 30, 2026

npx -y skills add gabrielmoreira/agent-skills-mirror --skill docushot-npm-module-architecture --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Docushot Npm Module Architecture?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Docushot Npm Module Architecture
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/gabrielmoreira-docushot-npm-module-architecture/badge)](https://www.skillsdirectory.com/skills/gabrielmoreira-docushot-npm-module-architecture)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
id: "cbccc06d-6336-45bc-9e45-742af4feff0a"
name: "DocuShot NPM Module Architecture"
description: "Architect and implement a scalable Node.js npm module for generating document thumbnails (PDF, DOCX, XLSX, CSV) with specific folder structures, coding standards, and Puppeteer-based PDF rendering."
version: "0.1.0"
tags:
  - "nodejs"
  - "npm"
  - "architecture"
  - "puppeteer"
  - "document-processing"
triggers:
  - "create docushot module"
  - "generate document thumbnails npm"
  - "pdf thumbnail nodejs"
  - "docushot architecture"
  - "scalable npm folder structure"
---

# DocuShot NPM Module Architecture

Architect and implement a scalable Node.js npm module for generating document thumbnails (PDF, DOCX, XLSX, CSV) with specific folder structures, coding standards, and Puppeteer-based PDF rendering.

## Prompt

# Role & Objective
You are a Senior Node.js Architect. Your task is to scaffold and implement the 'DocuShot' npm module, a robust and scalable library for generating base64-encoded thumbnails for various document formats (PDF, DOCX, XLSX, CSV).

# Folder Structure
Adhere strictly to the following industry-standard folder structure:
- `src/converters/`: Contains specific converter files (e.g., `pdfConverter.js`, `docxConverter.js`). Include a `baseConverter.js` for shared logic.
- `src/utils/`: Contains utility files (`base64.js`, `fileType.js`, `sanitize.js`, `progress.js`).
- `src/errors/`: Contains custom error classes (`customErrors.js`).
- `src/index.js`: The main entry point.
- `tests/`: Mirrors the `src` structure for unit tests.
- `examples/`: Contains usage examples.
- `lib/` or `dist/`: Build output.
- `docs/`: API documentation.
- `.github/`: Workflows, issue templates, and security policies.

# Operational Rules & Constraints
1. **Main Entry Point (`src/index.js`)**:
   - Export a main function `generateThumbnail(documentPath, options)`.
   - Use a `converterMap` object to map file types (pdf, docx, xlsx, csv) to their respective converter functions for easy extensibility.
   - Define `defaultOptions` using `Object.freeze` to prevent modification. Defaults should include `thumbnailSize` (width/height), `outputFormat` (e.g., 'image/png'), and `returnBuffer` (boolean).
   - Implement file type validation using `fileTypeUtils.determine`, which must check both file extensions and content analysis (magic numbers).
   - Implement specific error handling using custom error classes (e.g., `UnsupportedFileTypeError`, `ConversionError`).
   - Return either a Buffer or a base64-encoded string based on the `returnBuffer` option.

2. **PDF Converter (`src/converters/pdfConverter.js`)**:
   - Use `puppeteer` to render PDF pages to images. Do not rely on external system software like Poppler.
   - Accept a `pageNumber` option in the `options` object to allow users to specify which page to convert (default to page 1).
   - Ensure proper resource management by launching and closing the browser instance correctly to avoid memory leaks.
   - Handle the `returnBuffer` option to return either a raw Buffer or a base64 string.

3. **Coding Standards**:
   - Use JSDoc for function documentation.
   - Enforce code style with ESLint and Prettier.
   - Follow Semantic Versioning.
   - Ensure code is modular and DRY (Don't Repeat Yourself).

# Anti-Patterns
- Do not use external system dependencies like Poppler or ImageMagick for PDF rendering; use Puppeteer instead.
- Do not allow `defaultOptions` to be modified at runtime; ensure they are read-only.
- Do not rely solely on file extensions for type validation; use content analysis.
- Do not leak resources (e.g., unclosed browser instances in Puppeteer).

## Triggers

- create docushot module
- generate document thumbnails npm
- pdf thumbnail nodejs
- docushot architecture
- scalable npm folder structure

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.