New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

all-promises

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

all-promises

Collect all Promise Implementations

  • 1.5.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
11
decreased by-8.33%
Maintainers
1
Weekly downloads
 
Created
Source

all-promises

Build status Greenkeeper badge NPM version Dependency status

This project is try to collect all Promise implementations which follow ECMAScript 6 (which based on Promises/A+ 1.1.1).

Usage

The goal of this project is to provide a centric location to ease the comparison and testings of different implementations. Normally you only need one Promise implementation in your application, so you would mostly never use this package in the productions.

Install

npm install all-promises

API

function getPromiseConstructor(name: string): PromiseConstructor
var Promise = require('all-promises').getPromiseConstructor('q') // q implementation
var p = new Promise(function (resolve) { resolve(1) })
p.then(function (x) { assert(x === 1) })
default: PromiseConstructor

test.js file:

var Promise = require('all-promises').default // default implementation

You can specify default implementation by passing env variable:

P=rsvp node test

If no env P is provided, default to V8 native implementation

list: Array<PromiseImplementation>
interface PromiseImplementation {
	name: string,
	version: string,
	aliases: Array<string>,
	Promise: PromiseConstructor?,
	error: Error?
}
var list = require('all-promises').list

list.forEach(function (impl, index) {
	console.log(index + '.',
		'package name:', impl.name,
		'aliases:', impl.aliases,
		'version:', impl.version)
	var Promise = impl.Promise // Promise constructor
	if (Promise) Promise.resolve(1).then(function (x) { assert(x === 1) })
	else console.warn(impl.error)
})
function register(packageName: string, alias?: string|Array<string>, exportPromise?: string|function)
function unregister(name: string): boolean
function has(name: string): boolean
function get(name: string): PromiseImplementation
var promises = require('all-promises')

promises.has('es6-promise-polyfill') // false
promises.register('es6-promise-polyfill')
promises.has('es6-promise-polyfill') // true
var impl = promises.get('es6-promise-polyfill')
assert.deepEqual(impl, {
	name: 'es6-promise-polyfill',
	aliases: [],
	Promise: promises.getPromiseConstructor('es6-promise-polyfill'),
})
promises.unregister('es6-promise-polyfill') // true
promises.has('es6-promise-polyfill') // false
promises.unregister('es6-promise-polyfill') // false

Current list of implementations (order by alphabet)

packagerepoalias
bluebirdpetkaantonov/bluebirdbb
es6-promisejakearchibald/es6-promise
es6-promise-polyfill 1lahmatiy/es6-promise-polyfill
es6-promisesOctane/Promise
liecalvinmetcalf/lie
my-promisehax/my-promisemy
native-promise-onlygetify/native-promise-onlynpo
promiscuousRubenVerborgh/promiscuous
promisethen/promisethen
promizZolmeister/promiz
qkriskowal/q
rsvptildeio/rsvp.js
vowdfilatov/vow
whencujojs/whenw
yakuysmood/yaku

How to add a new implementation

Criteria

  • MUST register on npm

  • MUST support new Promise(function executor(resolve, reject) { ... }), Promise.resolve() and Promise.reject() API

  • SHOULD pass all Promise/A+ Tests

    NOTE: Currently most implementations don't pass ES6 Promise Tests, so it's not on the MUST list up to now.

Contribute

  1. Edit implementations.js
  2. Edit package.json (npm install package-name-of-new-implementation --save)
  3. Run npm test, if everything is ok then
  4. Send pull request

Footnotes

  1. based on es6-promise, so excluded from the registery by default

Keywords

FAQs

Package last updated on 20 Jul 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc