promise-modules-list
v1.0.0
Published
A list of Promise packages on npm.
Downloads
1
Readme
Format
The list is a single object, in a JSON file, with packages / package-ish strings as keys and their tags as values.
The keys can be:
- package: Just a reference to an npm package.
- package-ish string: A string you pass into
require
which references a JS file inside a package. To distinguish these strings from package strings, just look for a slash/
character.
{
"q": [
"aplus",
"feature",
"b",
"d"
]
}
const promiseModulesList = require('promise-modules-list')
promiseModulesList.q // => ['export', 'a', 'aplus', 'feature', 'b' 'd']
Tag order is not significant!
Tags
Implementation
Tags according to the claimed implementation by the package.
- native - ECMAScript 2015 Promise
- aplus - Promises/A+ by the Promises/A+ organization
- a - CommonJS Promises/A
- b - CommonJS Promises/B
- d - CommonJS Promises/D
- implementation-unknown - Implementation unknown
Note: A returns a promise
function. B and D do not export a Promise
constructor.
Packages can have more than one of these tags if they implement them (depending on how awesome they are?). For example, many packages are compatible with both A+ and native. They can also be:
- native-or - Will return the
Promise
when available in the environment. Must be first choice for tag inclusion. That is, if the package might consider the environmentPromise
second to last, it can't have this tag. - or-native - Will fall back to the
Promise
available to the environment. Usually used with packages that search for availablePromise
packages. Must be last choice for tag inclusion. - danger - This package mix-and-matches implementations depending on variables / the environment. Use with caution.
Retrieval method
How to retrieve the Promise from the package, assuming a CommonJS environment.
- return - Returns the
Promise
constructor from the package, i.e.var Promise = require('...')
. Ponyfills fall under this tag. Returns thepromise
function for Promises/A. - polyfill - Polyfills the environment, i.e.
require('...')
- export - Exports a
Promise
constructor from the package, i.e.var Promise = require('...').Promise
- custom-export - Uses a different export name, i.e.
var Promise = require('...')['...']
. - nonstandard - Does not export a
Promise
constructor at all. 🙁
Additional features
- feature - Adds functionality to either or both the prototype and the constructor
Promise
, in addition to the scope of the main claimed implementation. Trivial methods such as apolyfill
method or debugging features are not considered.
Don't be confused when packages mention "native"!
When "native Promise
" is mentioned, it might mean two things, which aren't necessarily mutually exclusive:
- A
Promise
that implements the ECMAScript 2015 Promise specification. - The
Promise
in the environment, whether available without prior modifications or polyfilled, i.e.=== global.Promise
.
Draw on the context to make sure what meaning is intended!
License
CC0-1.0