Swap-Aggregator-Subgraph/node_modules/pull-stream/test/abort-stalled.js
Richa-iitr d211083153 Revert "Revert "added handler""
This reverts commit c36ee8c5ca.
2022-07-03 07:30:05 +05:30

69 lines
1.2 KiB
JavaScript

var tape = require('tape')
var pull = require('../')
//var abortable = require('pull-abortable')
function hang (values, onAbort) {
var i = 0
return function (abort, cb) {
if(i < values.length)
cb(null, values[i++])
else if(!abort)
_cb = cb
else {
_cb(abort)
cb(abort) //??
onAbort && onAbort()
}
}
}
function abortable () {
var _read, aborted
function reader (read) {
_read = read
return function (abort, cb) {
if(abort) aborted = abort
read(abort, cb)
}
}
reader.abort = function (cb) {
cb = cb || function (err) {
if(err && err !== true) throw err
}
if(aborted)
cb(aborted)
else _read(true, cb)
}
return reader
}
function test (name, trx) {
tape('test abort:'+name, function (t) {
var a = abortable()
pull(
hang([1,2,3], function () {
t.end()
}),
trx,
a,
pull.drain(function (e) {
if(e === 3)
setImmediate(function () {
a.abort()
})
}, function (err) {
})
)
})
}
test('through', pull.through())
test('map', pull.map(function (e) { return e }))
test('take', pull.take(Boolean))