Skip to content

Instantly share code, notes, and snippets.

@toddself
Created July 2, 2016 00:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save toddself/01253780c25ce4a6675b8e54fac7c1d0 to your computer and use it in GitHub Desktop.
Save toddself/01253780c25ce4a6675b8e54fac7c1d0 to your computer and use it in GitHub Desktop.
requirebin sketch
const pull = require('pull-stream')
const Notify = require('pull-notify')
const notify = Notify()
pull(notify.listen(), pull.drain(console.log))
notify('hello', 'world')
notify.end()
setTimeout(function(){require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){"use strict";module.exports=function pull(a){var length=arguments.length;if(typeof a==="function"&&a.length===1){var args=new Array(length);for(var i=0;i<length;i++)args[i]=arguments[i];return function(read){args.unshift(read);return pull.apply(null,args)}}var read=a;if(read&&typeof read.source==="function"){read=read.source}for(var i=1;i<length;i++){var s=arguments[i];if(typeof s==="function"){read=s(read)}else if(s&&typeof s==="object"){s.sink(read);read=s.source}}return read}},{}],2:[function(require,module,exports){"use strict";var reduce=require("./reduce");module.exports=function collect(cb){return reduce(function(arr,item){arr.push(item);return arr},[],cb)}},{"./reduce":9}],3:[function(require,module,exports){"use strict";var reduce=require("./reduce");module.exports=function concat(cb){return reduce(function(a,b){return a+b},"",cb)}},{"./reduce":9}],4:[function(require,module,exports){"use strict";module.exports=function drain(op,done){var read,abort;function sink(_read){read=_read;if(abort)return sink.abort();(function next(){var loop=true,cbed=false;while(loop){cbed=false;read(null,function(end,data){cbed=true;if(end=end||abort){loop=false;if(done)done(end===true?null:end);else if(end&&end!==true)throw end}else if(op&&false===op(data)||abort){loop=false;read(abort||true,done||function(){})}else if(!loop){next()}});if(!cbed){loop=false;return}}})()}sink.abort=function(err,cb){if("function"==typeof err)cb=err,err=true;abort=err||true;if(read)return read(abort,cb||function(){})};return sink}},{}],5:[function(require,module,exports){"use strict";function id(e){return e}var prop=require("../util/prop");var drain=require("./drain");module.exports=function find(test,cb){var ended=false;if(!cb)cb=test,test=id;else test=prop(test)||id;return drain(function(data){if(test(data)){ended=true;cb(null,data);return false}},function(err){if(ended)return;cb(err===true?null:err,null)})}},{"../util/prop":29,"./drain":4}],6:[function(require,module,exports){"use strict";module.exports={drain:require("./drain"),onEnd:require("./on-end"),log:require("./log"),find:require("./find"),reduce:require("./reduce"),collect:require("./collect"),concat:require("./concat")}},{"./collect":2,"./concat":3,"./drain":4,"./find":5,"./log":7,"./on-end":8,"./reduce":9}],7:[function(require,module,exports){"use strict";var drain=require("./drain");module.exports=function log(done){return drain(function(data){console.log(data)},done)}},{"./drain":4}],8:[function(require,module,exports){"use strict";var drain=require("./drain");module.exports=function onEnd(done){return drain(null,done)}},{"./drain":4}],9:[function(require,module,exports){"use strict";var drain=require("./drain");module.exports=function reduce(reducer,acc,cb){return drain(function(data){acc=reducer(acc,data)},function(err){cb(err,acc)})}},{"./drain":4}],10:[function(require,module,exports){"use strict";module.exports=function count(max){var i=0;max=max||Infinity;return function(end,cb){if(end)return cb&&cb(end);if(i>max)return cb(true);cb(null,i++)}}},{}],11:[function(require,module,exports){"use strict";module.exports=function empty(){return function(abort,cb){cb(true)}}},{}],12:[function(require,module,exports){"use strict";module.exports=function error(err){return function(abort,cb){cb(err)}}},{}],13:[function(require,module,exports){"use strict";module.exports={keys:require("./keys"),once:require("./once"),values:require("./values"),count:require("./count"),infinite:require("./infinite"),empty:require("./empty"),error:require("./error")}},{"./count":10,"./empty":11,"./error":12,"./infinite":14,"./keys":15,"./once":16,"./values":17}],14:[function(require,module,exports){"use strict";module.exports=function infinite(generate){generate=generate||Math.random;return function(end,cb){if(end)return cb&&cb(end);return cb(null,generate())}}},{}],15:[function(require,module,exports){"use strict";var values=require("./values");module.exports=function(object){return values(Object.keys(object))}},{"./values":17}],16:[function(require,module,exports){"use strict";var abortCb=require("../util/abort-cb");module.exports=function once(value,onAbort){return function(abort,cb){if(abort)return abortCb(cb,abort,onAbort);if(value!=null){var _value=value;value=null;cb(null,_value)}else cb(true)}}},{"../util/abort-cb":28}],17:[function(require,module,exports){"use strict";var abortCb=require("../util/abort-cb");module.exports=function values(array,onAbort){if(!array)return function(abort,cb){if(abort)return abortCb(cb,abort,onAbort);return cb(true)};if(!Array.isArray(array))array=Object.keys(array).map(function(k){return array[k]});var i=0;return function(abort,cb){if(abort)return abortCb(cb,abort,onAbort);cb(i>=array.length||null,array[i++])}}},{"../util/abort-cb":28}],18:[function(require,module,exports){"use strict";function id(e){return e}var prop=require("../util/prop");module.exports=function asyncMap(map){if(!map)return id;map=prop(map);var busy=false,abortCb,aborted;return function(read){return function next(abort,cb){if(aborted)return cb(aborted);if(abort){aborted=abort;if(!busy)read(abort,cb);else read(abort,function(){if(busy)abortCb=cb;else cb(abort)})}else read(null,function(end,data){if(end)cb(end);else if(aborted)cb(aborted);else{busy=true;map(data,function(err,data){busy=false;if(aborted){cb(aborted);abortCb(aborted)}else if(err)next(err,cb);else cb(null,data)})}})}}}},{"../util/prop":29}],19:[function(require,module,exports){"use strict";var tester=require("../util/tester");var filter=require("./filter");module.exports=function filterNot(test){test=tester(test);return filter(function(data){return!test(data)})}},{"../util/tester":30,"./filter":20}],20:[function(require,module,exports){"use strict";var tester=require("../util/tester");module.exports=function filter(test){test=tester(test);return function(read){return function next(end,cb){var sync,loop=true;while(loop){loop=false;sync=true;read(end,function(end,data){if(!end&&!test(data))return sync?loop=true:next(end,cb);cb(end,data)});sync=false}}}}},{"../util/tester":30}],21:[function(require,module,exports){"use strict";var values=require("../sources/values");var once=require("../sources/once");module.exports=function flatten(){return function(read){var _read;return function(abort,cb){if(abort){_read?_read(abort,function(err){read(err||abort,cb)}):read(abort,cb)}else if(_read)nextChunk();else nextStream();function nextChunk(){_read(null,function(err,data){if(err===true)nextStream();else if(err){read(true,function(abortErr){cb(err)})}else cb(null,data)})}function nextStream(){_read=null;read(null,function(end,stream){if(end)return cb(end);if(Array.isArray(stream)||stream&&"object"===typeof stream)stream=values(stream);else if("function"!=typeof stream)stream=once(stream);_read=stream;nextChunk()})}}}}},{"../sources/once":16,"../sources/values":17}],22:[function(require,module,exports){"use strict";module.exports={map:require("./map"),asyncMap:require("./async-map"),filter:require("./filter"),filterNot:require("./filter-not"),through:require("./through"),take:require("./take"),unique:require("./unique"),nonUnique:require("./non-unique"),flatten:require("./flatten")}},{"./async-map":18,"./filter":20,"./filter-not":19,"./flatten":21,"./map":23,"./non-unique":24,"./take":25,"./through":26,"./unique":27}],23:[function(require,module,exports){"use strict";function id(e){return e}var prop=require("../util/prop");module.exports=function map(mapper){if(!mapper)return id;mapper=prop(mapper);return function(read){return function(abort,cb){read(abort,function(end,data){try{data=!end?mapper(data):null}catch(err){return read(err,function(){return cb(err)})}cb(end,data)})}}}},{"../util/prop":29}],24:[function(require,module,exports){"use strict";var unique=require("./unique");module.exports=function nonUnique(field){return unique(field,true)}},{"./unique":27}],25:[function(require,module,exports){"use strict";module.exports=function take(test,opts){opts=opts||{};var last=opts.last||false;var ended=false;if("number"===typeof test){last=true;var n=test;test=function(){return--n}}return function(read){function terminate(cb){read(true,function(err){last=false;cb(err||true)})}return function(end,cb){if(ended)last?terminate(cb):cb(ended);else if(ended=end)read(ended,cb);else read(null,function(end,data){if(ended=ended||end){cb(ended)}else if(!test(data)){ended=true;last?cb(null,data):terminate(cb)}else cb(null,data)})}}}},{}],26:[function(require,module,exports){"use strict";module.exports=function through(op,onEnd){var a=false;function once(abort){if(a||!onEnd)return;a=true;onEnd(abort===true?null:abort)}return function(read){return function(end,cb){if(end)once(end);return read(end,function(end,data){if(!end)op&&op(data);else once(end);cb(end,data)})}}}},{}],27:[function(require,module,exports){"use strict";function id(e){return e}var prop=require("../util/prop");var filter=require("./filter");module.exports=function unique(field,invert){field=prop(field)||id;var seen={};return filter(function(data){var key=field(data);if(seen[key])return!!invert;else seen[key]=true;return!invert})}},{"../util/prop":29,"./filter":20}],28:[function(require,module,exports){module.exports=function abortCb(cb,abort,onAbort){cb(abort);onAbort&&onAbort(abort===true?null:abort);return}},{}],29:[function(require,module,exports){module.exports=function prop(key){return key&&("string"==typeof key?function(data){return data[key]}:"object"===typeof key&&"function"===typeof key.exec?function(data){var v=key.exec(data);return v&&v[0]}:key)}},{}],30:[function(require,module,exports){var prop=require("./prop");function id(e){return e}module.exports=function tester(test){return"object"===typeof test&&"function"===typeof test.test?function(data){return test.test(data)}:prop(test)||id}},{"./prop":29}],"pull-stream":[function(require,module,exports){"use strict";var sources=require("./sources");var sinks=require("./sinks");var throughs=require("./throughs");exports=module.exports=require("./pull");for(var k in sources)exports[k]=sources[k];for(var k in throughs)exports[k]=throughs[k];for(var k in sinks)exports[k]=sinks[k]},{"./pull":1,"./sinks":6,"./sources":13,"./throughs":22}]},{},[]);require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){module.exports=pullPushable;function pullPushable(onClose){var buffer=[];var abort,cb;function read(_abort,_cb){if(_abort){abort=_abort;if(cb)callback(abort)}cb=_cb;drain()}var ended;read.end=function(end){ended=ended||end||true;drain()};read.push=function(data){if(ended)return;if(cb){callback(abort,data);return}buffer.push(data);drain()};return read;function drain(){if(!cb)return;if(abort)callback(abort);else if(!buffer.length&&ended)callback(ended);else if(buffer.length)callback(null,buffer.shift())}function callback(err,val){var _cb=cb;if(err&&onClose){var c=onClose;onClose=null;c(err===true?null:err)}cb=null;_cb(err,val)}}},{}],"pull-notify":[function(require,module,exports){var pushable=require("pull-pushable");module.exports=function(){var listeners=[];function notify(message){for(var i=0;i<listeners.length;i++){listeners[i].push(message)}return message}notify.listen=function(){var listener=pushable(function onClose(){var index=listeners.indexOf(listener);if(index!==-1)listeners.splice(index,1)});listeners.push(listener);return listener};notify.abort=function(err){while(listeners.length)listeners[0].end(err)};notify.end=function(){return notify.abort(true)};return notify}},{"pull-pushable":1}]},{},[]);const pull=require("pull-stream");const Notify=require("pull-notify");const notify=Notify();pull(notify.listen(),pull.drain(console.log));notify("hello","world");notify.end()},0);
{
"name": "requirebin-sketch",
"version": "1.0.0",
"dependencies": {
"pull-stream": "3.4.3",
"pull-notify": "0.1.1"
}
}
<!-- contents of this file will be placed inside the <body> -->
<!-- contents of this file will be placed inside the <head> -->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment