Files
awesome-awesomeness/terminal/nodeesm
Jonas Zeunert 3619ac710a Rendered
2024-04-19 21:42:27 +02:00

189 lines
14 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
 Awesome Node ESM
!Awesome (https://awesome.re/badge-flat.svg) (https://awesome.re)
A curated list of Node.js modules with native ESM support and resources about ES Modules in Node.js.
Contents
- Articles (#articles)
- Tools (#tools)
- Packages (#packages)
 - Web frameworks (#web-frameworks)
 - HTTP (#http)
 - WebSocket (#websocket)
 - Template engines (#template-engines)
 - SSR (#ssr)
 - Databases (#databases)
 - Logging (#logging)
 - Testing (#testing)
 - CLI (#cli)
 - Date (#date)
 - File system (#file-system)
 - Utility (#utility) (value manipulations)
 - Random (#random)
 - Parsing (#parsing)
 - Compression (#compression)
 - Performance (#performance)
 - AST (#ast)
 - Functional programming (#functional-programming)
 - Math (#math)
 - Ethereum (#ethereum)
 - Other (#other)
Articles
- ECMAScript Modules Node.js docs (https://nodejs.org/api/esm.html)
- How to Use ESM on the Web and Node.js (https://byteofdev.com/posts/how-to-use-esm/)
- Using ES modules natively in Node.js (https://2ality.com/2017/09/native-esm-node.html)
- ES Modules in Node today (https://blog.logrocket.com/es-modules-in-node-today)
- Super Simple Start to ESModules in Node.js (https://kentcdodds.com/blog/super-simple-start-to-es-modules-in-node-js/)
Tools
- esbuild (https://github.com/evanw/esbuild) - an extremely fast JavaScript bundler and minifier.
- tsup (https://github.com/egoist/tsup) - bundle your TypeScript library with no config, powered by esbuild.
- rollup (https://github.com/rollup/rollup) - next-generation ES Module bundler.
- dual-publish (https://github.com/ai/dual-publish) - publish JS project as dual ES modules and CommonJS package to npm
- cjstoesm (https://github.com/wessberg/cjstoesm) - tool that can transform CommonJS to ESM
- esbuild-node-loader (https://github.com/antfu/esbuild-node-loader) - transpile TypeScript to ESM with Node.js loader.
- tsm (https://github.com/lukeed/tsm) - TypeScript Module Loader
Packages
Web frameworks
- tinyhttp (https://github.com/talentlessguy/tinyhttp) - tiny web framework as a replacement of Express.
- polka (https://github.com/lukeed/polka) (alpha only) - micro web server so fast, it'll make you dance!
- koa (https://github.com/koajs/koa) - expressive middleware for node.js using ES2017 async functions
HTTP
HTTP Clients
- node-fetch (https://github.com/node-fetch/node-fetch) - light-weight module that brings window.fetch to Node.js
- httpie (https://github.com/lukeed/httpie) - a Node.js HTTP client as easy as pie!
API Clients
- kitsu (https://github.com/wopian/kitsu) - simple, lightweight & framework agnostic JSON:API client
- twitter-lite (https://github.com/draftbit/twitter-lite) - tiny, full-featured, flexible client / server library for the Twitter API 
WebSocket
- sockette (https://github.com/lukeed/sockette) - tiny wrapper around WebSocket that will automatically reconnect if the connection is lost!
Middleware
- milliparsec (https://github.com/talentlessguy/milliparsec) - tiniest Node.js body parser ever
- sirv (https://github.com/lukeed/sirv) - an optimized middleware & CLI application for serving static files~! 
- tinyws (https://github.com/talentlessguy/tinyws) - tiny WebSocket middleware for Node.js
- malibu (https://github.com/tinyhttp/malibu) - framework-agnostic CSRF middleware for modern Node.js 
- lru-send (https://github.com/tinyhttp/lru-send) - LRU-based caching middleware for Node.js
Template engines
- eta (https://github.com/eta-dev/eta) - embedded JS template engine for Node, Deno, and the browser
- tempura (https://github.com/lukeed/tempura) - A light, crispy, and delicious template engine
SSR
- preact-render-to-string (https://github.com/preactjs/preact-render-to-string) - universal rendering for Preact: render JSX and Preact components to HTML.
- hyperapp-render (https://github.com/kriasoft/hyperapp-render) - render Hyperapp to an HTML string with SSR and Node.js streaming support.
- hypermdx (https://github.com/talentlessguy/hypermdx) - Markdown enhanced with Hyperapp 
- streamdown (https://github.com/talentlessguy/streamdown) - stream markdown to HTML 
Databases
- rxdb (https://github.com/pubkey/rxdb) - a realtime Database for JavaScript Applications.
Logging
- logtown (https://github.com/logtown/logtown) - simple Logging Facade for JavaScript.
- oddlog (https://gitlab.com/frissdiegurke/oddlog) - high-performance payload focused logging library for node.js.
- diary (https://github.com/maraisr/diary) - zero-dependency, fast logging library for both Node and Browser.
- roarr (https://github.com/gajus/roarr) - JSON logger for Node.js and browser.
Testing
- uvu (https://github.com/lukeed/uvu) - an extremely fast and lightweight test runner for Node.js and the browser.
- oletus (https://github.com/bearror/oletus) - minimal ECMAScript Module test runner
- hanbi (https://github.com/43081j/hanbi) - a small javascript library for stubbing and spying on methods/functions. 
- wirepig (https://github.com/griffinmyers/wirepig) - mock HTTP and TCP dependencies with real sockets.
CLI
Argument parsing
- yargs (https://github.com/yargs/yargs) - Command-line parser that automatically generates an elegant user-interface.
Colors
- colorette (https://github.com/jorgebucaran/colorette) - color your terminal using pure idiomatic JavaScript.
- kleur (https://github.com/lukeed/kleur) - the fastest Node.js library for formatting terminal text with ANSI colors~!
Date
- dayjs (https://github.com/iamkun/dayjs) - 2KB immutable date library alternative to Moment.js with the same modern API
- tinydate (https://github.com/lukeed/tinydate) - a tiny (349B) reusable date formatter. 
- tempe (https://github.com/masbagal/tempe) - Featherlight (< 2kB) helper for Javascript date formatting
- light-date (https://github.com/xxczaki/light-date) - blazing fast & lightweight (157 bytes) date formatting for Node.js and the browser. 
File system
- istextorbinary (https://github.com/bevry/istextorbinary) - Check if a file is text or binary.
- @tinyhttp/dotenv (https://github.com/talentlessguy/tinyhttp/tree/master/packages/dotenv) - A rewrite of dotenv (https://github.com/motdotla/dotenv) module.
Utility
- dequal (https://github.com/lukeed/dequal) - tiny (304B to 489B) utility to check for deep equality
- klona (https://github.com/lukeed/klona) - tiny (240B to 507B) and fast utility to "deep clone" Objects, Arrays, Dates, RegExps, and more!
- dlv (https://github.com/developit/dlv) - Safe deep property access in 120 bytes. x = dlv(obj, 'a.b.x')
Random
- uuid (https://github.com/lukeed/uuid) - tiny (230B), fast, and cryptographically secure UUID (V4) generator for Node and the browser
- nanoid (https://github.com/ai/nanoid) - Tiny, secure, URL-friendly, unique string ID generator.
Parsing
- snarkdown (https://github.com/developit/snarkdown) - a snarky 1kb Markdown parser written in JavaScript
Compression
- anzip (https://github.com/mikbry/anzip) - simple async unzip library for Node.js
Performance
- piscina (https://github.com/piscinajs/piscina) - a fast, efficient Node.js Worker Thread Pool implementation
- nanodelay (https://github.com/ai/nanodelay) - a tiny (25 bytes) Promise wrapper around setTimeout 
AST
- acorn (https://github.com/acornjs/acorn) - a small, fast, JavaScript-based JavaScript parser
Functional programming
- immutable (https://github.com/facebook/immutable-js) - Immutable data collections.
- ramda (https://github.com/Ramda/ramda) - practical functional Javascript.
- smoldash (https://github.com/marvinhagemeister/smoldash) - A tiny lodash alternative built for the modern web
- deepdash (https://github.com/YuriGor/deepdash) - tree traversal library written in Underscore/Lodash fashion 
Math
- mathjs (https://github.com/josdejong/mathjs) - An extensive math library.
Ethereum
- get-ens (https://github.com/talentlessguy/get-ens) - Get text records of an ENS address
- send-tx (https://github.com/talentlessguy/send-tx) - Sign & send Ethereum transactions
Other
- turf (https://github.com/Turfjs/turf) - a modular geospatial engine written in JavaScript 
- cashify (https://github.com/xxczaki/cashify) - lightweight currency conversion library, successor of money.js
- astro (https://github.com/withastro/astro) - build faster websites with the island architecture 
- transliterate (https://github.com/sindresorhus/transliterate) - convert Unicode characters to Latin characters using transliteration
- emittery (https://github.com/sindresorhus/emittery) - simple and modern async event emitter.