Socket
Socket
Sign inDemoInstall

mock-promises

Package Overview
Dependencies
0
Maintainers
1
Versions
19
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.0.3 to 0.1.0

53

lib/mock-promises.js

@@ -45,5 +45,5 @@ (function() {

function MockPromise(){
MockPromise = function MockPromise(){
return this.initialize.apply(this, arguments);
}
};

@@ -137,2 +137,3 @@ MockPromise.resolve = function(value) {

var promise = this;
var thenPromise = new MockPromise(function(){});
contractsTracker.add({

@@ -142,5 +143,6 @@ promise: promise,

errorHandler: arguments[1],
progressHandler: arguments[2]
progressHandler: arguments[2],
thenPromise: thenPromise
});
return promise;
return thenPromise;
};

@@ -173,4 +175,17 @@

this.progressHandler = options.progressHandler;
this.thenPromise = options.thenPromise
};
function resolvePromise(promise, value) {
promise.isFulfilled = function(){return true;};
promise.isRejected = function(){return false;};
promise.inspect = function() {return {value: value};}
}
function rejectPromise(promise, reason) {
promise.isFulfilled = function(){return false;};
promise.isRejected = function(){return true;};
promise.inspect = function() {return {reason: reason};}
}
extend(Contract.prototype, {

@@ -180,10 +195,32 @@ execute: function() {

this._executed = true;
var value, nextValue, handler;
if(this.promise.isFulfilled()) {
this.fulfilledHandler.call(this.promise, this.promise.inspect().value);
value = this.promise.inspect().value;
handler = this.fulfilledHandler;
if(handler) {
try {
nextValue = handler.call(this.promise, value);
resolvePromise(this.thenPromise, nextValue);
} catch(e) {
rejectPromise(this.thenPromise, e)
}
} else {
resolvePromise(this.thenPromise, value);
}
} else if(this.promise.isRejected()) {
this.errorHandler.call(this.promise, this.promise.inspect().reason);
value = this.promise.inspect().reason;
handler = this.errorHandler;
if(handler) {
try {
nextValue = handler.call(this.promise, value);
resolvePromise(this.thenPromise, nextValue);
} catch(e) {
rejectPromise(this.thenPromise, e)
}
} else {
rejectPromise(this.thenPromise, value);
}
} else {
throw new Error("this promise is not resolved and should not be executed");
}
}

@@ -245,3 +282,3 @@ }

var resolvedContracts = this.filter(function(contract) {
return contract.promise.isFulfilled();
return contract.promise.isFulfilled() || contract.promise.isRejected();
});

@@ -248,0 +285,0 @@ each(resolvedContracts, function(contract) {

2

Package.json
{
"name": "mock-promises",
"version": "0.0.3",
"version": "0.1.0",
"author": "Charles Hansen <chansen87@gmail.com>",

@@ -5,0 +5,0 @@ "license": "MIT",

SocketSocket SOC 2 Logo

Product

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

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc