Cliffy
listr
Our great sponsors
Cliffy | listr | |
---|---|---|
1 | 5 | |
347 | 3,248 | |
- | - | |
0.0 | 0.0 | |
almost 2 years ago | over 1 year ago | |
TypeScript | JavaScript | |
ISC License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Cliffy
-
Is Node.js a good way to implement a CLI app with persistence?
Due to Node's asynchronous behavior, it makes Node great for long-running processes that make a lot of HTTP requests, database calls, and other async ops, like a web server or a REST API. However, if I am making a CLI tool for pretty much personal use only, with very minimal async operations, then blocking the event loop with a synchronous function that will resolve almost immediately will make no difference perceivable to a human brain or have any speed benefits that someone can actually observe (think `fs.readFileSync` or `require('dotenv') of 10 line config file, or a quick embedded db (sqlite) query with only ~100 records. I'm wondering what the best way to implement the database part of the app synchronous. I can read/write to JSON files but it would be tricky because the data is relational, and some complex joins and other data wrangling operations are required (complex to perform in JS but are easy to implement in a SQL statement). It's not important what the operations are, that's not the point of this post. This is mostly a personal project of interest: making this CLI tool completely avoiding any async operations/using no promises. I would like to use node tho, as I said this is just out of interest and I also want to experiment with several CLI libraries such as Ink or Cliffy.
listr
-
'File -> New Project...'
I’m gonna make a console based application, asking user to make some choices, kicking off some async tasks, giving feedback etc. I’ve found inquirer and listr for handling part of this.
- Создаем React-компоненты иконок с помощью Figma API и SVGR. Часть 1.
-
タスク (tasuku) — The minimal task runner for Node.js
Major shoutout to listr + listr2 for being the motivation and visual inspiration for Tasuku, and for being my go-to task runner for a long time. I made Tasuku because I eventually found that they were too structured and declarative for my needs.
-
A Guide to CLIs with Node.js
Remember the IF ELSEIF we had setup for arguments? Let's add a --help argument that lists out all the commands. Lists are a very important part of CLIs. I'm using a helpful package listr to handle these lists. Let's add the following code into our file in the place where we have our IF checks.
What are some alternatives?
Commander.js - node.js command-line interfaces made easy
oclif - CLI for generating, building, and releasing oclif CLIs. Built by Salesforce.
listr2 - NodeJS Task List derived from the best! Create beautiful CLI interfaces via easy and logical to implement task lists that feel alive and interactive.
DraftLog - 📜 Create mutable log lines into the terminal, and give life to your logs!
conf - Simple config handling for your app or module
cli-table3 - Pretty unicode tables for the command line
ora - Elegant terminal spinner
Bit - A build system for development of composable software.
execa - Process execution for humans
Ink - 🌈 React for interactive command-line apps
cli-truncate - Truncate a string to a specific width in the terminal