@stacksjs/cli v0.59.11
Stacks CLI
The simple way to build beautiful CLIs.
โ๏ธ Features
- ๐จ Easily create beautiful CLI apps
- โก๏ธ Lightweight, user-friendly, interactive prompts
- ๐ฆ Elegant terminal spinners
- โ๏ธ Helper methods to run commands
๐ค Usage
bun install -d @stacksjs/cli
Now, you can use it in your project:
// command.ts
// you may create create a relatively complex CLI UI/UX via the following:
import { ExitCode, command, italic, prompts, spawn, spinner } from '@stacksjs/cli'
const stacks = command('stacks')
stacks
.command('example', 'A dummy command') // bun buddy example
.option('-i, --install', 'The install option', { default: true })
.action(async (options) => {
if (options.install)
await install()
const answer = await prompts.select({
type: 'select',
message: 'Are you trying to run this command?',
choices: [
{ title: 'Run the command', value: 'run' },
{ title: 'Do not run the command', value: 'do-not-run' },
],
})
if (answer === 'run')
install()
else if (answer === 'do-not-run')
log.info('Not running the command')
else process.exit(ExitCode.InvalidArgument)
})
async function install() {
try {
const spin = spinner('Running...').start()
setTimeout(() => {
spin.text = italic('This may take a few moments...')
}, 5000)
await spawn('bun install')
spin.stop()
}
catch (error) {
log.error(error)
}
}
command.help() // automatically expose a -h and --help flag
command.version(version) // automatically expose a -v and --version flag
command.parse() // parse the command
You may now run the command via:
bun command.ts
To view a more detailed example, check out Buddy.
You may also use any of the following CLI utilities:
import {
ansi256Bg,
bgBlack,
bgBlue,
bgCyan,
bgGray,
bgGreen,
bgLightBlue,
bgLightCyan,
bgLightGray,
bgLightGreen,
bgLightMagenta,
bgLightRed,
bgLightYellow,
bgMagenta,
bgRed,
bgWhite,
bgYellow,
black,
blue,
bold,
cyan,
dim,
gray,
green,
hidden,
inverse,
italic,
lightBlue,
lightCyan,
lightGray,
lightGreen,
lightMagenta,
lightRed,
lightYellow,
link,
magenta,
red,
reset,
strikethrough,
underline,
white,
yellow
} from '@stacksjs/cli'
log.info(`hello ${bold(italic('world'))}`)
To view the full documentation, please visit https://stacksjs.org/cli.
๐งช Testing
bun test
๐ Changelog
Please see our releases page for more information on what has changed recently.
๐ Contributing
Please review the Contributing Guide for details.
๐ Community
For help, discussion about best practices, or any other conversation that would benefit from being searchable:
For casual chit-chat with others using this package:
Join the Stacks Discord Server
๐๐ผ Credits
Many thanks to the following core technologies & people who have contributed to this package:
๐ License
The MIT License (MIT). Please see LICENSE for more information.
Made with ๐
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
11 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago