made with requirebin
Created
April 22, 2015 07:10
-
-
Save nstadigs/0b53fa6282c741ee56bc to your computer and use it in GitHub Desktop.
requirebin sketch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// require() some stuff from npm (like you were using browserify) | |
// and then hit Run Code to run it on the right | |
var flyd = require('flyd'); | |
var scanMerge = require('flyd-scanmerge'); | |
var stream = flyd.stream(0); | |
var createTodo = flyd.stream(); | |
var deleteTodo = flyd.stream(); | |
var todos = scanMerge([ | |
[createTodo, function (todos, todo) { | |
return todos.concat(todo); | |
}], | |
[deleteTodo, function (todos, id) { | |
return todos.filter(function (todo) { | |
return todo.id !== id; | |
}); | |
}], | |
], []); | |
flyd.stream([todos], function () { | |
console.log(todos()); | |
}); | |
createTodo({ | |
id: 1, | |
test: 'baba' | |
}); | |
createTodo({ | |
id: 2, | |
test: 'hehe' | |
}); | |
deleteTodo(1); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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}({flyd:[function(require,module,exports){(function(root,factory){if(typeof define==="function"&&define.amd){define([],factory)}else if(typeof exports==="object"){module.exports=factory()}else{root.flyd=factory()}})(this,function(){"use strict";function isFunction(obj){return!!(obj&&obj.constructor&&obj.call&&obj.apply)}function isUndefined(v){return v===undefined}var toUpdate=[];var inStream;function removeListener(listeners,s){var idx=listeners.indexOf(s);listeners[idx]=listeners[listeners.length-1];listeners.length--}function map(s,f){return stream([s],function(){return f(s())})}var scan=curryN(3,function(f,acc,s){var ns=stream([s],function(){return acc=f(acc,s())});if(!ns.hasVal)ns(acc);return ns});var merge=curryN(2,function(s1,s2){return stream([s1,s2],function(n,changed){var v1,v2;if(changed)return changed();else{v1=s1();v2=s2();return v1===undefined?v2:v1}},true)});function ap(s2){var s1=this;return stream([s1,s2],function(){return s1()(s2())})}function of(v){return stream(v)}function initialDepsNotMet(stream){if(!stream.depsMet){stream.depsMet=stream.deps.every(function(s){return s.hasVal})}return!stream.depsMet}function updateStream(s){if(initialDepsNotMet(s))return;inStream=s;var returnVal=s.fn(s,s.depChanged);if(returnVal!==undefined){s(returnVal)}inStream=undefined;s.depChanged=undefined}function findDeps(order,s){if(!s.queued){s.queued=true;for(var i=0;i<s.listeners.length;++i){findDeps(order,s.listeners[i])}order.push(s)}}function updateDeps(s){var i,order=[];for(i=0;i<s.listeners.length;++i){s.listeners[i].depChanged=s;findDeps(order,s.listeners[i])}for(i=order.length-1;i>=0;--i){if(!isUndefined(order[i].depChanged)){updateStream(order[i])}order[i].queued=false}}function flushUpdate(){for(var s;s=toUpdate.shift();){updateDeps(s)}}function destroy(stream){if(stream.listeners.length!==0){throw new Error("Trying to destroy stream with listeners attached")}stream.deps.forEach(function(dep){removeListener(dep.listeners,stream)})}function isStream(stream){return isFunction(stream)&&"depsMet"in stream}function streamToString(){return"stream("+this.val+")"}function stream(arg,fn,waitForDeps){function s(n){if(arguments.length>0){if(n&&isFunction(n.then)){n.then(s);return}s.val=n;s.hasVal=true;if(inStream!==s){toUpdate.push(s);if(!inStream)flushUpdate()}else{for(var j=0;j<s.listeners.length;++j){s.listeners[j].depChanged=s}}return s}else{return s.val}}s.hasVal=false;s.val=undefined;s.listeners=[];s.deps=[];s.depsMet=isUndefined(waitForDeps)&&arguments.length>1?false:true;s.depChanged=undefined;s.queued=false;s.fn=fn;s.map=map.bind(null,s);s.ap=ap;s.of=of;s.toString=streamToString;if(arguments.length>1){s.deps=arg;arg.forEach(function(dep){dep.listeners.push(s)});updateStream(s);flushUpdate()}else if(arguments.length===1){s(arg)}return s}var transduce=curryN(2,function(xform,source){xform=xform(new StreamTransformer(stream));return stream([source],function(){return xform.step(undefined,source())})});function StreamTransformer(res){}StreamTransformer.prototype.init=function(){};StreamTransformer.prototype.result=function(){};StreamTransformer.prototype.step=function(s,v){return v};var _={placeholder:true};function isPlaceholder(p){return p===_||p&&p.ramda==="placeholder"}function toArray(arg){var arr=[];for(var i=0;i<arg.length;++i){arr[i]=arg[i]}return arr}function ofArity(n,fn){if(arguments.length===1){return ofArity.bind(undefined,n)}switch(n){case 0:return function(){return fn.apply(this,arguments)};case 1:return function(a0){void a0;return fn.apply(this,arguments)};case 2:return function(a0,a1){void a1;return fn.apply(this,arguments)};case 3:return function(a0,a1,a2){void a2;return fn.apply(this,arguments)};case 4:return function(a0,a1,a2,a3){void a3;return fn.apply(this,arguments)};case 5:return function(a0,a1,a2,a3,a4){void a4;return fn.apply(this,arguments)};case 6:return function(a0,a1,a2,a3,a4,a5){void a5;return fn.apply(this,arguments)};case 7:return function(a0,a1,a2,a3,a4,a5,a6){void a6;return fn.apply(this,arguments)};case 8:return function(a0,a1,a2,a3,a4,a5,a6,a7){void a7;return fn.apply(this,arguments)};case 9:return function(a0,a1,a2,a3,a4,a5,a6,a7,a8){void a8;return fn.apply(this,arguments)};case 10:return function(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9){void a9;return fn.apply(this,arguments)};default:throw new Error("First argument to arity must be a non-negative integer no greater than ten")}}function curryN(length,fn){return ofArity(length,function(){var n=arguments.length;var shortfall=length-n;var idx=n;while(--idx>=0){if(isPlaceholder(arguments[idx])){shortfall+=1}}if(shortfall<=0){return fn.apply(this,arguments)}else{var initialArgs=toArray(arguments);return curryN(shortfall,function(){var currentArgs=toArray(arguments);var combinedArgs=[];var idx=-1;while(++idx<n){var val=initialArgs[idx];combinedArgs[idx]=isPlaceholder(val)?currentArgs.shift():val}return fn.apply(this,combinedArgs.concat(currentArgs))})}})}return{stream:stream,isStream:isStream,transduce:transduce,merge:merge,reduce:scan,scan:scan,destroy:destroy,map:curryN(2,function(f,s){return map(s,f)}),curryN:curryN,_:_}})},{}]},{},[]);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){(function(root,factory){if(typeof define==="function"&&define.amd){define([],factory)}else if(typeof exports==="object"){module.exports=factory()}else{root.flyd=factory()}})(this,function(){"use strict";function isFunction(obj){return!!(obj&&obj.constructor&&obj.call&&obj.apply)}function isUndefined(v){return v===undefined}var toUpdate=[];var inStream;function removeListener(listeners,s){var idx=listeners.indexOf(s);listeners[idx]=listeners[listeners.length-1];listeners.length--}function map(s,f){return stream([s],function(){return f(s())})}var scan=curryN(3,function(f,acc,s){var ns=stream([s],function(){return acc=f(acc,s())});if(!ns.hasVal)ns(acc);return ns});var merge=curryN(2,function(s1,s2){return stream([s1,s2],function(n,changed){var v1,v2;if(changed)return changed();else{v1=s1();v2=s2();return v1===undefined?v2:v1}},true)});function ap(s2){var s1=this;return stream([s1,s2],function(){return s1()(s2())})}function of(v){return stream(v)}function initialDepsNotMet(stream){if(!stream.depsMet){stream.depsMet=stream.deps.every(function(s){return s.hasVal})}return!stream.depsMet}function updateStream(s){if(initialDepsNotMet(s))return;inStream=s;var returnVal=s.fn(s,s.depChanged);if(returnVal!==undefined){s(returnVal)}inStream=undefined;s.depChanged=undefined}function findDeps(order,s){if(!s.queued){s.queued=true;for(var i=0;i<s.listeners.length;++i){findDeps(order,s.listeners[i])}order.push(s)}}function updateDeps(s){var i,order=[];for(i=0;i<s.listeners.length;++i){s.listeners[i].depChanged=s;findDeps(order,s.listeners[i])}for(i=order.length-1;i>=0;--i){if(!isUndefined(order[i].depChanged)){updateStream(order[i])}order[i].queued=false}}function flushUpdate(){for(var s;s=toUpdate.shift();){updateDeps(s)}}function destroy(stream){if(stream.listeners.length!==0){throw new Error("Trying to destroy stream with listeners attached")}stream.deps.forEach(function(dep){removeListener(dep.listeners,stream)})}function isStream(stream){return isFunction(stream)&&"depsMet"in stream}function streamToString(){return"stream("+this.val+")"}function stream(arg,fn,waitForDeps){function s(n){if(arguments.length>0){if(n&&isFunction(n.then)){n.then(s);return}s.val=n;s.hasVal=true;if(inStream!==s){toUpdate.push(s);if(!inStream)flushUpdate()}else{for(var j=0;j<s.listeners.length;++j){s.listeners[j].depChanged=s}}return s}else{return s.val}}s.hasVal=false;s.val=undefined;s.listeners=[];s.deps=[];s.depsMet=isUndefined(waitForDeps)&&arguments.length>1?false:true;s.depChanged=undefined;s.queued=false;s.fn=fn;s.map=map.bind(null,s);s.ap=ap;s.of=of;s.toString=streamToString;if(arguments.length>1){s.deps=arg;arg.forEach(function(dep){dep.listeners.push(s)});updateStream(s);flushUpdate()}else if(arguments.length===1){s(arg)}return s}var transduce=curryN(2,function(xform,source){xform=xform(new StreamTransformer(stream));return stream([source],function(){return xform.step(undefined,source())})});function StreamTransformer(res){}StreamTransformer.prototype.init=function(){};StreamTransformer.prototype.result=function(){};StreamTransformer.prototype.step=function(s,v){return v};var _={placeholder:true};function isPlaceholder(p){return p===_||p&&p.ramda==="placeholder"}function toArray(arg){var arr=[];for(var i=0;i<arg.length;++i){arr[i]=arg[i]}return arr}function ofArity(n,fn){if(arguments.length===1){return ofArity.bind(undefined,n)}switch(n){case 0:return function(){return fn.apply(this,arguments)};case 1:return function(a0){void a0;return fn.apply(this,arguments)};case 2:return function(a0,a1){void a1;return fn.apply(this,arguments)};case 3:return function(a0,a1,a2){void a2;return fn.apply(this,arguments)};case 4:return function(a0,a1,a2,a3){void a3;return fn.apply(this,arguments)};case 5:return function(a0,a1,a2,a3,a4){void a4;return fn.apply(this,arguments)};case 6:return function(a0,a1,a2,a3,a4,a5){void a5;return fn.apply(this,arguments)};case 7:return function(a0,a1,a2,a3,a4,a5,a6){void a6;return fn.apply(this,arguments)};case 8:return function(a0,a1,a2,a3,a4,a5,a6,a7){void a7;return fn.apply(this,arguments)};case 9:return function(a0,a1,a2,a3,a4,a5,a6,a7,a8){void a8;return fn.apply(this,arguments)};case 10:return function(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9){void a9;return fn.apply(this,arguments)};default:throw new Error("First argument to arity must be a non-negative integer no greater than ten")}}function curryN(length,fn){return ofArity(length,function(){var n=arguments.length;var shortfall=length-n;var idx=n;while(--idx>=0){if(isPlaceholder(arguments[idx])){shortfall+=1}}if(shortfall<=0){return fn.apply(this,arguments)}else{var initialArgs=toArray(arguments);return curryN(shortfall,function(){var currentArgs=toArray(arguments);var combinedArgs=[];var idx=-1;while(++idx<n){var val=initialArgs[idx];combinedArgs[idx]=isPlaceholder(val)?currentArgs.shift():val}return fn.apply(this,combinedArgs.concat(currentArgs))})}})}return{stream:stream,isStream:isStream,transduce:transduce,merge:merge,reduce:scan,scan:scan,destroy:destroy,map:curryN(2,function(f,s){return map(s,f)}),curryN:curryN,_:_}})},{}],"flyd-scanmerge":[function(require,module,exports){var flyd=require("flyd");module.exports=flyd.curryN(2,function(pairs,acc){var streams=pairs.map(function(p){return p[0]});var fns=pairs.map(function(p){return p[1]});return flyd.stream(streams,function(self,changed){if(changed!==undefined){var idx=streams.indexOf(changed);acc=fns[idx](acc,changed())}return acc},true)})},{flyd:1}]},{},[]);var flyd=require("flyd");var scanMerge=require("flyd-scanmerge");var stream=flyd.stream(0);var createTodo=flyd.stream();var deleteTodo=flyd.stream();var todos=scanMerge([[createTodo,function(todos,todo){return todos.concat(todo)}],[deleteTodo,function(todos,id){return todos.filter(function(todo){return todo.id!==id})}]],[]);flyd.stream([todos],function(){console.log(todos())});createTodo({id:1,test:"baba"});createTodo({id:2,test:"hehe"});deleteTodo(1); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"name": "requirebin-sketch", | |
"version": "1.0.0", | |
"dependencies": { | |
"flyd": "0.1.1", | |
"flyd-scanmerge": "0.0.1" | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment