You're Invited:Meet the Socket Team at RSAC and BSidesSF 2026, March 23–26.RSVP
Socket
Book a DemoSign in
Socket

transduce-async

Package Overview
Dependencies
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

transduce-async - npm Package Compare versions

Comparing version
0.1.1
to
0.2.0
+2
-1
.jshintrc
{
"node":true,
"strict":true
"strict":true,
"asi":true
}
{
"name": "transduce-async",
"version": "0.1.1",
"version": "0.2.0",
"description": "Async transducers with Promises, defer, delay",

@@ -32,16 +32,9 @@ "main": "transduce-async.js",

"any-promise": "~0.1.0",
"transduce-util": "~0.1.0",
"transformer-protocol": "~0.1.0",
"iterator-protocol": "~0.1.0",
"transduce-impl-toarray": "~0.1.0",
"transduce-reduced": "~0.1.0",
"transduce-compose": "~0.1.0"
"transduce": "~0.4.1"
},
"devDependencies": {
"tape": "~3.0.0",
"any-transduce": "~0.2.0",
"transduce": "~0.2.0",
"tape": "~3.0.3",
"any-transduce": "~0.4.0",
"transducers-js": "~0.4.135",
"transducers.js": "~0.2.3",
"transduce-push": "~0.1.0",
"promise": "~6.0.1",

@@ -48,0 +41,0 @@ "rsvp": "~3.0.16",

@@ -1,10 +0,9 @@

"use strict";
var comp = require('transduce-compose'),
Prom = require('any-promise'),
ip = require('iterator-protocol'),
xfp = require('transformer-protocol'),
red = require('transduce-reduced'),
transduceToArray = require('transduce-impl-toarray'),
transformer = xfp.transformer,
undef;
'use strict'
var Prom = require('any-promise'),
comp = require('transduce/util/compose'),
arrayPush = require('transduce/util/arrayPush'),
isReduced = require('transduce/util/isReduced'),
unreduced = require('transduce/util/unreduced'),
transformer = require('transduce/transformer/transformer'),
iterator = require('transduce/iterator/iterator')

@@ -15,6 +14,6 @@ var impl = module.exports = {

reduce: reduce,
toArray: toArray,
defer: defer,
delay: delay
};
impl.toArray = transduceToArray(impl);
}

@@ -25,16 +24,25 @@ function compose(/*args*/){

len = fromArgs.length,
i = 0;
i = 0
for(; i < len; i++){
toArgs.push(fromArgs[i]);
toArgs.push(defer());
toArgs.push(fromArgs[i])
toArgs.push(defer())
}
return comp.apply(null, toArgs);
return comp.apply(null, toArgs)
}
function toArray(xf, coll){
var init = [],
push = arrayPush
if(coll === void 0){
return reduce(push, init, xf)
}
return transduce(xf, push, init, coll)
}
var _transduce = spread(__transduce),
_reduce = spread(__reduce);
_reduce = spread(__reduce)
function spread(fn, ctx){
return function(arr){
return fn.apply(ctx, arr);
};
return fn.apply(ctx, arr)
}
}

@@ -45,98 +53,98 @@

