Profile
Back to NewsBack
GitHub Trending 3 min
Reader Mode
lowlighter/libs: 🍱 Collection of carefully crafted TypeScript standalone libraries. Minimal, unbloated, convenient.

lowlighter/libs: 🍱 Collection of carefully crafted TypeScript standalone libraries. Minimal, unbloated, convenient.

3 hours ago

🍱 Libraries

JSR Scope</a> NPM</a> deno.land/x</a> Playground</a> ci</a>

This is a collection of carefully crafted _TypeScript_ libraries. They try to be as minimal, unbloated and convenient as possible.

They honor web standards for maximum compatibility cross-runtime, which makes most of them compatible with Deno, Node.js, Bun and even browsers out of the box.

See table below for a list of available libraries and their features, compatibility, test coverage and playgrounds.

🧮 @libs/crypto

Metadata and compatibilityFeatures
  • Encrypt and decrypt data using a seed-salt derived private key
  • Generate time-based OTP secret key and verify tokens validity

➕ @libs/diff

Metadata and compatibilityFeatures
  • Compute unified patch between two strings

🟰 @libs/git

Metadata and compatibilityFeatures
  • Perform git operation and manipulate outputs
  • Helper to generate changelog and auto-bump your version file

📊 @libs/graph

Metadata and compatibilityFeatures
  • Generate various types of graphs as SVG
    • Diff
    • Pie
    • Line
    • Time

🪪 @libs/is

Metadata and compatibilityFeatures
  • Wrapper around zod for type validation and assertions
  • Include additional helpers and validators

🖨️ @libs/markdown

Metadata and compatibilityFeatures
  • Render markdown to HTML using the unified ecosystem.
    • Straightforward API for both basic markdown and extended markdown rendering
    • Offer a dozen of plugins to add extended markdown features (headings anchors, frontmatter, code highlighting, math, mermaid diagrams, wiki links, etc.)

🔳 @libs/qrcode

Metadata and compatibilityFeatures
  • Generate QR codes without external dependencies
  • Support console, array and SVG output (with customizable colors)

🎯 @libs/reactive

Metadata and compatibilityFeatures
  • Create observable contexts to track get, set, delete and call operations
  • Support inherited contexts

⏯️ @libs/run

Metadata and compatibilityFeatures
  • Wrapper around Deno.Command with improved streams managements
    • Add stdio that register each stdin, stdout, stderr entry with a timestamp for an accurate history
    • Support buffering to merge closely-timed entries from same channel together
    • Pass a callback to react on output chanells and write to stdin for interactive scripting
  • Support winext to append an extension to binary when on Windows (e.g. .cmd, .exe, etc.)
  • Support dryrun to skip command execution (useful for test environments)

🧪 @libs/testing

Metadata and compatibilityFeatures
  • Cross-runtime testing framework
    • Support deno natively
    • Support Node.js through npx tsx --test
    • Support bun through bun test
    • Note: although tests are run on multiple runtimes, this library must be run on deno
  • Automatically skip test cases when runtime is not available on current platform

🧰 @libs/toolbox

Metadata and compatibilityFeatures

🗃️ @libs/typing

Metadata and compatibilityFeatures
  • Utility types such as Promisable, Nullable, MapKey, MapValue, SetValue, etc.
  • Functions constructors (AsyncFunction, GeneratorFunction, AsyncGeneratorFunction)

📃 @libs/xml

Metadata and compatibilityFeatures
  • Parse XML to JavaScript object
    • Support cleaning options to remove attributes, comments, XML doctype and processing instructions from output
    • Support flatten options to flatten node content when only attributes, text or nothing is present
    • Support reviving options to trim text, replace XML entities, revive booleans and numbers
    • Also support custom reviving function
  • Stringify JavaScript object to XML
    • Support formatting options to configure indentation and text break lines
    • Support replacing options to replace XML entities
    • Also support custom replacing function
Each package is versioned independently. Releases are fully automated and are published on every push to the main branch. Versioning follows SemVer rules.

🦮 Contributing

Contributions are welcome! Please read our contribution guide first.

📜 License

This work is licensed under the MIT License.

If you include a significant part of it in your own project, _you must keep the license notice_ with it, including the mention of the additional original authors if any.

[!TIP]
Love these bytes? Consider 💝 sponsoring me, even one-time contributions are greatly appreciated!
Chat with me