A Node.js utility package for generating random placeholder images using server-side canvas.
circle,rectangle,triangle,star).Bufferfor direct upload/response pipelines.bundle-entryimport support.# pnpmpnpm add @dooboostore/lib-node# npmnpm install @dooboostore/lib-node# yarnyarn add @dooboostore/lib-node@dooboostore/lib-nodeexposes:
RandomImageimport{RandomImage}from'@dooboostore/lib-node';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';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();RandomImagebuffer(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'});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}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.
The detailed API documentation is available on our documentation website.
This package is licensed under theMIT License.