Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

jatg

Package Overview
Dependencies
Maintainers
0
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

jatg

Just Another Template Generator

  • 1.0.1
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
9
decreased by-40%
Maintainers
0
Weekly downloads
 
Created
Source

jatg - just another template generator

jatg is a low configuration tool to generate files based on templates.

Most template generation tools require elaborate configurations, lack intuitive usage, are tied to a specific framework or do not support variable transformations. The objective of this tool is to be as intuitive as possible while providing a flexible feature set.

Simply create a template, add it to the configuration file and then run the CLI to generate files.

Setting Up

Create the templates.json

You can create the file by running npx jatg --init, or just start by copying the example below:

templates.json

{
  "$schema": "https://unpkg.com/jatg/templates.schema.json",
  "templates": [
    {
      "name": "my-awesome-template",
      "sourcePaths": ["./templates"],
      "outputPath": "./src/modules",
      "variables": [
        {
          "variable": "name",
          "name": "Module Name"
        }
      ]
    }
  ]
}

The format of this file is documented through the TemplateConfiguration TypeScript interface and the JSON Schema. Refer them for a list of all possible properties.

Create your template files

The file names don't need to follow any specific extension. If you prefer, you can end them with .template. The .template extension will be removed for the final file.

You can have as many files as needed for a single template.

templates/%name%.ts

export class %name.pascalCase% {
  // ...
}

The template can have variables they can be transformed through functions. Read more about them in the variables section.

Run it

Just run the CLI to generate files based on the templates created.

You'll be prompted which template you want to generate, and the variable values.

npx jatg

Pretty straightforward, isn't it?


Variables

A template can have multiple variables. Those can be defined in the configuration and can be used to make template contents and file names dynamic.

The syntax is the variable name surrounded by percentages (%variable_name%) and the value can be formatted through special functions, separated by dots (%variable_name.upper%).

For the variable named entity and the value user-post, here are a few examples:

TemplateResultWhat is hapenning?
%entity%user-postprints the variable value as is
%entity.upper%USER-POSTprints the variable formatted value in uppercase
%entity.plural.upper%USER-POSTSprints the variable value formatted in plural and in uppercase
%entity.plural.dotCase.upper%USER.POSTSprints the variable value formatted in plural, in dot case and in uppercase

Variables can be used in template file contents, the template file name and the configuration outputPath.

Formatting Functions

Basic

These are based on the basic string functions included in JavaScript.

FunctionBeforeAfter
upper"TwoWords""TWOWORDS"
lower"TwoWords""twowords"
trim" TwoWords ""TwoWords"
unaccent"maçã""maca"
Change Case

These functions use change-case under the hood.

FunctionResult
camelCasetwoWords
capitalCaseTwo Words
constantCaseTWO_WORDS
dotCasetwo.words
kebabCasetwo-words
noCasetwo words
pascalCaseTwoWords
pascalSnakeCaseTwo_Words
pathCasetwo/words
sentenceCaseTwo words
snakeCasetwo_words
trainCaseTwo-Words
initialsTW
Pluralize

These functions use pluralize under the hood.

FunctionResult
pluraltwoWords
singulartwoWord

CLI

Install

npx

You can run the generation through npx by simply running the command: npx jatg.

Global

You can also install globally through npm install --global jatg and run it directly through jatg.

Project

You can also install it as a dev dependency to your project through npm install -D jatg and add a script in your package.json:

{
  // ...
  "scripts": {
    "generate": "jatg"
  }
  // ...
}

Then you can run it through npm run generate.

Options

You can also specify options, such as picking a specific template:

npx jatg --template my-awesome-template

For a list of options, run jatg --help.

FAQs

Package last updated on 09 Jul 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc