The homepage for all my repositories.
git clone --recurse-submodules git://github.com/fabiospampinato/monorepo.git
Repositories listed below are marked with some of the following badges.
- Production dependencies badges:
- Development dependencies badges:
- : no development dependencies other than
tsex
,fava
,benchloop
,esbuild
,typescript
and@types/node
. - : only some extra first-party development dependencies.
- : with some extra third-party development dependencies.
- : no development dependencies other than
- Runtime badges:
- Other badges:
Some repositories don't have badges yet, this list is stil a work in progress
aborter
: A minimal reimplementation of AbortController and AbortSignal.amuchina
: A work-in-progress HTML sanitizer that strives for: performance like window.Sanitizer, readiness like DOMPurify, and ability to run in a WebWorker like neither of those.ansi-pad
: A couple tiny functions for padding a string that may contain ANSI escape sequences.ansi-purge
: A tiny function for deleting ANSI escape sequences from a string.ansi-truncate
: A tiny function for truncating a string that may contain ANSI escape sequences.are-deeply-equal
: Check if two values are deeply equal to each other.are-shallow-equal
: Check if two values are shallowly equal to each other.atomically
: Write files atomically and reliably.banal
: On-demand bundle analyzer, powered by esbuild.base128-encoding
: Base128 encoding, the intersection of latin1 and utf-8, which is basically ASCII, the most memory-efficient string encoding that can be written to disk as utf-8 without ballooning in size.base256-archive
: Simple archive format that produces a base256-encoded string.base256-encoding
: Base256 encoding, the most memory-efficient encoding possible in JavaScript.benchloop
: Simple benchmarking library with a pretty output.bigint-encoding
: BigInt encoding, a simple way to convert Uint8Arrays into BigInts, and vice versa.bob-wasm
: A port of Svgbob to WASM.buffer2uint8
: A tiny function for casting a Buffer to a Uint8Array.bustore
: An isomorphic asynchronous Map-inspired key-value store for persisting blobs.bump
: Bump updates the project's version, updates/creates the changelog, makes the bump commit, tags the bump commit and makes the release to GitHub. Opinionated but configurable.call-chainer
: Combine a regular function and a class so that methods of the class become chainable properties of the function that get called automatically.call-hooks
: Function for adding before/after/call/arguments/result hooks to another function.call-spy
: Tiny wrapper for spying on function calls.calls-batch
: Execute calls in debounced batches, with pre/postflush hooks, useful for performance.cash
: An absurdly small jQuery alternative for modern browsers.chrome-extension-livereload
: A tiny and basic livereload solution for chrome extensions.classattr
: A classList-like API that's purely based on reading/writing the class attribute.conf-merge
: Deep merges objects, concatenating arrays.configuration
: Performant and feature rich library for managing configurations/settings.context-keys
: Performant and feature rich library for managing context keys.copy-unused-path
: Reliably copy to an unused path.critically
: Tiny performant library for extracting the critical CSS.crypto-miller-rabin
: Implementation of the Miller-Rabin primality test.crypto-pbkdf2-hmac
: Isomorphic wrapper for the PBKDF2-HMAC key derivation function.crypto-prime-test
: A function that deterministically checks if a number is prime.crypto-puzzle
: Basically a proof-of-work generator, this library makes cryptographic puzzles that are arbitrarily expensive to solve.crypto-random-bigint
: Generate a cryptographically-random BigInt with the given number of bits of entropy.crypto-random-hexadecimal
: Generate a cryptographically-random hexadecimal string with the given number of bytes of entropy.crypto-random-in-range
: Pick a cryptographically-random integer within a range.crypto-random-prime
: Generate a cryptographically-random probable prime number that passes the Miller-Rabin test with the given number of bits of entropy.crypto-random-uint8
: Generate a cryptographically-random Uint8Array with the given number of bytes of entropy.crypto-sha
: Isomorphic wrapper for the SHA family of hash functions.crypto-sieve
: Low memory-usage implementation of a Sieve of Eratosthenes.crypto-timing-safe-equals
: An isomorphic timing-safe equality function for strings and Uint8Arrays.
cson2json
: A super-lightweight library for converting CSON objects to JSON objects.
css-eval
: Tiny library for fully evaluating CSS properties and variables on a target element.css-flatten
: Flattens a nested (S)CSS string, "&" placeholders are supported too.css-simple-minifier
: A CSS minifier that's tiny and very fast.css-simple-parser
: A (S)CSS parser that's tiny, blazing fast and (too) simple.csv-simple-parser
: A simple, fast and configurable CSV parser.decode-base64
: A tiny function for decoding base64 strings into ArrayBuffer objects, useful for bundling and loading WASM modules.depsman
: Extract and report metadata about dependencies of the current package.detect-eol
: Quickly detect the EOL used in a string.dettle
: A tiny fully-featured debounce and throttle implementation.dettle-batch
: A batched debouncing and throttling solution, for performance.domino-global
: Make Node a browser-like environment, by using Domino.dotlocker
: A filesystem exclusionary lock implementation based on .lock files.dotenv-jsonc
: Simple library for loading your .env.json file containing JSONC.dumper
: Library for extracting attachments, notes and metadata out of formats used by popular note-taking apps.duper
: Standalone functions for creating shallow clones or deep clones.entities-decode
: Fast function for decoding HTML entities, based on the "entities" package.entities-dom-decode
: A ~200 bytes function with no dependencies for decoding HTML entities, it only works in the browser.entities-standard
: An object mapping ~2000 standard HTML entities to their value.event-loop-yielder
: A collection of strategies for yielding to the event loop, to avoid blocking for too long.ext2mime
: Convert a file extension to a mime type. It works only with popular file extensions and it's super lightweight.fast-ignore
: A fast parser and processor for .gitignore files.fast-mod-exp
: Fast modular exponentiation function, for numbers and bigints.fast-string-truncated-width
: A fast function for calculating where a string should be truncated, given an optional width limit and an ellipsis string.fast-string-width
: A fast function for calculating the visual width of a string once printed to the terminal.fava
: A wannabe tiny largely-drop-in replacement for ava that works in the browser too.fetch-shim
: A tiny isomoprhic Fetch function, it just gives you the native one if available, or the one from undici.fileurl2path
: A tiny function for converting a file URL to a file path.file-pollex
: A tiny hybrid filesystem watcher for a single file.find-up-json
: Find, read and parse the first matching file found walking the filesystem upwards.find-up-path
: Find the path of the first file matching a given name, walking the filesystem upwards.flimsy
: A single-file <1kb min+gzip simplified implementation of the reactive core of Solid, optimized for clean code.function-once
: Wraps a function so that it's only ever executed once.get-current-package
: Get the package.json of the currently executing bin.get-current-version
: Get the version of the currently executing bin.get-unused-path
: Reliably get an unused path you can write to.github-logger
: A simple logger for GitHub repositories, with various backends.gitman
: A simple yet powerful opinionated tool for managing GitHub repositories.glow-highlighter
: An isomorphic syntax highlighter for Glow.grammex
: A tiny PEG-like system for building language grammars with regexes.graphviz-wasm
: A port of Graphviz to WASM.grepgrep
: A grep-like command that uses JavaScript-flavored regular expressions.happy-dom-global
: Make Node a browser-like environment, by using Happy DOM.hex-encoding
: Hex encoding. An extremely fast and synchronous JS implementation.hex-to-uint8
: The fastest function to convert a hexadecimal string to a Uint8Array.html2markdown
: A small function for converting HTML to Markdown.html-segmentator
: A small library for splitting an HTML string into its top-level sections. Based on html5parser.huffy
: A tiny compression library based on Huffman coding.ifont
: An isomorphic icon font generator with support for ligatures.immediato
: An isomorphic setImmediate implementation that doesn't prevent the process from exiting naturally.import-fool-webpack
: Use dynamic import() without webpack finding out.infinity-map
: A Map that doesn't throw if you put more than 16 million items in it. Because that's what the nativeMap
object does for some reason.infinity-set
: A Set that doesn't throw if you put more than 16 million items in it. Because that's what the nativeSet
object does for some reason.ini-simple-parser
: A simple, fast and configurable INI parser.int32-encoding
: Int32 encoding, a simple way to convert 32-bit signed integers to Uint8Arrays, and vice versa.ionstore
: A very simple isomorphic key-value store with a Map-like API for persisting session data.is
: The definitive collection of is* functions for runtime type checking. Lodash-compatible, tree-shakable, with types.isoenv
: A cross-platform Map-like interface for reading and writing environment variables.isostore
: A simple isomorphic key-value store with a Map-like API for persisting data.js-simple-mangler
: A simple JavaScript mangler that works across multiple files.json-archive
: Simple archive format based on JSON.json-clone-deep
: Deep cloning based on JSON.json-oneline-stringify
: A little function for stringifying into a single line, in a readable form.json-sorted-stringify
: Alternative JSON.stringify function with sorted keys, so the output is stable.
jsonc-simple-parser
: A simple JSON parser that supports comments and optional trailing commas.
kasi
: A collection of functions for working with different casings.khroma
: A collection of functions for manipulating CSS colors, inspired by SASS.known-symbols
: A little library for working with well-known symbols.lande
: A tiny neural network for natural language detection.linkedom-global
: Make Node a browser-like environment, by using LinkeDOM.linkify-it-tlds
: Comprehensive list of TLDs, sourced from ICANN, for linkify-it.lomemo
: Lodash's memoize function, but in a much smaller package than lodash.memoize's.lomemo-one
: A variant of lodash's memoize function that remembers only one result, the last one.memoization-registry
: A generalized multi-key memoization solution that does not leak memory.mild-map
: A WeakMap that supports any value, it holds strong references to primitives, and weak references to objects.mild-set
: A WeakSet that supports any value, it holds strong references to primitives, and weak references to objects.mime-standard
: An object mapping ~300 standard mime types to ~400 extensions.mime2ext
: Convert a mime type to a file extension. It works only with popular mime types and its super lightweight.minipacco
: A little bundler for resolving dependencies graphs into a single concatenated file.monex
: Execute a script and restart it whenever it crashes or a watched file changes.move-unused-path
: Reliably move to an unused path.nanoexec
: A tiny wrapper around "spawn" for executing a command efficiently and conveniently.nanopath
: A tiny isomorphic port of [email protected] path module.node-buffer-encoding
: A little wrapper around Node's Buffer that provides encoding/decoding for all supported encodings.noop-tag
: A noop template literal tag, useful for syntax highlighting hints.noren
: A minimal HTTP server with good developer-experience and performance, for Node and beyond.
oby
: A tiny Observable implementation, the brilliant primitive you need to build a powerful reactive system.
paketo
: A tiny library for importing your package.json, with proper types!path-prop
: Fast library for manipulating plain objects using paths.performance-interval
: A precise implementation of setInterval that supports sub-millisecond intervals.picolate
: A minimalistic and flexible templating engine, inspired by Handlebars.picolru
: A tiny LRU implementation that strives for simplicity and performance.picorpc
: A tiny RPC library and spec, inspired by JSON-RPC 2.0 and tRPC.pikchr-wasm
: A fast and small port of Pikchr to WASM.pioppo
: A tiny isomorphic batched logger. ~3x faster than regular logging in Node.plain-object-clone
: Extremely fast function optimized for deep cloning json-serializable plain objects.plain-object-is-empty
: Extremely fast function that checks if a plain object is empty.plain-object-is-equal
: Extremely fast function optimized for deep equality checks of json-serializable plain objects.plain-object-merge
: Extremely fast function optimized for deep merging json-serializable plain objects.pollex
: A tiny polling-based filesystem watcher that tries to be efficient.prask
: Lightweight prompting library for terminal apps.promise-concurrency-limiter
: Tiny scheduler for functions returning promises that can limit their concurrency.promise-make-counter
: A simple function that makes a counter-based promise, which can be incremented and decremented, and it resolves once its counter reaches zero.promise-make-naked
: A simple function that makes a promise that can be resolved or rejected from the outside.promise-resolve-timeout
: Create a Promise which will resolve with the provided value after a timeout.qunit-ava-spec
: Helper functions for using QUnit as if it was ava/ava-spec.radix64-encoding
: Radix64 encoding, a.k.a. Base64 encoding. An extremely fast and synchronous JS implementation.radix64url-encoding
: Radix64url encoding, a.k.a. Base64url encoding. An extremely fast and synchronous JS implementation.regexp-ranged-exec
: : Generate an enhanced exec function, with information about the range of text that the regex paid attention to.safex
: : A language for writing safe expressions, in a tiny subset of JavaScript.sanitize-basename
: Sanitize a file name for cross-platform validity.scex
: A simple runner for npm scripts that can execute multiple scripts, in serial or in parallel.siero
: A serialization library that can handle functions, promises and symbols too.siero-worker
: A managed worker that can be interacted with via Siero.skex
: A modern schema validation and filtration library with great TypeScript support.secret
: The simplest command to encrypt/decrypt a file, useful for committing encrypted ".env" files to version control, among other things.shortcuts
: Super performant and feature rich shortcuts management library.shortcuts-font
: A minimal font designed to beutifully render characters used for representing shortcuts.shosho
: A modern and powerful shortcuts management library.siar
: A simple random-access archive format.special-tlds
: List of special-use ICANN TLDs.specialist
: A library that helps you write tiny, fast, bundled and beautiful CLI apps that can automatically check for updates.stdin-blocker
: A tiny library for blocking stdin keypresses, except for ctrl+c. Useful while displaying animations.strid
: Get a unique string identifier for any input value.string-escape-regex
: A tiny function for escaping a string to be used as the source in a regex.string-from-charcodes
: An alternative to String.fromCharCode that doesn't throw with many arguments, while still remaining fast.string-indexes
: Retrieves all indexes, in non-overlapping ranges, of a substring in a string.string-matches
: Retrieves all the matches of a regex in a string.string-matches-generator
: Retrieves all the matches of a regex in a string, via a generator.stubborn-fs
: Stubborn versions of Node's fs functions that try really hard to do their job.template
: A super-simple way to create new projects based on templates.test-diff
: Library for writing tests that diff the excepted output with the actual output.textmate-highlighter
: An isomorphic syntax highlighter using TextMate grammars and VSCode themes.tiny-bin
: A library for building tiny and beautiful command line apps.tiny-browser-open
: A tiny utility for opening a file or a URL inside a browser of your choosing.tiny-buffer
: A tiny isomorphic implementation of a large subset of Node's Buffer.tiny-colors
: A tiny library providing the basic ANSI colors for the terminal.tiny-compressor
: A tiny isomorphic compression library that leverages CompressionStream and DecompressionStream.tiny-cursor
: A tiny library for hiding and showing the cursor in the terminal.tiny-dirname
: A tiny isomorphic ESM alternative to Node's "__dirname" global.tiny-divider
: A tiny simple terminal divider that spans the entire width of the terminal.tiny-editorconfig
: A tiny isomorphic parser and resolver for EditorConfig.tiny-encryptor
: A tiny opinionated isomorphic library for encrypting and decrypting with ease.tiny-filename
: A tiny isomorphic ESM alternative to Node's "__filename" global.tiny-jsonc
: An absurdly small JSONC parser.tiny-levenshtein
: A tiny implementation of the Levenshtein edit distance algorithm.tiny-livereload
: A tiny and basic livereload solution.tiny-parse-argv
: A tiny function for parsing process.argv, a modern rewrite of a sensible subset of minimist.tiny-readdir
: A simple promisified recursive readdir function.tiny-readdir-glob
: A simple promisified recursive readdir function, with support for globs.tiny-readdir-glob-gitignore
: A simple promisified recursive readdir function, with support for globs and .gitignore files.tiny-spinner
: A simple, yet beautiful, CLI spinner.tiny-sqlite3
: A tiny cross-platform client for SQLite3, with precompiled binaries as the only third-party dependencies.tiny-truncate
: A tiny function for truncating a string which may containg ANSI escapes, with automatic terminal width detection.tiny-updater
: The smallest update notifier for NPM packages, useful for CLI apps.tiny-webcrypto
: A tiny isomorphic WebCrypto object, it just gives you the native one the current platform provides.tokens-highlighter
: A general syntax highlighter that can render syntax highlighting tokens.toygrad
: A toy library for building simple neural networks which can be serialized to compact JSON.tryloop
: Simple library for retrying operations, it supports multiple backoff strategies.tsex
: A little CLI for making TypeScript packages, cleanly and effortlessly.ua2os
: Detect the OS from a User-Agent string.uint-rng
: A tiny insorphic Random Number Generator for generating 8/16/32-bits unsigned integers.uint8-concat
: Concatenate mutiple Uint8Arrays super efficiently.uint8-encoding
: Uint8 encoding, a simple way to convert strings to Uint8Arrays and vice versa.uint8-to-hex
: The fastest function to convert a Uint8Array to hexadecimal.unsanitize-basename
: Unsanitize a file name, the inverse of the "sanitize-basename" library.unused-path
: Reliably get an unused path and copy/move/write to it.utf16le-encoding
: UTF16-le encoding, a.k.a. UCS2 encoding, an encoding you probably should never use.
voby
: A high-performance framework with fine-grained observable-based reactivity for building rich applications.
voby-simple-router
: A simple isomorphic router for Voby.vscode-extras
: A collection of utilities for development vscode extensions.watcher
: The file system watcher that strives for perfection, with no native dependencies and optional rename detection support.webworker-shim
: A tiny shim for WebWorker (data URI only) that works in Node.when-exit
: Execute a function right before the process, or the browser's tab, is about to exit.worktank
: A simple isomorphic library for executing functions inside WebWorkers or Node Threads pools.worktank-esbuild-plugin
: Esbuild plugin for WorkTank which enables you to execute whole files in a worker pool, transparently.worktank-vite-plugin
: Vite plugin for WorkTank which enables you to execute whole files in a worker pool, transparently.write-unused-path
: Reliably write to an unused path.xml-simple-parser
: A simple and tiny XML parser and stringifier.zeptoid
: A tiny isomorphic fast function for generating a cryptographically random hex string.zeptomatch
: An absurdly small glob matcher that packs a punch.zeptomatch-escape
: A little utility for escaping globs before passing them to zeptomatch.zeptomatch-explode
: A little utility for exploding a zeptomatch-flavored glob into its dynamic and static parts.zeptomatch-is-static
: A little utility for checking if a glob is fully static.zeptomatch-unescape
: A little utility for removing escape sequences from a glob.zstandard-wasm
: A fast and small port of Zstandard to WASM. (Decompress-only for now).
chrome-blank
: Just a blank new tab page.chrome-multi-homepage
: Open multiple urls with a single click.chrome-night-theme
: A dark and minimalistic theme.chrome-window-session
: Save each window as a separate session, automatically.
vscode-banal
: A super quick way to inspect the bundle size of npm dependencies, via a code lens.vscode-browser-refresh
: Refresh the browser with a ⌘R, right from Code. No need to switch focus to it.vscode-commands
: Trigger arbitrary commands from the statusbar. Supports passing arguments!vscode-diff
: Diff 2 opened files with ease. Because runningcode --diff path1 path2
is too slow.vscode-git-history
: View or diff against previous versions of the current file.vscode-github-notifications-bell
: A secure, customizable, statusbar bell that notifies you about notifications on github.vscode-gitman
: Frontend for GitMan for switching quickly to other repositories.
vscode-highlight
: Advanced text highlighter based on regexes. Useful for todos, annotations etc.
vscode-js-beautify
: A little wrapper around "js-beautify" for conveniently beautifying CSS/HTML/JS files.vscode-kasi
: A little wrapper over the "kasi" package for changing the casing of selections.vscode-markdown-todo
: Manage todo lists inside markdown files with ease.vscode-monokai-night
: A complete, dark and minimalistic Monokai-inspired theme.vscode-open-devtools
: A simple extension for opening DevTools windows listed under chrome://inspect.vscode-open-in-application
: Open an arbitrary file in its default app, or the app you want.vscode-open-in-browsers
: Adds some commands for opening the current file or project in any browser you like, even all of them simultaneously.vscode-open-in-code
: Switch between Code and Code Insiders with ease.vscode-open-in-finder
: Adds a few commands for opening the current file or project in Finder.vscode-open-in-github
: Open the current project or file in github.com.vscode-open-in-gittower
: Adds a command for opening the current project in GitTower.vscode-open-in-marketplace
: Adds a command for opening the current project in the Marketplace.vscode-open-in-node-modules
: Open the current selection or arbitrary string in node_modules.vscode-open-in-npm
: Open the current selection, project, or arbitrary string, in npmjs.com.vscode-open-in-npm-graph
: Open the current package, or arbitrary string, in npmgraph.js.org.vscode-open-in-terminal
: Adds a few commands for opening the current project in Terminal.vscode-open-in-transmit
: Adds a few commands for opening the current file or project in Transmit.vscode-open-multiple-files
: Open all files in a folder at once, optionally filtering by a glob.
vscode-optimize-images
: Optimize one or all the images in your project using your favorite app.
vscode-outdated
: A super quick way to update npm dependencies, via a code lens.
vscode-projects-plus-todo-plus
: Bird's-eye view over your projects, view all your todo files aggregated into one.vscode-projects-plus
: An extension for managing projects. Feature rich, customizable, automatically finds your projects.
vscode-search-open-all-results
: Open all search results at once with a single command.vscode-statusbar-debugger
: Adds a debugger to the statusbar, less intrusive than the default floating one.
vscode-terminals
: An extension for setting-up multiple terminals at once, or just running some commands.vscode-todo-plus
: Manage todo lists with ease. Powerful, easy to use and customizable.
vscode-transmit
: Adds a few commands for interacting with Transmit.
awesome-template
: Curated list of templates for Template.template-chrome-extension
: A template for starting a new Chrome extension quickly.template-template
: A template for creating new templates quickly.template-typescript-cli-package
: A template for creating a new TypeScript CLI package quickly.template-typescript-package
: A template for creating a new TypeScript package quickly.template-vscode-extension
: A template for starting a new vscode extension quickly.
.github
: Account-level .github directory.ama
: Ask me anything!monorepo
: The homepage for all my repositories.
phoenix
: My Phoenix setup. Powerful, easy to customize, tuned for web development, adds a space switcher.website
: My personal website.yinyang-clock
: A clock that keeps track of time spent yinning vs time spent yanging.
All archived, no longer maintained, repositories are listed here.