Cliffy
zx
Our great sponsors
Cliffy | zx | |
---|---|---|
1 | 114 | |
347 | 41,571 | |
- | 2.5% | |
0.0 | 7.6 | |
almost 2 years ago | 1 day ago | |
TypeScript | JavaScript | |
ISC License | Apache License 2.0 |
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.
zx
- Zx 8.0
- Google ZX – A tool for writing better scripts
-
Dax – Cross-platform shell for Node.js
TIL about zx! https://github.com/google/zx
This suite of tools feels indispensable. Anything to keep me from having to write/maintain bash scripts that are more than a series of commands.
-
The Bun Shell
Great point! According to https://github.com/oven-sh/bun/blob/b433beb016470b87850f3c01..., Bun Shell took inspiration from zx[0], dax[1] and bnx[2]
[0]: https://github.com/google/zx
- Zx: A tool for writing better scritps
-
My script to install husky, commitlint and lint-staged with zx
If you want test it, you can run this script withzx :
-
YavaScript: Write shell scripts in JavaScript/TS instead of bash
I really love writing with zx. https://github.com/google/zx
We have some folks who have gone wild copy-pasting random fancy bash snippets into various developer helpers scripts. Zx did like 90% of that stuff out of the box, without being a pile of chaotic custom bash.
-
Scripting with Go: A Modest Proposal
I ended up using this for my cli scripting needs. https://github.com/google/zx
- And forget about shell scripting in /bin/sh ... I hate to say it, but, this is the middle of 2021 we have react and svelte we need more /etc/shells, we need modern languages all over, we can't do this anymore
-
Bash. For me it is "read only". It is too arcane, even for me. I use Perl now.
lol no javascript
What are some alternatives?
oclif - CLI for generating, building, and releasing oclif CLIs. Built by Salesforce.
shelljs - :shell: Portable Unix shell commands for Node.js
Commander.js - node.js command-line interfaces made easy
execa - Process execution for humans
listr - Terminal task list
Ink - 🌈 React for interactive command-line apps
TypeScript - TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
cli-table3 - Pretty unicode tables for the command line
terminal-image - Display images in the terminal
deno - A modern runtime for JavaScript and TypeScript.