
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
REST, lazily: transform any (limit, offset) resource interface into an
asynchronous iterable.
$ npm install sieste
Returns a new iterable for the given fetching function fn.
opts {Object} Pre-fetching configuration. Two keys are available:
lowWaterMark (number of cached elements when to send a pre-fetch
request). [default: 2]highWaterMark (maximum number of elements cached at one time in one
direction). [default: 5]fn(limit, offset, params, cb) {Function} Function used to load the
iterable. This function takes the following arguments:
limit {Number} Number of elements to fetch.offset {Number} Starting offset of first element to fetch.params {Object} Passed through from reset.cb(err, elems) {Function} If the list of elements returned is shorter
than the total amount of elements asked for, the resource will be
considered exhausted.Note that sieste doesn't make any assumptions on how your underlying resource
is served and will simply take care of calling this method appropriately
(handling pre-fetching and caching for you).
Reset the iterable, changing the underlying resource.
params {Object} Parameters used to set the resource used (this will be
passed to each call to fn).index {Number} Optional start index. Note that an error will occur if this
index is set to a value greater than the total amount of elements in the
resource. [default: 0]cb(err, elem) {Function} Callback to which the element at index will be
passed.Retrieve next element.
cb(err, elem) {Function} Callback to which the next element will be
passed (null if end of iterable).Retrieve previous element.
cb(err, elem) {Function} Callback to which the previous element will be
passed (null if beginning of iterable).Sample implementations for a standard REST resource.
// Assuming $ and Sieste available on the global object.
var iter = sieste(function (limit, offset, params, cb) {
$.ajax({
url: params.protocol + '//' + params.hostname + '/' + params.pathname,
data: {limit: limit, offset: offset},
type: 'GET'
}).done(function (data) { cb(null, data); })
.fail(function (xhr) { cb(xhr); });
});
var http = require('http'),
url = require('url'),
sieste = require('sieste');
var iter = sieste(function (limit, offset, params, cb) {
var formattedUrl = url.format({
protocol: 'http',
hostname: params.hostname,
port: params.port,
pathname: params.pathname,
query: {limit: limit, offset: offset}
});
http.get(formattedUrl, function (res) {
var data = '';
var obj;
res
.on('data', function (chunk) { data += chunk; })
.on('end', function () {
try {
obj = JSON.parse(data);
} catch (err) {
cb(err);
return;
}
cb(null, obj);
});
});
});
These iterables can then be used in the same way, for example:
// Assuming params points to the resource's URL.
iter.reset(params, function (err, elem) {
console.log('Got elem ' + elem + '!');
});
FAQs
Lazy REST iterable.
The npm package sieste receives a total of 0 weekly downloads. As such, sieste popularity was classified as not popular.
We found that sieste demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

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.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.