Skip to content

Latest commit

 

History

History
81 lines (45 loc) · 2.27 KB

README.md

File metadata and controls

81 lines (45 loc) · 2.27 KB

initializer-utils

GitHub Workflow Status npm version

Utilities for creating npm initializers.

Usage

  1. npm install @methodgrab/initializer-utils --save
    
  2. Import the utilities for creating your initializer CLI.
    // cli.ts
    import { askFor, copyFiles } from '@methodgrab/initializer-utils';
    
    // ...
  3. Import the utilities for testing your initializer CLI.
    // cli.test.ts
    import { fileExists, runCLI } from '@methodgrab/initializer-utils/testing';
    
    // ...

For a full example checkout the examples folder.

Project Goals

What this is:

  • ✅ A simple, lightweight, collection of utilities for building new project initializers.

What this is not:

  • ❌ A fully fledged generator/skaffolding tool.
    There are plenty of great tools like Yeoman & Hygen that already do this.

What's included

@methodgrab/initializer-utils

These are utilities to help you create your initializer.

askFor

Use interactive prompts to gather information from a user.

validateAll, validator, required, minLength, maxLength

These are validation helpers that can be used with the validate property in askFor prompts.

copyFiles, copyFile

Copy a directory of templates, or a single template, to the CWD the user ran the initializer in.

Variables defined using curly braces ({{ foo }}) will be replaced with the values in the supplied data object.
When combined with askFor this lets you easily include the users answers in the copied files.

@methodgrab/initializer-utils/testing

These are utilities to help you test your initializer.

runCLI

This runs your initializer (by default in a temp directory) with any prompt answers you specify.

fileExists

This is a very basic utility to assert that a file in the output directory runCLI ran in exists.