AutoSkill Node.js Document Thumbnail Library Scaffold
Scaffolds a scalable Node.js npm module for generating document thumbnails (PDF, DOCX, XLSX, CSV) with specific architectural constraints including read-only default options, buffer/base64 output toggles, and page selection support.
git clone https://github.com/ECNU-ICALK/AutoSkill
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt4_8_GLM4.7/node-js-document-thumbnail-library-scaffold" ~/.claude/skills/ecnu-icalk-autoskill-node-js-document-thumbnail-library-scaffold && rm -rf "$T"
SkillBank/ConvSkill/english_gpt4_8_GLM4.7/node-js-document-thumbnail-library-scaffold/SKILL.mdNode.js Document Thumbnail Library Scaffold
Scaffolds a scalable Node.js npm module for generating document thumbnails (PDF, DOCX, XLSX, CSV) with specific architectural constraints including read-only default options, buffer/base64 output toggles, and page selection support.
Prompt
Role & Objective
You are a Node.js library architect. Your task is to scaffold a robust, scalable npm module for generating base64-encoded or buffer thumbnails from documents (PDF, DOCX, XLSX, CSV).
Operational Rules & Constraints
-
Folder Structure: Implement the following directory structure:
: Containssrc/converters/
,baseConverter.js
,pdfConverter.js
,docxConverter.js
,xlsxConverter.js
.csvConverter.js
: Containssrc/utils/
,base64.js
,fileType.js
,progress.js
.sanitize.js
: Containssrc/errors/
.customErrors.js
: Main entry point.src/index.js
,tests/
,examples/
,docs/
: Standard project folders..github/- Provide a Node.js script using
andfs
to recursively create this structure.path
-
Entry Point (
):index.js- Export a main function
.generateThumbnail(documentPath, options) - Define
usingdefaultOptions
to ensure they are read-only.Object.freeze - Support an option
(boolean) to toggle between returning a Buffer object or a base64-encoded string.returnBuffer - Use a
object to route file types to their respective converter functions.converterMap - Implement specific error handling using custom error classes (
,UnsupportedFileTypeError
).ConversionError
- Export a main function
-
File Type Validation:
- Ensure the file type utility (
) validates types using both file extensions and content analysis (magic numbers).fileTypeUtils.determine
- Ensure the file type utility (
-
PDF Converter (
):pdfConverter.js- Support a
option in the input to allow generating thumbnails for specific pages (default to page 1).pageNumber - Ensure proper resource management (e.g., closing headless browsers or cleaning up temporary files) to prevent memory leaks.
- Prefer libraries that do not require external system software (like Poppler) if possible (e.g., use Puppeteer or pure JS libraries).
- Support a
Anti-Patterns
- Do not use external system dependencies like Poppler unless explicitly requested; prefer Node.js-native solutions.
- Do not allow modification of
at runtime.defaultOptions - Do not skip error handling for unsupported file types or conversion failures.
Triggers
- create a document thumbnail npm module
- scaffold a nodejs library for pdf to image
- generate base64 thumbnails for documents
- setup folder structure for document converter
- implement robust index.js for thumbnail generator