Socket
Socket
Sign inDemoInstall

schema-client

Package Overview
Dependencies
1
Maintainers
1
Versions
47
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.1.3 to 2.2.0

49

lib/client.js

@@ -146,2 +146,10 @@ /**

// Resolve data as promised
var promises = this.promisifyData(data);
if (promises.length) {
return Promise.all(promises).bind(this).then(function() {
this.request(method, url, data, callback);
});
}
// Prepare url and data for request

@@ -191,2 +199,43 @@ url = url && url.toString ? url.toString() : '';

/**
* Resolve and return promises array from data
* Only resolve top level object keys
*
* @param object data
* @return array
*/
Client.prototype.promisifyData = function(data) {
if (!data) {
return [];
}
function thenResolvePromisedValue(data, key) {
data[key].then(function(val) {
data[key] = val;
});
}
var promises = [];
if (typeof data === 'object') {
var keys = Object.keys(data);
for (var i = 0; i < keys.length; i++) {
var key = keys[i];
if (data[key] && data[key].then) {
promises.push(data[key]);
thenResolvePromisedValue(data, key);
}
}
} else if (data instanceof Array) {
for (var i = 0; i < data.length; i++) {
if (data[i] && data[i].then) {
promises.push(data[i]);
thenResolvePromisedValue(data, i);
}
}
}
return promises;
};
/**
* Client response handler

@@ -193,0 +242,0 @@ *

2

package.json
{
"name": "schema-client",
"version": "2.1.3",
"version": "2.2.0",
"description": "Schema API Client for NodeJS",

@@ -5,0 +5,0 @@ "keywords": [

@@ -328,2 +328,32 @@ var assert = require('chai').assert;

});
it('resolves promised data (object)', function() {
var data = {
test1: Promise.resolve('hello'),
test2: Promise.resolve('world'),
test3: 'static'
};
return client.request('get', 'url', data).then(function() {
assert.deepEqual(serverRequestStub.args[0][2].$data, {
test1: 'hello',
test2: 'world',
test3: 'static'
});
});
});
it('resolves promised data (array)', function() {
var data = [
Promise.resolve('hello'),
Promise.resolve('world'),
'static'
];
return client.request('get', 'url', data).then(function() {
assert.deepEqual(serverRequestStub.args[0][2].$data, [
'hello', 'world', 'static'
]);
});
});
});

@@ -548,2 +578,2 @@

});
});
});

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc