meow-helper v1.6.2
Features
- Generates help text without effort. See images below.
- Provides common flags. (
--helpand--version) meowthrows unknown flags with theallowUnknownFlagsoption.meow-helpershows help text instead of throwing. You can change this behavior with thenotThrowoption.- Formats, colorizes, and aligns arguments, options, default values, and their descriptions.
- Marks required fields with an
*. - Supports maximum line length and automatic word wrap.
- Splits options into two lines if space for description is too small. You can change this behavior with the
multilineThresholdoption. - Generates description, usage, arguments, flags/options, examples sections.
- Colorizes command in usage and examples and adds
$before command. - Exports chalk and cliui.
- Supports both
{ autoHelp: true }and{ autoHelp: false }. Adds a description to help if required. - Moves three dots in arguments outside of brackets. For example:
args: { “path...” }becomescommand <path>... - Adds three dots
...to flags with multiple value.
Synopsis
TypeScript
import getHelp, { commonFlags, chalk, cliui } from "meow-helper";
import type { ExtendedAnyFlags } from "meow-helper";
import { readFileSync } from "fs";
import { join } from "path";CommonJS
const { default: getHelp, commonFlags, chalk, cliui } = require("meow-helper");
const { readFileSync } = require("fs");Usage
const flags: ExtendedAnyFlags = {
name: { alias: "n", type: "string", desc: "Name" },
cwd: { alias: "c", type: "string", desc: "Working path." },
context: { type: "string", desc: "Context." },
...commonFlags,
};
// Groups options. Keys are the first option of the group.
const groups = {
name: { title: "General Options", description: "Some description" },
context: { title: "Other Options", description: "Other description" },
};
const args = { "path...": "Paths of files." };
const pkg = JSON.parse(readFileSync(join(__dirname, "../package.json"), { encoding: "utf8" }));
meow(getHelp({ flags, args, groups, pkg }), { flags, pkg, allowUnknownFlags: false });const help = getHelp({
lineLength: 80,
titleLength: 15,
pkg: {}, // package.json data
command: "not-sync",
description: "Description of the command",
args: { path: "Path of file." },
flags, // meow flags with `desc` key.
examples: ["not-sync node_modules,dist,coverage", "not-sync node_modules,dist,coverage --ignoreConfigs .gitignore"],
multilineThreshold: 50,
autoHelp: true,
notThrow: true,
});Details
meow-helper generates single-line or multi-line help text based on the multilineThreshold option automatically.
Single-Line

Multi-Line

API
Table of contents
Interfaces
Type aliases
ExtendedAnyFlag
Ƭ ExtendedAnyFlag: AnyFlag & { desc?: string }
Meow flag extended with desc key.
Defined in: get-help.ts:8
ExtendedAnyFlags
Ƭ ExtendedAnyFlags: Record<string, ExtendedAnyFlag>
Record of extended any flag.
Defined in: get-help.ts:11
Variables
cliui
• Const cliui: any
Defined in: index.ts:5
commonFlags
• Const commonFlags: ExtendedAnyFlags
Very common flags
Defined in: index.ts:12
Functions
default
▸ default(helpOptions: HelpOptions): string
Generate help text for meow.
Example
const flags: ExtendedFlags = { cwd: { alias: "c", type: "string", desc: "Current CWD." }, ...commonFlags };
const args = { path: "Path of file." };
meow(getHelp({ flags, args, pkg }), { flags, pkg, allowUnknownFlags: false });Parameters:
| Name | Type | Description |
|---|---|---|
helpOptions | HelpOptions | are options |
Returns: string
Defined in: get-help.ts:193
Interfaces
meow-helper / HelpOptions
Interface: HelpOptions
Options below modify behaviour of [getHelp] function.
Properties
args
• Optional args: Record<string, string>
Name and description of positional arguments.
Defined in: get-help.ts:28
autoHelp
• Optional autoHelp: boolean
This option sets whether the autoHelp option of meow is used. If this is true, the description text is not added, because meow adds it automatically.
Defined in: get-help.ts:36
command
• Optional command: string
Name of the command.
Defined in: get-help.ts:22
description
• Optional description: string | string[]
Command description.
Defined in: get-help.ts:24
examples
• Optional examples: string | string[]
A single example or list of examples can be provided to show in the help text. Lines are prefixed with $ and the command is colored automatically.
Defined in: get-help.ts:32
flags
• Optional flags: ExtendedAnyFlags
Flags provided to meow. Uses desc key for the description.
Defined in: get-help.ts:30
groups
• Optional groups: Record<string, { description?: string ; title?: string }>
Option groups shown in help text. Key is the first option in group.
Defined in: get-help.ts:40
lineLength
• Optional lineLength: number
Text longer than line length will be word-wrapped.
Defined in: get-help.ts:16
multilineThreshold
• Optional multilineThreshold: number
If space available for option descriptions is less than this threshold, descriptions are given their own rows. So they have more space. See images above.
Defined in: get-help.ts:34
notThrow
• Optional notThrow: boolean
Whether to throw an error when meow exits with exit code 2. If true, it adds process.on("exit") to show help and exits with code 0.
Defined in: get-help.ts:38
pkg
• Optional pkg: Record<string, any>
package.json data.
Defined in: get-help.ts:20
titleLength
• Optional titleLength: number
The total length of the colored background area of titles.
Defined in: get-help.ts:18
usage
• Optional usage: string | string[]
Uasge text is shown at the beginning of help text. Lines are prefixed with $ and command is colored automatically.
Defined in: get-help.ts:26