jaeswift-website/api/data/awesomelist/wbinnssmith--awesome-promises.json

1 line
No EOL
15 KiB
JSON

{"slug": "wbinnssmith--awesome-promises", "title": "Awesome Promises", "description": "A curated list of useful resources for JavaScript Promises", "github_url": "https://github.com/wbinnssmith/awesome-promises", "stars": "1.5K", "tag": "Programming Languages", "entry_count": 84, "subcategory_count": 9, "subcategories": [{"name": "General", "parent": "", "entries": [{"name": "Resources, Blogs, and Books", "url": "#resources-blogs-and-books", "description": ""}, {"name": "Promises/A+ Implementations (ES6/ES2015 compatible)", "url": "#promisesa-implementations-es6es2015-compatible", "description": ""}, {"name": "Convenience Utilities", "url": "#convenience-utilities", "description": ""}]}, {"name": "For beginners", "parent": "Resources, Blogs, and Books", "entries": [{"name": "Promise Cookbook", "url": "https://github.com/mattdesl/promise-cookbook", "description": "The why, what, and how. \"A brief introduction \\[...] primarily aimed at frontend developers\".", "stars": "1.6k"}, {"name": "Promises for Asynchronous Programming", "url": "http://exploringjs.com/es6/ch_promises.html", "description": "Chapter from [Exploring ES6](http://exploringjs.com/)"}, {"name": "You Don't Know JS: Promises", "url": "https://github.com/getify/You-Dont-Know-JS/blob/master/async%20&%20performance/ch3.md", "description": "Chapter from [You Don't Know JS: Async & Performance (⭐160k)](https://github.com/getify/You-Dont-Know-JS/tree/master/async%20%26%20performance)", "stars": "160k"}, {"name": "JavaScript Promises: an Introduction", "url": "https://developers.google.com/web/fundamentals/getting-started/primers/promises", "description": "Basics of JavaScript's native promise implementation."}, {"name": "JavaScript with Promises", "url": "http://shop.oreilly.com/product/0636920032151.do", "description": "from O'Reilly. Short and to-the-point. Uses native and bluebird."}, {"name": "Promise it won't hurt", "url": "https://github.com/stevekane/promise-it-wont-hurt", "description": "An interactive [nodeschool](https://nodeschool.io/) workshop", "stars": "718"}, {"name": "ES6 Kata Promises", "url": "http://es6katas.org/", "description": "Promises Katas : [Basics](http://tddbin.com/#?kata=es6/language/promise/basics)"}, {"name": "ES6 Promises in Depth", "url": "https://ponyfoo.com/articles/es6-promises-in-depth", "description": ""}, {"name": "An Incremental Tutorial on Promises", "url": "http://www.sohamkamani.com/blog/2016/08/28/incremenal-tutorial-to-promises/", "description": "An FAQ styled tutorial for beginners."}]}, {"name": "Deep Dive", "parent": "Resources, Blogs, and Books", "entries": [{"name": "Promise Fun", "url": "https://github.com/sindresorhus/promise-fun", "description": "@sindresorhus's notes, patterns, and solutions to common Promise problems", "stars": "4.1k"}, {"name": "You're Missing the Point of Promises", "url": "https://blog.domenic.me/youre-missing-the-point-of-promises/", "description": "Promises are much more than callback aggregation, and that jQuery's implementation (prior to 3.0) isn't enough."}, {"name": "We have a problem with promises", "url": "https://pouchdb.com/2015/05/18/we-have-a-problem-with-promises.html", "description": "\"Many of us are using promises without really understanding them.\""}, {"name": "Promise anti-patterns", "url": "https://github.com/petkaantonov/bluebird/wiki/Promise-anti-patterns", "description": "Common misuses and how to avoid them.", "stars": "20k"}, {"name": "Promise anti-patterns (2)", "url": "http://taoofcode.net/promise-anti-patterns/", "description": "Another set of promises anti-patterns"}, {"name": "Promise Ponderings, (Anti-)Patterns, and Apologies", "url": "https://sdgluck.github.io/2015/08/24/promise-ponderings-patterns-apologies/", "description": "Promise behaviour demonstrated and explained by common questions and their answers."}, {"name": "Javascript Promises...In Wicked Detail", "url": "http://www.mattgreer.org/articles/promises-in-wicked-detail/", "description": "Recreate the promise implementation"}, {"name": "Writing Promise-Using Specifications", "url": "https://www.w3.org/2001/tag/doc/promises-guide", "description": "\"This document gives guidance on how to write specifications that create, accept, or manipulate promises\""}, {"name": "Async functions - making promises friendly", "url": "https://developers.google.com/web/fundamentals/getting-started/primers/async-functions", "description": ""}]}, {"name": "References", "parent": "Resources, Blogs, and Books", "entries": [{"name": "Promises/A+ specification", "url": "https://promisesaplus.com/", "description": ""}, {"name": "caniuse promises", "url": "http://caniuse.com/#feat=promises", "description": ""}, {"name": "Fates and States", "url": "https://github.com/domenic/promises-unwrapping/blob/master/docs/states-and-fates.md", "description": "Quick definitions of possible states.", "stars": "1.2k"}, {"name": "Promisees", "url": "https://bevacqua.github.io/promisees/", "description": "Promise visualization playground for the adventurous."}]}, {"name": "Strict Implementations", "parent": "Promises/A+ Implementations (ES6/ES2015 compatible)", "entries": [{"name": "pinkie", "url": "https://github.com/floatdrop/pinkie", "description": "Ponyfill. Node-oriented, but [browserifyable (⭐14k)](https://github.com/substack/node-browserify). *Extremely* small implementation.", "stars": "138"}, {"name": "native-promise-only", "url": "https://github.com/getify/native-promise-only", "description": "Polyfill. Browser and node-compatible.", "stars": "719"}, {"name": "es6-promise", "url": "https://github.com/stefanpenner/es6-promise", "description": "Opt-in polyfill. A strict-spec subset of rsvp.js.", "stars": "7.3k"}, {"name": "lie", "url": "https://github.com/calvinmetcalf/lie", "description": "Small, browserifyable with an opt-in polyfill.", "stars": "744"}]}, {"name": "Implementations with extras", "parent": "Promises/A+ Implementations (ES6/ES2015 compatible)", "entries": [{"name": "bluebird", "url": "https://github.com/petkaantonov/bluebird", "description": "Fully featured, extremely performant. Long stack traces & generator/coroutine support.", "stars": "20k"}, {"name": "creed", "url": "https://github.com/briancavalier/creed", "description": "Hyper performant & full featured like Bluebird, but FP-oriented. Coroutines, generators, promises, ES2015 iterables, & fantasy-land spec.", "stars": "270"}, {"name": "rsvp.js", "url": "https://github.com/tildeio/rsvp.js/", "description": "Lightweight with a few extras. Compatible down to IE6!", "stars": "3.6k"}, {"name": "Q", "url": "https://github.com/kriskowal/q", "description": "One of the original implementations. Long stack traces and other goodies.", "stars": "15k"}, {"name": "then/promise", "url": "https://github.com/then/promise", "description": "Small with `nodeify`, `denodify` and `done()` additions.", "stars": "2.5k"}, {"name": "when.js", "url": "https://github.com/cujojs/when", "description": "Packed with control flow, functional, and utility methods.", "stars": "3.4k"}]}, {"name": "Fallbacks", "parent": "Promises/A+ Implementations (ES6/ES2015 compatible)", "entries": [{"name": "native-or-bluebird", "url": "https://www.npmjs.com/package/native-or-bluebird", "description": "Helps transition to completely native."}, {"name": "pinkie-promise", "url": "https://github.com/floatdrop/pinkie-promise", "description": "Use native, or fall back to `pinkie`. Great for node library authors.", "stars": "120"}, {"name": "any-promise", "url": "https://github.com/kevinbeaty/any-promise", "description": "Loads the first available implementation. Safe for browserify.", "stars": "179"}]}, {"name": "sindresorhus's many Promise utilities ([see notes (⭐4.1k)](https://github.com/sindresorhus/promise-fun))", "parent": "Convenience Utilities", "entries": [{"name": "delay", "url": "https://github.com/sindresorhus/delay", "description": "Delay a promise a specified amount of time.", "stars": "516"}, {"name": "pify", "url": "https://github.com/sindresorhus/pify", "description": "Promisify (\"denodify\") a callback-style function.", "stars": "1.5k"}, {"name": "loud-rejection", "url": "https://github.com/sindresorhus/loud-rejection", "description": "Make unhandled promise rejections fail loudly instead of the default silent fail.", "stars": "282"}, {"name": "hard-rejection", "url": "https://github.com/sindresorhus/hard-rejection", "description": "Make unhandled promise rejections fail hard right away instead of the default silent fail", "stars": "102"}, {"name": "p-queue", "url": "https://github.com/sindresorhus/p-queue", "description": "Promise queue with concurrency control", "stars": "2.3k"}, {"name": "p-break", "url": "https://github.com/sindresorhus/p-break", "description": "Break out of a promise chain", "stars": "19"}, {"name": "p-lazy", "url": "https://github.com/sindresorhus/p-lazy", "description": "Create a lazy promise that defers execution until `.then()` or `.catch()` is called", "stars": "247"}, {"name": "p-defer", "url": "https://github.com/sindresorhus/p-defer", "description": "Create a deferred promise", "stars": "58"}, {"name": "p-if", "url": "https://github.com/sindresorhus/p-if", "description": "Conditional promise chains", "stars": "62"}, {"name": "p-tap", "url": "https://github.com/sindresorhus/p-tap", "description": "Tap into a promise chain without affecting its value or state", "stars": "132"}, {"name": "p-map", "url": "https://github.com/sindresorhus/p-map", "description": "Map over promises concurrently", "stars": "910"}, {"name": "p-all", "url": "https://github.com/sindresorhus/p-all", "description": "Run promise-returning & async functions concurrently with optional limited concurrency", "stars": "212"}, {"name": "p-limit", "url": "https://github.com/sindresorhus/p-limit", "description": "Run multiple promise-returning & async functions with limited concurrency", "stars": "1.1k"}, {"name": "p-times", "url": "https://github.com/sindresorhus/p-times", "description": "Run promise-returning & async functions a specific number of times concurrently", "stars": "35"}, {"name": "p-catch-if", "url": "https://github.com/sindresorhus/p-catch-if", "description": "Conditional promise catch handler", "stars": "38"}, {"name": "p-time", "url": "https://github.com/sindresorhus/p-time", "description": "Measure the time a promise takes to resolve", "stars": "65"}, {"name": "p-log", "url": "https://github.com/sindresorhus/p-log", "description": "Log the value/error of a promise", "stars": "25"}, {"name": "p-filter", "url": "https://github.com/sindresorhus/p-filter", "description": "Filter promises concurrently", "stars": "62"}, {"name": "p-settle", "url": "https://github.com/sindresorhus/p-settle", "description": "Settle promises concurrently and get their fulfillment value or rejection reason", "stars": "81"}, {"name": "p-memoize", "url": "https://github.com/sindresorhus/p-memoize", "description": "Memoize promise-returning & async functions", "stars": "312"}, {"name": "p-whilst", "url": "https://github.com/sindresorhus/p-whilst", "description": "Calls a function repeatedly while a condition returns true and then resolves the promise", "stars": "45"}, {"name": "p-throttle", "url": "https://github.com/sindresorhus/p-throttle", "description": "Throttle promise-returning & async functions", "stars": "289"}, {"name": "p-debounce", "url": "https://github.com/sindresorhus/p-debounce", "description": "Debounce promise-returning & async functions", "stars": "152"}, {"name": "p-retry", "url": "https://github.com/sindresorhus/p-retry", "description": "Retry a promise-returning or async function", "stars": "569"}, {"name": "p-wait-for", "url": "https://github.com/sindresorhus/p-wait-for", "description": "Wait for a condition to be true", "stars": "121"}, {"name": "p-timeout", "url": "https://github.com/sindresorhus/p-timeout", "description": "Timeout a promise after a specified amount of time", "stars": "205"}, {"name": "p-race", "url": "https://github.com/sindresorhus/p-race", "description": "A better `Promise.race()`", "stars": "36"}, {"name": "p-try", "url": "https://github.com/sindresorhus/p-try", "description": "`Promise#try()` ponyfill - Starts a promise chain", "stars": "42"}, {"name": "p-finally", "url": "https://github.com/sindresorhus/p-finally", "description": "`Promise#finally()` ponyfill - Invoked when the promise is settled regardless of outcome", "stars": "47"}, {"name": "p-any", "url": "https://github.com/sindresorhus/p-any", "description": "Wait for any promise to be fulfilled", "stars": "53"}, {"name": "p-some", "url": "https://github.com/sindresorhus/p-some", "description": "Wait for a specified number of promises to be fulfilled", "stars": "34"}, {"name": "p-pipe", "url": "https://github.com/sindresorhus/p-pipe", "description": "Compose promise-returning & async functions into a reusable pipeline", "stars": "109"}, {"name": "p-each-series", "url": "https://github.com/sindresorhus/p-each-series", "description": "Iterate over promises serially", "stars": "46"}, {"name": "p-map-series", "url": "https://github.com/sindresorhus/p-map-series", "description": "Map over promises serially", "stars": "44"}, {"name": "p-reduce", "url": "https://github.com/sindresorhus/p-reduce", "description": "Reduce a list of values using promises into a promise for a value", "stars": "64"}, {"name": "p-props", "url": "https://github.com/sindresorhus/p-props", "description": "Like `Promise.all()` but for `Map` and `Object`", "stars": "168"}]}, {"name": "Others", "parent": "Convenience Utilities", "entries": [{"name": "promise-method", "url": "https://github.com/wbinnssmith/promise-method", "description": "Standalone `bluebird.method`. Turn a synchronously-returning method into a promise-returning one.", "stars": "2"}, {"name": "is-promise", "url": "https://github.com/then/is-promise", "description": "Determine if something looks like a Promise.", "stars": "275"}, {"name": "sprom", "url": "https://github.com/then/sprom", "description": "Resolve when a stream ends. Optional buffering (be careful with this!)", "stars": "14"}, {"name": "task.js", "url": "https://github.com/mozilla/task.js", "description": "Write async functions in a blocking style using promises and generators. Like `bluebird.coroutine`.", "stars": "1.6k"}, {"name": "co", "url": "https://github.com/tj/co", "description": "Like `task.js` and `bluebird.coroutine`, but supports thunks too.", "stars": "12k"}, {"name": "lie-fs", "url": "https://www.npmjs.com/package/lie-fs", "description": "Promise wrappers for Node's FS API."}, {"name": "promise-do-until", "url": "https://github.com/busterc/promise-do-until", "description": "Calls a function repeatedly until a condition returns true and then resolves the promise.", "stars": "1"}, {"name": "promise-do-whilst", "url": "https://github.com/busterc/promise-do-whilst", "description": "Calls a function repeatedly while a condition returns true and then resolves the promise.", "stars": "3"}, {"name": "promise-semaphore", "url": "https://github.com/samccone/promise-semaphore", "description": "Push a set of work to be done in a configurable serial fashion", "stars": "29"}, {"name": "promise-nodeify", "url": "https://github.com/kevinoid/promise-nodeify", "description": "Standalone `nodeify` method which calls a Node-style callback on resolution or rejection.", "stars": "1"}]}]}