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.
- 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-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.
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.
bob-wasm
: A port of Svgbob to WASM.
buffer2uint8
: A tiny function for casting a Buffer to a Uint8Array.
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.
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-pbkdf2-hmac
: Isomorphic wrapper for the PBKDF2-HMAC key derivation function.
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-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-xxhash-64
: Fastest isomorphic xxHash-64 hash function.
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.
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.
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.
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.
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.
flimsy
: A single-file <1kb min+gzip simplified implementation of the reactive core of Solid, optimized for clean code.
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.
grammex
: A tiny PEG-like system for building language grammars with regexes.
graphviz-wasm
: A port of Graphviz to WASM.
happy-dom-global
: Make Node a browser-like environment, by using Happy DOM.
hex-encoding
: Hex encoding. An extremely fast and synchronous JS implementation.
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.
icon-font-buildr
: Build custom icon fonts, it supports remote and local icons sources.
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 native
Map
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 native
Set
object does for some reason.is
: The definitive collection of is* functions for runtime type checking. Lodash-compatible, tree-shakable, with types.
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-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.
khroma
: A collection of functions for manipulating CSS colors, inspired by SASS.
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.
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.
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.
once
: Wraps a function so that it's only ever executed once.
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.
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.
promise-concurrency-limiter
: Tiny scheduler for functions returning promises that can limit their concurrency.
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.
prompts-helpers
: Collection of convenience helpers for Prompts.
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.
ripstat
: Fetch the stats for a file as if a saber-tooth tiger is chasing you!
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.
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.
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.
string-replace-all
: Replaces all the occurrences of a string into a string with another string.
strip-keys
: An utility for removing specific keys from an object.
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.
tiny-bin
: A library for building tiny and beautiful command line apps.
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-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-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.
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.
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.
zeptoid
: A tiny isomorphic fast function for generating a cryptographically random hex string.
zeptomatch
: An absurdly small glob matcher that packs a punch.
zstandard-wasm
: A fast and small port of Zstandard to WASM. (Decompress-only for now).
alfred-brush-workflow
: Alfred workflow for reminding you to brush your teeth.alfred-eject-workflow
: Alfred workflow for ejecting mounted drives.alfred-spaces-workflow
: Alfred workflow that, used in conjunction with my Phoenix setup, gives you a spaces switcher.
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-browser-refresh
: Refresh the browser with a โR, right from Code. No need to switch focus to it.vscode-bump
: Bump your project's version and update the changelog. Opinionated but configurable.vscode-commands
: Trigger arbitrary commands from the statusbar. Supports passing arguments!vscode-debug-launcher
: Start debugging, without having to define any tasks or launch configurations, even from the terminal.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-markdown-todo
: Manage todo lists inside markdown files with ease.vscode-monokai-night
: A complete, dark and minimalistic Monokai-inspired theme.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-ship
: Adds a command for opening the current project in Ship.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-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-alfred-workflow
: A template for starting a new Alfred workflow quickly.template-chrome-extension
: A template for starting a new Chrome extension quickly.template-electron
: A template for starting a new electron app quickly.template-lambda-claudia
: A template for starting a new lambda quickly.template-next-website
: A template for starting a new Next.js website quickly.template-template
: A template for starting new templates quickly.template-typescript-cli-package
: A template for starting a new typescript CLI package quickly.template-typescript-package
: A template for starting a new typescript package quickly.template-vscode-extension
: A template for starting a new vscode extension quickly.template-webpack-website
: A template for starting a new webpack website 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.termux-env
: My super-quick-to-setup Termux environment.vscode-beggar
: A little utility for asking for money in a VSCode extension.vscode-beggar-banners
: The little banners that I'm using in combination with vscode-beggar.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.