.all([xf, f, init, coll])
.then(_transduce);
.then(_transduce)
}
function __transduce(xf, f, init, coll){
f = transformer(f);
xf = xf(f);
return reduce(xf, init, coll);
f = transformer(f)
xf = xf(f)
return reduce(xf, init, coll)
}
function reduce(xf, init, coll){
if(coll === undef){
coll = init;
init = xf.init();
if(coll === void 0){
coll = init
init = xf.init()
}
return Prom
.all([xf, init, coll])
.then(_reduce);
.then(_reduce)
}
function __reduce(xf, init, coll){
xf = transformer(xf);
var reduce = new Reduce(ip.iterator(coll), init, xf);
return reduce.iterate();
xf = transformer(xf)
var reduce = new Reduce(iterator(coll), init, xf)
return reduce.iterate()
}
function Reduce(iter, init, xf){
var self = this;
self.xf = xf;
self.iter = iter;
self.value = init;
self._step = spread(self.__step, self);
self._loop = spread(self.__loop, self);
var self = this
self.xf = xf
self.iter = iter
self.value = init
self._step = spread(self.__step, self)
self._loop = spread(self.__loop, self)
}
Reduce.prototype.iterate = function(){
var self = this;
var self = this
return Prom
.all([self.next()])
.then(self._step);
};
.then(self._step)
}
Reduce.prototype.next = function(){
var self = this;
var self = this
return new Prom(function(resolve, reject){
try {
var item = self.iter.next();
var item = self.iter.next()
if(!item.done){
item = Prom
.all([item.value])
.then(_iteratorValue);
.then(_iteratorValue)
}
resolve(item);
resolve(item)
} catch(e){
reject(e);
reject(e)
}
});
};
})
}
Reduce.prototype.__step = function(item){
var self = this;
var self = this
return new Prom(function(resolve, reject){
try {
var result;
var result
if(item.done){
result = self.xf.result(self.value);
result = self.xf.result(self.value)
} else {
result = Prom
.all([self.xf.step(self.value, item.value)])
.then(self._loop);
.then(self._loop)
}
resolve(result);
resolve(result)
} catch(e){
reject(e);
reject(e)
}
});
};
})
}
Reduce.prototype.__loop = function(value){
var self = this;
self.value = value;
var self = this
self.value = value
return new Prom(function(resolve, reject){
try {
var result;
if(red.isReduced(value)){
result = self.xf.result(red.unreduced(value));
var result
if(isReduced(value)){
result = self.xf.result(unreduced(value))
} else {
result = self.iterate();
result = self.iterate()
}
resolve(result);
resolve(result)
} catch(e){
reject(e);
reject(e)
}
});
};
})
}
function _iteratorValue(item){
return {done: false, value: item[0]};
return {done: false, value: item[0]}
}
function defer() {
return delay();
return delay()
}

@@ -146,12 +154,12 @@

return function(xf){
return new Delay(wait, xf);
};
return new Delay(wait, xf)
}
}
function Delay(wait, xf) {
var self = this,
task = new DelayTask(wait, xf);
self.xf = xf;
self.task = task;
self._step = spread(task.step, task);
self._result = spread(task.result, task);
task = new DelayTask(wait, xf)
self.xf = xf
self.task = task
self._step = spread(task.step, task)
self._result = spread(task.result, task)
}

@@ -161,15 +169,15 @@

var self = this,
task = self.task;
task = self.task
if(task.resolved){
return task.resolved;
return task.resolved
}
return Prom
.resolve(self.xf.init());
};
.resolve(self.xf.init())
}
Delay.prototype.step = function(value, input) {
var self = this,
task = self.task;
task = self.task
if(task.resolved){
return task.resolved;
return task.resolved
}

@@ -179,9 +187,9 @@

.all([value, input])
.then(self._step);
};
.then(self._step)
}
Delay.prototype.result = function(value){
var self = this,
task = self.task;
task = self.task
if(task.resolved){
return task.resolved;
return task.resolved
}

@@ -191,57 +199,57 @@

.all([value])
.then(self._result);
};
.then(self._result)
}
function DelayTask(wait, xf){
this.wait = wait;
this.xf = xf;
this.q = [];
this.wait = wait
this.xf = xf
this.q = []
}
DelayTask.prototype.call = function(){
var next = this.q[0];
var next = this.q[0]
if(next && !next.processing){
next.processing = true;
next.processing = true
var wait = next.wait;
var wait = next.wait
if(wait > 0){
setTimeout(next.fn, wait);
setTimeout(next.fn, wait)
} else {
next.fn();
next.fn()
}
}
};
}
DelayTask.prototype.step = function(value, input){
var task = this;
var task = this
return new Prom(function(resolve, reject){
task.q.push({fn: step, wait: task.wait});
task.call();
task.q.push({fn: step, wait: task.wait})
task.call()
function step(){
try {
resolve(task.xf.step(value, input));
task.q.shift();
resolve(task.xf.step(value, input))
task.q.shift()
if(task.q.length > 0){
task.call();
task.call()
}
} catch(e){
reject(e);
reject(e)
}
}
});
};
})
}
DelayTask.prototype.result = function(value){
var task = this;
var task = this
task.resolved = new Prom(function(resolve, reject){
task.q.push({fn: result});
task.call();
task.q.push({fn: result})
task.call()
function result(){
try {
task.q = [];
resolve(task.xf.result(value));
task.q = []
resolve(task.xf.result(value))
} catch(e){
reject(e);
reject(e)
}
}
});
return task.resolved;
})
return task.resolved
};