npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

ravi-codegen

v2.0.0

Published

A template based, language agnostic, node scriptable code generator for developers.

Readme

node-codegen

A template based, language agnostic, node scriptable code generator for developers .

Installation

To install the the ravi-codegen run the following cmd from terminal

npm i -g ravi-codegen

Initialize code generator

Run cmd from terminal

codegen init

It will create a folder .codegen where all your templates reside

Templates

Every folder in .codegen directory considered as a template. Every template consist of at least two files

  1. Template script (template.js)
  2. Template (template.ejs)

Template script

Template script file is the entry point of your template script. Every template script must expose a default function that returns one or more Template models.

Every template model can have following fields.

  1. fileName - Template output file name, default: <template-name>
  2. directory - Output directory relative path from current directory, default: ., eg. ../entities
  3. overideFile - Should override existing file if true, default: false
  4. model - any data which is required by the template, default: null
  5. templateFile - template to be used for this template model, default: template.ejs

So, a very simple script will look like as following

module.exports = async function script (args) { // args, provided while running the script
    let templateModels = []; // for every model in templateModels codegen execute and generate some file defined by the model rules.

    // create template model
    const templateModel = {
        fileName: '', // Template output file name, default: <template-name>
        directory: '.', // Output directory relative path from current directory, default: ., eg. ../entities
        templateFile: '', // Template name to use, default: template.ejs
        model: {
            // add model properties here, any property added will be available in ejs template used.
            msg: 'lets start generating your code',
        }, 
        overideFile: false, // Should override if file exists, default false
    };
    templateModels.push(templateModel);
    return templateModels;
}

Script Examples

Template file

ravi-codegen uses the EJS template to generate the files. Take a look at EJS understand text templating language.

Create new template via cli

Run cmd from terminal

codegen new <template-name>

The above command will create a folder in .codegen directory with two files, namely template.js and template.ejs

Run the codegen template

Run cmd from terminal

codegen run <template-name> [args]

The above command will execute and create code files according to your templates.