Skip to content

MethodGrab/initializer-utils

Folders and files

NameName
Last commit message
Last commit date

Latest commit

1575e30 Β· Dec 28, 2022

History

7 Commits
Oct 27, 2022
Oct 27, 2022
Oct 28, 2022
Oct 27, 2022
Oct 29, 2022
Oct 23, 2022
Oct 27, 2022
Dec 28, 2022
Oct 27, 2022
Oct 27, 2022
Oct 27, 2022
Oct 27, 2022
Oct 27, 2022
Oct 27, 2022

Repository files navigation

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.