Skip to content

Latest commit

 

History

History
351 lines (327 loc) · 47.7 KB

readme.md

File metadata and controls

351 lines (327 loc) · 47.7 KB

FabioStack

Monorepo

The homepage for all my repositories.

Installation

git clone --recurse-submodules git://github.com/fabiospampinato/monorepo.git

Badges

Repositories listed below are marked with some of the following badges.

  • Production dependencies badges:
    • : no production dependencies whatsoever.
    • : only first-party production dependencies.
    • : with third-party production dependencies.
  • 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:
    • : isomorphic repository.
    • : browser-only repository.
    • : Node-only repository.
  • Other badges:
    • : released in bundled form.
    • : released in tree-shakeable form.
    • : provides a command line application.

Repositories (Active)

Some repositories don't have badges yet, this list is stil a work in progress

JavaScript Packages

  • 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.
  • 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 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.
  • 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.
  • 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 Node@17.8.0 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: PPP : Generate an enhanced exec function, with information about the range of text that the regex paid attention to.
  • safex: PP : 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-exec : A tiny wrapper around "spawn" for executing a command efficiently and conveniently.
  • 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 ISO : A simple isomorphic router for Voby.
  • vscode-extras NODE : 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 Extensions

VSCode Extensions

  • 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 running code --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-outdated : A super quick way to update npm dependencies, via a code lens.
  • 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.

Templates

Others

  • .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.

Repositories (Archived)

All archived, no longer maintained, repositories are listed here.