Browsing through my public repositories on Github is painful to impossible.
If you want my home page/blog, go to joshduff.com
Open source code
If one of my repos isn't on this list it's because I don't think it's worth knowing about, or because I wrote it after making this list and haven't gotten around to adding it ^_^
To suggest changes, open pull requests against this file.
- shell-tag: a string template tag so you can write shell scripts with JS instead of bash
- lieutenant: command-line argument parser. For apps with git-like commands like "git stash pop" instead of traditional args you'd just use minimist for
- just-flatten: array flattening in the simplest code possible
- async-all: like async-each but for a map of functions instead of an array of functions
- mannish: implementation of the mediator pattern for your stateful JS apps
- weak-type-wizard: - enforce a schema for your objects, using casting functions you can define
- financial-arithmetic-functions: add/subtract/multiply functions for arbitrarily large numbers
- financial-arithmeticator: higher-level library for manipulating financial numbers without floating point math
- sql-concat: dynamically build SQL queries with minimal fuss and zero magic
- add-affiliate-querystring: add Amazon affiliate querystrings to any url
- read-write-lock: allow either a single writer or multiple readers to access a resource in a single process
- key-master: eliminate "add a default value to a map if it doesn't exist yet" boilerplate
- combine-arrays: so you can iterate over multiple arrays at once
- private-static-website: a static content server that protects content behind email validation
- private-github-website: hosts content from Github as a private site
For use with another library/service
Joi is a duck-type checker.
- joi-sql: generates type-checking functions based on your MySQL schema
Ractive is an excellent templating/DOM manipulation library.
- ractive-drag-and-drop-files: an event directive that fires an event when a file is dragged onto the element
- ractive-select-on-focus: a decorator that selects the contents of the input when it gains focus
- ractive-diff-generator: if you're using state management like Redux instead of interacting with the Ractive object directly, this tool tries to reclaim some of the performance downsides you would eventually incur
tape is a simple test harness meant to run in browsers
Redux is everyone's favorite state library
LevelUP is an interface to key-value stores with a ton of storage backends
- levelup-cache: a loading cache that prioritizes returning a value as quickly as possible
- expire-unused-keys: a persistent "hey, you should probably refresh/expire this resource" library you can use to build higher-level caching libraries
Like the general interest libraries above, except I don't expect many people to care!
- pickering-majority-text-revelation: Wilbur Pickering's translation of Revelation, with notes, in a couple arrays
git clone --depth 1/
git pull without storing any git metadata locally
- lispyscriptify: require Lispyscript files in your browserify-built code
- tak-board: a visual representation of a Tak board, for the browser
- tak-game: Functions for managing the boardstate of a Tak game by feeding in a series of moves
- tak-move-helper: answers questions like "if you pick up a piece on this square, what other squares are valid to move to?"