0.1.0 • Published 2 years ago

@methodgrab/initializer-utils v0.1.0

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

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:

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

What this is not:

  • :x: 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.