deno-cliffy
awesome-tagged-templates
deno-cliffy | awesome-tagged-templates | |
---|---|---|
5 | 27 | |
863 | 92 | |
- | - | |
7.9 | 10.0 | |
27 days ago | about 3 years ago | |
TypeScript | ||
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.
deno-cliffy
- The xz attack shell script
-
Bun 1.1
Also with Deno, it become very easy to write typed cli. .ts file can be run as script very easily with permission access defined on top of the script such as:
#!/usr/bin/env -S deno run --allow-net
Then one can just run ./test.ts if the script has +x permission.
Also project such as https://cliffy.io has made writing cli way more enjoyable than node.
It is a good idea to beware of the VC. So it is good idea to support project such as Hono (projects conform to modern web standard, and is runtime agnostic for JS).
-
Create a commit message in an interactive format.
import * as hoipoiCapsule from "https://deno.land/x/[email protected]/mod.ts"; const commitMessageTemplate = `{{type}}({{scope}}): {{summary}} {{body}} BREAKING CHANGE: {{breakingChange}}`; hoipoiCapsule.useCase.fillInCommitMessage.run({ commitMessageTemplate, questionList: [ { /** * The answer applies to the {{type}} part of commitMessageTemplate. */ target: "type", /** * Pre-prepared questions. */ q: hoipoiCapsule.preset.fillInCommitMessage.conventionalcommits.qMap.type, /** * Thus, you can also create your own questions. */ // q: typeQ, /** * Modify the commit message. * Use this function when a message is unanswered, for example. */ fixCommitMessage: (p) => { if (p.answerMap["type"] === "???") { return p.commitMessage.replace(/\r?\n{2,}/, "\n").trim(); } return p.commitMessage; }, }, ], }); /** * Please check here. * https://github.com/c4spar/deno-cliffy */ const typeQ = () => hoipoiCapsule.userInterface.prompt.Select.prompt({ message: "Select type.", search: true, options: [ { name: "Build: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)", value: "Build", }, { name: "CI: Changes to our CI configuration files and scripts (examples: CircleCi, SauceLabs)", value: "CI", }, { name: "Docs: Documentation only changes", value: "Docs" }, { name: "Feat: A new feature", value: "Feat" }, { name: "Fix: A bug fix", value: "Fix:" }, { name: "Perf: A code change that improves performance", value: "Perf" }, { name: "Refactor: A code change that neither fixes a bug nor adds a feature", value: "Refactor", }, { name: "Test: Adding missing tests or correcting existing tests", value: "Test", }, ], });
-
githooked - The Deno git-hook handler for your lifecycle.
Just wanted to add that v0.0.6 has been released. I changed to a more refined CLI library using https://github.com/c4spar/deno-cliffy/ so that it can be more easily maintained. Still works just the same, but more refined and clean code since when it may have been previously looked at.
- C4spar/deno-cliffy: Command line framework for deno
awesome-tagged-templates
-
How and why do we bundle zx?
When zx first appeared, it was a tiny esm script that just proposed a new idea for how child_process.spawn API could be enhanced with string template literals.
-
Building a Dynamic Client-Side Blog with Secutio & Bootstrap
The template combines HTML and JavaScript. To understand this approach, consider how PHP pages are generated. In PHP, code is embedded within the HTML. Similarly, this library leverages JavaScript template literals to achieve the same objective. From the definition: "Template literals are literals delimited with backtick (`) characters, allowing for multi-line strings, string interpolation with embedded expressions, and special constructs called tagged templates".
-
Number and Currency Formatting in JavaScript using Intl.NumberFormat
The numbers we are printing are monetary values so they are missing a decimal value and a currency symbol. One way we can do this is by using JavaScript template literals to append and prepend the pieces we are missing.
-
Bun 1.1
Tagged templates[0], the language feature that enables this, were introduced in ECMAScript 2015 apparently – arguably at least somewhat new in the lifespan of JavaScript. :)
Java is getting a similar feature with template processors[1]. It would be nice to have it in Python as well – i.e. not just f-strings, but something that (like tagged templates) allows a template function process the interpolated values to properly encode them for whatever language is appropriate (e.g. shell, SQL, HTML, etc.).
[0] https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...
[1] https://openjdk.org/jeps/459
-
JavaScript Template Literals
References: Template literals (Template strings)
-
A React Developers Guide to Writing Enhance Components
We are using a string template literal to create the tag and the ${} syntax to provide string interpolation, that is, substituting the values of href and altText into our string.
-
TypeScript Template Literal Types: Practical Use-Cases for Improved Code Quality
In TypeScript, a string literal type is a type that represents a specific set of string values. For example, the type "red" | "green" | "blue" represents the set of three string values "red", "green", and "blue". Template literal types allow you to perform operations on these string literal types using the same syntax as template literal strings in JavaScript.
-
Exploring Secutio Task by Task. Setting "Events" Like Stylesheets!
The example also showcases the use of inline templates, employing JavaScript Template Literals. The JSON data obtained from the GET request is accessible through the "data" variable.
-
The Bun Shell
These are called "tagged templates": https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...
- AI for Web Devs: Your First API Request to OpenAI
What are some alternatives?
node-cli-boilerplate - 🪓 Create node cli with this user friendly boilerplate
rewrite-styled-components - Rewrite library styled-components in ~ 60 line code
yaclt - Yet Another Change Log Tool
dom-examples - Code examples that accompany various MDN DOM and Web API documentation pages
denoliver - A simple, dependency free static file server for Deno with possibly the worst name ever.
bnx - zx inspired shell for Bun.
forge-node-app - 🛠📦🎉 Generate Node.js boilerplate with optional libraries & tools
enhance-starter-project - file based routing metaframework for blazing fast custom elements
deno-eclipt - A flexible Deno library to create CLIs
dax - Cross-platform shell tools for Deno and Node.js inspired by zx.
auto - Auto is a TypeScript-powered command-line automation tool.
enhance.dev - Docs website for Enhance!