Socket
Socket
Sign inDemoInstall

promise-resolve-deep

Package Overview
Dependencies
0
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.0.1 to 1.0.2

benchmark.js

24

index.js

@@ -9,2 +9,12 @@ 'use strict';

};
let promiseProps = Promise.props || function propsImpl(obj) {
let promisesToResolve = [];
Object.keys(obj).map(key => {
let promise = Promise.resolve(obj[key]).then(val => {
obj[key] = val;
});
promisesToResolve.push(promise)
});
return Promise.all(promisesToResolve).then(() => obj);
};

@@ -16,13 +26,7 @@ return Promise.resolveDeep = function resolveNestedPromises(obj) {

}
else if(obj && typeof obj === 'object' ) {
let promisesToResolve = [];
Object.keys(obj).map(key => {
let promise = resolveNestedPromises(obj[key]).then(val => {
obj[key] = val;
});
promisesToResolve.push(promise)
});
if(promisesToResolve.length) {
return Promise.all(promisesToResolve).then(() => obj);
else if(obj && typeof obj === 'object' && obj.constructor === Object) {
for(var key in obj) {
obj[key] = resolveNestedPromises(obj[key]);
}
return promiseProps(obj);
}

@@ -29,0 +33,0 @@ return obj;

{
"name": "promise-resolve-deep",
"version": "1.0.1",
"version": "1.0.2",
"description": "Resolve a promise or value and all of its embedded promises (key values, elements of array, including nested)",

@@ -19,10 +19,12 @@ "main": "index.js",

"devDependencies": {
"benchmark": "^2.1.0",
"bluebird": "^3.3.3",
"chai": "^3.5.0",
"mocha": "^2.4.5",
"bluebird": "^3.3.3"
"microtime": "^2.1.0",
"mocha": "^2.4.5"
},
"repository" : {
"type" : "git"
, "url" : "https://github.com/virtkick/promise-resolve-deep.git"
"repository": {
"type": "git",
"url": "https://github.com/virtkick/promise-resolve-deep.git"
}
}

@@ -12,3 +12,3 @@ ## promise-resolve-deep

It can more or less be used like `Proimse.resolve` but will recursively/deep travel and resolve all nested promises.
Use it like `Proimse.resolve` and it will recursively/deep travel and resolve all nested promises in arrays and objects. Also any object or an array that any promise resolves to, will be deeply resolved too.

@@ -34,4 +34,34 @@ ```js

# License
## Fun with APIs
```js
// app is express application
// User and Book are bookshelf.js models
// needs: require('promise-resolve-deep')(Promise); to install the .resolveDeep method
app.get('/resources', wrap(() => {
return {
users: User.fetchAll().then(users => users.map(user => user.attributes)),
books: Book.fetchAll().then(books => books.map(book => book.attributes))
};
}));
// utilizing Promise.resolveDeep
function wrap(func) {
return (req, res) => {
Promise.resolve().then(() => func())
.then(Promise.resolveDeep).then(data => {
res.json(data);
}).catch(err => res.status(500));
}
}
```
If you want to write such declarative Promise-based APIs then you may also like this: https://github.com/virtkick/express-router-api
## Author
Damian Kaczmarek <rush@virtkick.com>
## License
MIT
'use strict';
require('chai');
let setupResolveDeep = require('./');
let setupResolveDeep = require('./index');
let assert = require('chai').assert;

@@ -6,0 +6,0 @@ let PromiseBluebird = require('bluebird');

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