@dooboostore/lib-node

NPM versionBuild and TestLicense: MIT

A Node.js utility package for generating random placeholder images using server-side canvas.


Features

  • Generate random image compositions with shapes (circle,rectangle,triangle,star).
  • Export asBufferfor direct upload/response pipelines.
  • Export as Base64 data URL for inline preview use cases.
  • Save output to disk with sync or async file APIs.
  • Root-first andbundle-entryimport support.

Installation

# pnpmpnpm add @dooboostore/lib-node# npmnpm install @dooboostore/lib-node# yarnyarn add @dooboostore/lib-node

Public API

@dooboostore/lib-nodeexposes:

  • RandomImage

Import Guide

Root import (recommended)

import{RandomImage}from'@dooboostore/lib-node';

Bundle entry import

Thebundle-entrysubpath re-exports everything from the root import plus the@dooboostore/coreand@dooboostore/core-nodepeer packages as namespaces (Core,CoreNode), so consumers can reach them without adding separate imports.

import{RandomImage,Core,CoreNode}from'@dooboostore/lib-node/bundle-entry';

Basic Usage

import{RandomImage}from'@dooboostore/lib-node';import*aspathfrom'path';asyncfunctiongenerateImage() {constrandomImage =newRandomImage();constfilePath = path.join(__dirname,'my-random-image.png');awaitrandomImage.writeFile({path: filePath,size: {w:200,h:200},mimeType:'image/png'});console.log(`Image saved to${filePath}`);
}generateImage();

API Reference

RandomImage

buffer(config)

Returns image bytes asBuffer.

constimage =newRandomImage();constbuffer = image.buffer({size: {w:400,h:240},mimeType:'image/png'});

base64(config)

Returns a Base64 data URL string.

constimage =newRandomImage();constbase64 = image.base64({size: {w:300,h:300},mimeType:'image/jpeg',quality:0.9});

writeFile(config)

Writes image to disk asynchronously.

awaitnewRandomImage().writeFile({path:'./out/random-image.png',size: {w:512,h:512},mimeType:'image/png'});

writeFileSync(config)

Writes image to disk synchronously.

newRandomImage().writeFileSync({path:'./out/random-sync.jpg',size: {w:256,h:256},mimeType:'image/jpeg'});

Configuration Shape

All methods use a variant of this config:

{size: {w:number;h:number; },mimeType?:'image/png'|'image/jpeg',// default 'image/png'quality?:number,// only for jpeg base64 outputpath?:string// required for writeFile/writeFileSync}

Typical Use Cases

  • Generating placeholder images for test fixtures.
  • Producing random thumbnails for QA/demo data.
  • Returning generated image data from Node HTTP endpoints.
  • Batch image generation in scripts.

Troubleshooting

Issue:canvasinstall/build fails on CI or local machine
Solution:install platform build dependencies required bycanvasbefore package install.

Issue:Output looks too compressed in JPEG mode
Solution:raisequalityvalue inbase64({ mimeType: 'image/jpeg', quality }).

Issue:File write fails with ENOENT
Solution:create parent directories before callingwriteFile/writeFileSync.

Learn More

The detailed API documentation is available on our documentation website.

Related Packages

License

This package is licensed under theMIT License.