https://github.com/methodgrab/initializer-utils
Utilities for creating npm initializers.
https://github.com/methodgrab/initializer-utils
Last synced: 3 months ago
JSON representation
Utilities for creating npm initializers.
- Host: GitHub
- URL: https://github.com/methodgrab/initializer-utils
- Owner: MethodGrab
- License: isc
- Created: 2022-10-27T17:51:28.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-07-20T00:42:56.000Z (almost 2 years ago)
- Last Synced: 2025-04-12T03:58:30.526Z (3 months ago)
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/@methodgrab/initializer-utils
- Size: 154 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# initializer-utils
[](https://github.com/MethodGrab/initializer-utils/actions/workflows/CI.yaml)
[](https://www.npmjs.com/package/@methodgrab/initializer-utils)> Utilities for creating [npm initializers](https://docs.npmjs.com/cli/commands/npm-init).
## Usage
1.
```
npm install @methodgrab/initializer-utils --save
````
1. Import the utilities for creating your initializer CLI.
```typescript
// cli.ts
import { askFor, copyFiles } from '@methodgrab/initializer-utils';// ...
```
1. Import the utilities for testing your initializer CLI.
```typescript
// cli.test.ts
import { fileExists, runCLI } from '@methodgrab/initializer-utils/testing';
// ...
```For a full example checkout the [examples](./examples/basic) 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.