made with requirebin
Last active
March 18, 2016 09:54
-
-
Save slaskis/6e046c3a9fa7fa08db27 to your computer and use it in GitHub Desktop.
requirebin sketch
This file contains hidden or 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
var Store = require('socrates') | |
// create a store | |
var store = Store({ | |
boot: function(state, action) { | |
console.log('boot', state, action) | |
return action | |
}, | |
// basically what the History middleware does | |
'@@redux-routes/navigate': function(state, action) { return action}, | |
articles: { | |
add: function(state, action) { | |
return action | |
} | |
} | |
}) | |
// subscribe to updates | |
store.subscribe(function(state) { | |
console.log('update', state) | |
}) | |
// dispatch an action | |
store('boot', { greetings: 'hello' }) | |
store(function(state, fn) { | |
setTimeout(function() { | |
fn(null, {type: 'add articles', payload: [{title: 'hello'}]}) | |
}, 200) | |
}) | |
This file contains hidden or 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
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){(function(process){"use strict";module.exports=freeze;var production=process&&process.env&&process.env.NODE_ENV==="production";function isFreezable(object){if(object===null)return false;return Array.isArray(object)||typeof object==="object"}function needsFreezing(object){return isFreezable(object)&&!Object.isFrozen(object)}function recur(object){Object.freeze(object);Object.keys(object).forEach(function(key){var value=object[key];if(needsFreezing(value)){recur(value)}});return object}function freeze(object){if(production)return object;if(needsFreezing(object)){recur(object)}return object}}).call(this,require("_process"))},{_process:46}],2:[function(require,module,exports){var is_error=require("lodash.iserror");var isobj=require("isobj");var keys=Object.keys;var whitelist={type:1,meta:1,error:1,payload:1};module.exports=is_fsa;function is_fsa(value){if(!isobj(value)||!value.type)return false;var props=keys(value);for(var i=0,prop;prop=props[i];i++){if(!whitelist[prop])return false}if(value.error===true&&!is_error(value.payload)){return false}return true}},{isobj:22,"lodash.iserror":23}],3:[function(require,module,exports){var update=require("./update");var tree=require("./tree");var isobj=require("isobj");module.exports=reducer;function reducer(fn){fn=isobj(fn)?tree(fn):fn;return function reduce(state,action){var updates=fn(state,action);return update(state,updates)}}},{"./tree":5,"./update":6,isobj:22}],4:[function(require,module,exports){"use strict";var is_fsa=require("./is-fsa");var freeze=require("./freeze");var sliced=require("sliced");var redux=require("redux");var isArray=Array.isArray;var vo=require("vo");module.exports=resolve;function resolve(store){return function(next){return function(action){var actions=sliced(arguments).map(function(action){return isArray(action)?action.map(function(a){return vo(a,next)}):vo(action,fsa_check,next)});return vo.stack.apply(actions)(freeze(store.getState())).then(function(){return store.getState()})}}}function fsa_check(mixed){if(is_fsa(mixed))return mixed;throw new Error("resolved action ("+stringify(mixed)+") is not the correct format. Please refer to the spec: https://github.com/acdlite/flux-standard-action#actions")}function stringify(mixed){try{return JSON.stringify(mixed)}catch(e){return mixed}}},{"./freeze":1,"./is-fsa":2,redux:30,sliced:35,vo:36}],5:[function(require,module,exports){var combine_reducer=require("@f/combine-reducers");var compose_reducer=require("@f/compose-reducers");var handle_action=require("@f/handle-actions");var xor=require("component-xor");var keys=Object.keys;module.exports=Tree;function Tree(tree){return walk(tree)}function walk(tree,trail){trail=trail||[];var funcs={};var map={};var path;for(var k in tree){if(typeof tree[k]==="function"){path=trail.length?k+" "+trail.join("."):k;funcs[path]=tree[k]}else{map[k]=walk(tree[k],trail.concat(k))}}var fl=keys(funcs).length;var ml=keys(map).length;if(xor(fl,ml)){return fl?handle_action(funcs):combine_reducer(map)}return compose_reducer(handle_action(funcs),combine_reducer(map))}},{"@f/combine-reducers":7,"@f/compose-reducers":17,"@f/handle-actions":19,"component-xor":21}],6:[function(require,module,exports){"use strict";var is_plain_object=require("isobj");var assign=require("object-assign");var freeze=require("./freeze");var sliced=require("sliced");var is_array=Array.isArray;var keys=Object.keys;module.exports=update;function update(original,update){update=sliced(arguments,2).reduce(function(o,n){return resolve(o,n,true)},update);return freeze(resolve(original,update))}function resolve(original,updates,keep_null){return is_plain_object(original)&&is_plain_object(updates)?object(original,updates,keep_null):is_array(original)&&is_array(updates)?array(original,updates):updates===undefined?original:updates}function object(original,updates,keep_null){return keys(updates).reduce(function(obj,key,i){if(!keep_null&&updates[key]===null){delete obj[key]}else{obj[key]=resolve(original[key],updates[key])}return obj},assign({},original))}function array(original,updates){return[].concat(updates)}},{"./freeze":1,isobj:22,"object-assign":24,sliced:35}],7:[function(require,module,exports){var clone=require("@f/clone-shallow");var composeReducers=require("@f/compose-reducers");module.exports=combineReducers["default"]=combineReducers;function combineReducers(reducers,defaultState){defaultState=defaultState||{};return composeReducers.apply(null,Object.keys(reducers).map(function(key){return scopeReducer(reducers[key],key,defaultState)}))}function scopeReducer(reducer,prop,defaultState){return function(state,action){if(state===undefined)state=defaultState;var childState=reducer(state[prop],action);if(childState!==state[prop]){state=clone(state);state[prop]=childState}return state}}},{"@f/clone-shallow":8,"@f/compose-reducers":17}],8:[function(require,module,exports){var cloneObj=require("@f/clone-obj");var cloneArray=require("@f/slice");var isArray=require("@f/is-array");module.exports=cloneShallow;function cloneShallow(a){return isArray()?cloneArray(a):cloneObj(a)}},{"@f/clone-obj":9,"@f/is-array":15,"@f/slice":16}],9:[function(require,module,exports){var forEach=require("@f/foreach");module.exports=cloneObj["default"]=cloneObj;function cloneObj(obj){var newObj={};forEach(function(val,key){newObj[key]=val},obj);return newObj}},{"@f/foreach":10}],10:[function(require,module,exports){var isObject=require("@f/is-object");var isArray=require("@f/is-array");var forEachObj=require("@f/foreach-obj");var forEachArr=require("@f/foreach-array");module.exports=forEach["default"]=forEach;function forEach(fn,a){if(isArray(a))return forEachArr.call(this,fn,a);if(isObject(a))return forEachObj.call(this,fn,a)}},{"@f/foreach-array":11,"@f/foreach-obj":12,"@f/is-array":15,"@f/is-object":13}],11:[function(require,module,exports){module.exports=forEach["default"]=forEach;function forEach(fn,arr){if(!arr)return;for(var i=0,len=arr.length;i<len;++i){fn.call(this,arr[i],i)}}},{}],12:[function(require,module,exports){module.exports=forEach["default"]=forEach;function forEach(fn,obj){if(!obj)return;var keys=Object.keys(obj);for(var i=0,len=keys.length;i<len;++i){var key=keys[i];fn.call(this,obj[key],key)}}},{}],13:[function(require,module,exports){var isFunction=require("@f/is-function");module.exports=isObject;var objString=toString(Object);function isObject(val){return!!val&&(val.constructor===Object||isObjectString(val.constructor))}function isObjectString(val){return!!val&&isFunction(val)&&toString(val)===objString}function toString(val){return Function.prototype.toString.call(val)}},{"@f/is-function":14}],14:[function(require,module,exports){module.exports=isFunction["default"]=isFunction;function isFunction(value){return typeof value==="function"}},{}],15:[function(require,module,exports){module.exports=isArray["default"]=isArray;function isArray(val){return Array.isArray(val)}},{}],16:[function(require,module,exports){module.exports=slice;function slice(array,begin,end){begin=begin||0;end=end||array.length;var arr=new Array(array.length);for(var i=begin;i<end;++i){arr[i-begin]=array[i]}return arr}},{}],17:[function(require,module,exports){var toArray=require("@f/to-array");module.exports=composeReducers["default"]=composeReducers;function composeReducers(){var args=toArray(arguments);var len=args.length;return function(state,action){for(var i=0;i<len;++i){state=args[i](state,action)}return state}}},{"@f/to-array":18}],18:[function(require,module,exports){module.exports=toArray["default"]=toArray;function toArray(arr){var len=arr.length;var idx=-1;var array=new Array(len);while(++idx<len){array[idx]=arr[idx]}return array}},{}],19:[function(require,module,exports){var composeReducers=require("@f/compose-reducers");var isUndefined=require("@f/is-undefined");module.exports=handleActions["default"]=handleActions;function handleActions(map,defaultState){return composeReducers.apply(null,Object.keys(map).map(function(type){return scopeReducer(type,map[type],defaultState)}))}function scopeReducer(type,reducer,defaultState){return function(state,action){return action.type===type?reducer(state,action.payload):isUndefined(state)?defaultState:state}}},{"@f/compose-reducers":17,"@f/is-undefined":20}],20:[function(require,module,exports){module.exports=isUndefined["default"]=isUndefined;function isUndefined(value){return typeof value==="undefined"}},{}],21:[function(require,module,exports){module.exports=xor;function xor(a,b){return a^b}},{}],22:[function(require,module,exports){"use strict";module.exports=function(obj){return Object.prototype.toString.call(obj)==="[object Object]"}},{}],23:[function(require,module,exports){var errorTag="[object Error]";var objectProto=Object.prototype;var objectToString=objectProto.toString;function isError(value){if(!isObjectLike(value)){return false}return objectToString.call(value)==errorTag||typeof value.message=="string"&&typeof value.name=="string"}function isObjectLike(value){return!!value&&typeof value=="object"}module.exports=isError},{}],24:[function(require,module,exports){"use strict";var hasOwnProperty=Object.prototype.hasOwnProperty;var propIsEnumerable=Object.prototype.propertyIsEnumerable;function toObject(val){if(val===null||val===undefined){throw new TypeError("Object.assign cannot be called with null or undefined")}return Object(val)}module.exports=Object.assign||function(target,source){var from;var to=toObject(target);var symbols;for(var s=1;s<arguments.length;s++){from=Object(arguments[s]);for(var key in from){if(hasOwnProperty.call(from,key)){to[key]=from[key]}}if(Object.getOwnPropertySymbols){symbols=Object.getOwnPropertySymbols(from);for(var i=0;i<symbols.length;i++){if(propIsEnumerable.call(from,symbols[i])){to[symbols[i]]=from[symbols[i]]}}}}return to}},{}],25:[function(require,module,exports){"use strict";var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};exports.__esModule=true;exports["default"]=applyMiddleware;var _compose=require("./compose");var _compose2=_interopRequireDefault(_compose);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function applyMiddleware(){for(var _len=arguments.length,middlewares=Array(_len),_key=0;_key<_len;_key++){middlewares[_key]=arguments[_key]}return function(createStore){return function(reducer,initialState,enhancer){var store=createStore(reducer,initialState,enhancer);var _dispatch=store.dispatch;var chain=[];var middlewareAPI={getState:store.getState,dispatch:function dispatch(action){return _dispatch(action)}};chain=middlewares.map(function(middleware){return middleware(middlewareAPI)});_dispatch=_compose2["default"].apply(undefined,chain)(store.dispatch);return _extends({},store,{dispatch:_dispatch})}}}},{"./compose":28}],26:[function(require,module,exports){"use strict";exports.__esModule=true;exports["default"]=bindActionCreators;function bindActionCreator(actionCreator,dispatch){return function(){return dispatch(actionCreator.apply(undefined,arguments))}}function bindActionCreators(actionCreators,dispatch){if(typeof actionCreators==="function"){return bindActionCreator(actionCreators,dispatch)}if(typeof actionCreators!=="object"||actionCreators===null){throw new Error("bindActionCreators expected an object or a function, instead received "+(actionCreators===null?"null":typeof actionCreators)+". "+'Did you write "import ActionCreators from" instead of "import * as ActionCreators from"?')}var keys=Object.keys(actionCreators);var boundActionCreators={};for(var i=0;i<keys.length;i++){var key=keys[i];var actionCreator=actionCreators[key];if(typeof actionCreator==="function"){boundActionCreators[key]=bindActionCreator(actionCreator,dispatch)}}return boundActionCreators}},{}],27:[function(require,module,exports){(function(process){"use strict";exports.__esModule=true;exports["default"]=combineReducers;var _createStore=require("./createStore");var _isPlainObject=require("lodash/isPlainObject");var _isPlainObject2=_interopRequireDefault(_isPlainObject);var _warning=require("./utils/warning");var _warning2=_interopRequireDefault(_warning);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function getUndefinedStateErrorMessage(key,action){var actionType=action&&action.type;var actionName=actionType&&'"'+actionType.toString()+'"'||"an action";return'Reducer "'+key+'" returned undefined handling '+actionName+". "+"To ignore an action, you must explicitly return the previous state."}function getUnexpectedStateShapeWarningMessage(inputState,reducers,action){var reducerKeys=Object.keys(reducers);var argumentName=action&&action.type===_createStore.ActionTypes.INIT?"initialState argument passed to createStore":"previous state received by the reducer";if(reducerKeys.length===0){return"Store does not have a valid reducer. Make sure the argument passed "+"to combineReducers is an object whose values are reducers."}if(!(0,_isPlainObject2["default"])(inputState)){return"The "+argumentName+' has unexpected type of "'+{}.toString.call(inputState).match(/\s([a-z|A-Z]+)/)[1]+'". Expected argument to be an object with the following '+('keys: "'+reducerKeys.join('", "')+'"')}var unexpectedKeys=Object.keys(inputState).filter(function(key){return!reducers.hasOwnProperty(key)});if(unexpectedKeys.length>0){return"Unexpected "+(unexpectedKeys.length>1?"keys":"key")+" "+('"'+unexpectedKeys.join('", "')+'" found in '+argumentName+". ")+"Expected to find one of the known reducer keys instead: "+('"'+reducerKeys.join('", "')+'". Unexpected keys will be ignored.')}}function assertReducerSanity(reducers){Object.keys(reducers).forEach(function(key){var reducer=reducers[key];var initialState=reducer(undefined,{type:_createStore.ActionTypes.INIT});if(typeof initialState==="undefined"){throw new Error('Reducer "'+key+'" returned undefined during initialization. '+"If the state passed to the reducer is undefined, you must "+"explicitly return the initial state. The initial state may "+"not be undefined.")}var type="@@redux/PROBE_UNKNOWN_ACTION_"+Math.random().toString(36).substring(7).split("").join(".");if(typeof reducer(undefined,{type:type})==="undefined"){throw new Error('Reducer "'+key+'" returned undefined when probed with a random type. '+("Don't try to handle "+_createStore.ActionTypes.INIT+' or other actions in "redux/*" ')+"namespace. They are considered private. Instead, you must return the "+"current state for any unknown actions, unless it is undefined, "+"in which case you must return the initial state, regardless of the "+"action type. The initial state may not be undefined.")}})}function combineReducers(reducers){var reducerKeys=Object.keys(reducers);var finalReducers={};for(var i=0;i<reducerKeys.length;i++){var key=reducerKeys[i];if(typeof reducers[key]==="function"){finalReducers[key]=reducers[key]}}var finalReducerKeys=Object.keys(finalReducers);var sanityError;try{assertReducerSanity(finalReducers)}catch(e){sanityError=e}return function combination(){var state=arguments.length<=0||arguments[0]===undefined?{}:arguments[0];var action=arguments[1];if(sanityError){throw sanityError}if(process.env.NODE_ENV!=="production"){var warningMessage=getUnexpectedStateShapeWarningMessage(state,finalReducers,action);if(warningMessage){(0,_warning2["default"])(warningMessage)}}var hasChanged=false;var nextState={};for(var i=0;i<finalReducerKeys.length;i++){var key=finalReducerKeys[i];var reducer=finalReducers[key];var previousStateForKey=state[key];var nextStateForKey=reducer(previousStateForKey,action);if(typeof nextStateForKey==="undefined"){var errorMessage=getUndefinedStateErrorMessage(key,action);throw new Error(errorMessage)}nextState[key]=nextStateForKey;hasChanged=hasChanged||nextStateForKey!==previousStateForKey}return hasChanged?nextState:state}}}).call(this,require("_process"))},{"./createStore":29,"./utils/warning":31,_process:46,"lodash/isPlainObject":34}],28:[function(require,module,exports){"use strict";exports.__esModule=true;exports["default"]=compose;function compose(){for(var _len=arguments.length,funcs=Array(_len),_key=0;_key<_len;_key++){funcs[_key]=arguments[_key]}return function(){if(funcs.length===0){return arguments.length<=0?undefined:arguments[0]}var last=funcs[funcs.length-1];var rest=funcs.slice(0,-1);return rest.reduceRight(function(composed,f){return f(composed)},last.apply(undefined,arguments))}}},{}],29:[function(require,module,exports){"use strict";exports.__esModule=true;exports.ActionTypes=undefined;exports["default"]=createStore;var _isPlainObject=require("lodash/isPlainObject");var _isPlainObject2=_interopRequireDefault(_isPlainObject);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}var ActionTypes=exports.ActionTypes={INIT:"@@redux/INIT"};function createStore(reducer,initialState,enhancer){if(typeof initialState==="function"&&typeof enhancer==="undefined"){enhancer=initialState;initialState=undefined}if(typeof enhancer!=="undefined"){if(typeof enhancer!=="function"){throw new Error("Expected the enhancer to be a function.")}return enhancer(createStore)(reducer,initialState)}if(typeof reducer!=="function"){throw new Error("Expected the reducer to be a function.")}var currentReducer=reducer;var currentState=initialState;var currentListeners=[];var nextListeners=currentListeners;var isDispatching=false;function ensureCanMutateNextListeners(){if(nextListeners===currentListeners){nextListeners=currentListeners.slice()}}function getState(){return currentState}function subscribe(listener){if(typeof listener!=="function"){throw new Error("Expected listener to be a function.")}var isSubscribed=true;ensureCanMutateNextListeners();nextListeners.push(listener);return function unsubscribe(){if(!isSubscribed){return}isSubscribed=false;ensureCanMutateNextListeners();var index=nextListeners.indexOf(listener);nextListeners.splice(index,1)}}function dispatch(action){if(!(0,_isPlainObject2["default"])(action)){throw new Error("Actions must be plain objects. "+"Use custom middleware for async actions.")}if(typeof action.type==="undefined"){throw new Error('Actions may not have an undefined "type" property. '+"Have you misspelled a constant?")}if(isDispatching){throw new Error("Reducers may not dispatch actions.")}try{isDispatching=true;currentState=currentReducer(currentState,action)}finally{isDispatching=false}var listeners=currentListeners=nextListeners;for(var i=0;i<listeners.length;i++){listeners[i]()}return action}function replaceReducer(nextReducer){if(typeof nextReducer!=="function"){throw new Error("Expected the nextReducer to be a function.")}currentReducer=nextReducer;dispatch({type:ActionTypes.INIT})}dispatch({type:ActionTypes.INIT});return{dispatch:dispatch,subscribe:subscribe,getState:getState,replaceReducer:replaceReducer}}},{"lodash/isPlainObject":34}],30:[function(require,module,exports){(function(process){"use strict";exports.__esModule=true;exports.compose=exports.applyMiddleware=exports.bindActionCreators=exports.combineReducers=exports.createStore=undefined;var _createStore=require("./createStore");var _createStore2=_interopRequireDefault(_createStore);var _combineReducers=require("./combineReducers");var _combineReducers2=_interopRequireDefault(_combineReducers);var _bindActionCreators=require("./bindActionCreators");var _bindActionCreators2=_interopRequireDefault(_bindActionCreators);var _applyMiddleware=require("./applyMiddleware");var _applyMiddleware2=_interopRequireDefault(_applyMiddleware);var _compose=require("./compose");var _compose2=_interopRequireDefault(_compose);var _warning=require("./utils/warning");var _warning2=_interopRequireDefault(_warning);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function isCrushed(){}if(process.env.NODE_ENV!=="production"&&typeof isCrushed.name==="string"&&isCrushed.name!=="isCrushed"){(0,_warning2["default"])("You are currently using minified code outside of NODE_ENV === 'production'. "+"This means that you are running a slower development build of Redux. "+"You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify "+"or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) "+"to ensure you have the correct code for your production build.")}exports.createStore=_createStore2["default"];exports.combineReducers=_combineReducers2["default"];exports.bindActionCreators=_bindActionCreators2["default"];exports.applyMiddleware=_applyMiddleware2["default"];exports.compose=_compose2["default"]}).call(this,require("_process"))},{"./applyMiddleware":25,"./bindActionCreators":26,"./combineReducers":27,"./compose":28,"./createStore":29,"./utils/warning":31,_process:46}],31:[function(require,module,exports){"use strict";exports.__esModule=true;exports["default"]=warning;function warning(message){if(typeof console!=="undefined"&&typeof console.error==="function"){console.error(message)}try{throw new Error(message)}catch(e){}}},{}],32:[function(require,module,exports){function isHostObject(value){var result=false;if(value!=null&&typeof value.toString!="function"){try{result=!!(value+"")}catch(e){}}return result}module.exports=isHostObject},{}],33:[function(require,module,exports){function isObjectLike(value){return!!value&&typeof value=="object"}module.exports=isObjectLike},{}],34:[function(require,module,exports){var isHostObject=require("./_isHostObject"),isObjectLike=require("./isObjectLike");var objectTag="[object Object]";var objectProto=Object.prototype;var funcToString=Function.prototype.toString;var objectCtorString=funcToString.call(Object);var objectToString=objectProto.toString;var getPrototypeOf=Object.getPrototypeOf;function isPlainObject(value){if(!isObjectLike(value)||objectToString.call(value)!=objectTag||isHostObject(value)){return false}var proto=getPrototypeOf(value);if(proto===null){return true}var Ctor=proto.constructor;return typeof Ctor=="function"&&Ctor instanceof Ctor&&funcToString.call(Ctor)==objectCtorString}module.exports=isPlainObject},{"./_isHostObject":32,"./isObjectLike":33}],35:[function(require,module,exports){module.exports=function(args,slice,sliceEnd){var ret=[];var len=args.length;if(0===len)return ret;var start=slice<0?Math.max(0,slice+len):slice||0;if(sliceEnd!==undefined){len=sliceEnd<0?sliceEnd+len:sliceEnd}while(len-- >start){ret[len-start]=args[len]}return ret}},{}],36:[function(require,module,exports){(function(global){"use strict";var Promise=global.Promise||require("es6-promise").Promise;var Pipeline=require("./lib/pipeline");var Stack=require("./lib/stack");var sliced=require("sliced");var isArray=Array.isArray;var noop=function(){};var keys=Object.keys;module.exports=Vo;function Vo(){var pipeline=isArray(this)?sliced(this):sliced(arguments);return run(function(context,args,done){Pipeline(pipeline,context,args,function(err,args){if(err)return done.call(context,err);return done.apply(context,[null].concat(args))})})}Vo.stack=function stack(){var stack=isArray(this)?sliced(this):sliced(arguments);return run(function(context,args,done){Stack(stack,context,args,function(err,v){if(err)return done(err);return done.apply(this,[null].concat(v))})})};function run(fn){function vo(){var args=sliced(arguments);var last=args[args.length-1];var context=this;if(typeof last==="function"){var done=args.pop();fn(context,args,done)}else{return new Promise(function(success,failure){fn(context,args,function(err,ret){if(arguments.length>2)ret=sliced(arguments,1);return err?failure(err):success(ret)})})}}vo.vo=true;return vo}Vo.catch=function(fn){function catcher(){return fn}catcher.catch=true;return catcher}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./lib/pipeline":38,"./lib/stack":39,"es6-promise":42,sliced:35}],37:[function(require,module,exports){var compact=require("lodash.compact");var error=require("combine-errors");var wrapped=require("wrapped");var type=require("./type");var keys=Object.keys;module.exports=compile;function compile(mixed){switch(type(mixed)){case"function":return Func(mixed);case"object":return object(mixed);case"catch":return Catcher(mixed);case"array":return array(mixed);case"vo":return Vo(mixed);default:return Identity(mixed)}}function Func(fn){return function func(args,done){wrapped(fn).apply(this,args.concat(next));function next(err){if(err)return done(error(err));return done.apply(null,arguments)}}}function object(o){o=keys(o).reduce(function(o,k){o[k]=compile(o[k]);return o},o);return function obj(args,done){var pending=keys(o).length;var context=this;var errors=[];var out={};if(!pending)return done(null,out);keys(o).map(function(k,i){o[k].call(context,args,function(err,args){if(err){errors[i]=err;out[k]=err}else{out[k]=args}if(!--pending){errors=compact(errors);return errors.length?done(error(errors),out):done(null,out)}})})}}function array(a){a=a.map(compile);return function arr(args,done){var pending=a.length;var context=this;var errors=[];var out=[];if(!pending)return done(null,out);a.map(function(fn,i){fn.call(context,args,function(err,args){if(err){errors[i]=err;out[i]=err}else{out[i]=args}if(!--pending){errors=compact(errors);return errors.length?done(error(errors),out):done(null,out)}})})}}function Vo(v){return function vo(args,done){return v.apply(this,args.concat(function(err,v){if(err)return done(error(err));return done.apply(null,arguments)}))}}function Catcher(fn){return function catcher(err,args,done){return wrapped(fn()).apply(this,[err].concat(args).concat(done))}}function Identity(value){return function identity(args,done){return done(null,value)}}},{"./type":40,"combine-errors":41,"lodash.compact":43,wrapped:44}],38:[function(require,module,exports){var compile=require("./compile");var sliced=require("sliced");module.exports=Pipeline;function Pipeline(pipeline,context,args,done){pipeline=pipeline.map(compile);function next(err){if(err)return error(err,sliced(arguments,1));var fn=pipeline.shift();while(fn&&fn.length!==2)fn=pipeline.shift();if(!fn)return done.call(context,null,sliced(arguments,1));fn.call(context,sliced(arguments,1),next)}function error(err,args){var fn=pipeline.shift();while(fn&&fn.length!==3)fn=pipeline.shift();if(fn)return fn.call(context,err,args,next);else return done.call(context,err)}next.apply(null,[null].concat(args))}},{"./compile":37,sliced:35}],39:[function(require,module,exports){var compile=require("./compile");module.exports=Stack;function Stack(stack,context,args,done){stack=stack.map(compile);function next(err){if(err)return error(err);var fn=stack.shift();while(fn&&fn.length!==2)fn=stack.shift();if(!fn)return done.call(context,null,args);fn.call(context,args,next)}function error(err){var fn=stack.shift();while(fn&&fn.length!==3)fn=stack.shift();if(fn)return fn.call(context,err,args,next);else return done.call(context,err)}next()}},{"./compile":37}],40:[function(require,module,exports){var isArray=Array.isArray;module.exports=type;function type(v){return isArray(v)?"array":v&&v.vo?"vo":v&&v.catch?"catch":v===null?"null":typeof v}},{}],41:[function(require,module,exports){var rerror=/^Error:/;module.exports=error;function error(errors){if(!(this instanceof error))return new error(errors);errors=Array.isArray(errors)?errors:[errors];for(var i=0;i<errors.length;i++)this[i]=errors[i];this.length=errors.length;this.errors=errors}error.prototype=Object.create(Error.prototype);error.prototype.__defineGetter__("stack",function(){return this.errors.map(function(err){return err.stack}).join("\n\n")});error.prototype.__defineGetter__("message",function(){return this.errors.map(message).join(",")});error.prototype.toString=function(){return this.errors.map(message).join(",")};error.prototype.splice=Array.prototype.splice;error.prototype.length=0;function message(err){if(!err.message)return err.message;return err.message.replace(rerror,"")}},{}],42:[function(require,module,exports){(function(process,global){(function(){"use strict";function lib$es6$promise$utils$$objectOrFunction(x){return typeof x==="function"||typeof x==="object"&&x!==null}function lib$es6$promise$utils$$isFunction(x){return typeof x==="function"}function lib$es6$promise$utils$$isMaybeThenable(x){return typeof x==="object"&&x!==null}var lib$es6$promise$utils$$_isArray;if(!Array.isArray){lib$es6$promise$utils$$_isArray=function(x){return Object.prototype.toString.call(x)==="[object Array]"}}else{lib$es6$promise$utils$$_isArray=Array.isArray}var lib$es6$promise$utils$$isArray=lib$es6$promise$utils$$_isArray;var lib$es6$promise$asap$$len=0;var lib$es6$promise$asap$$vertxNext;var lib$es6$promise$asap$$customSchedulerFn;var lib$es6$promise$asap$$asap=function asap(callback,arg){lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len]=callback;lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len+1]=arg;lib$es6$promise$asap$$len+=2;if(lib$es6$promise$asap$$len===2){if(lib$es6$promise$asap$$customSchedulerFn){lib$es6$promise$asap$$customSchedulerFn(lib$es6$promise$asap$$flush)}else{lib$es6$promise$asap$$scheduleFlush()}}};function lib$es6$promise$asap$$setScheduler(scheduleFn){lib$es6$promise$asap$$customSchedulerFn=scheduleFn}function lib$es6$promise$asap$$setAsap(asapFn){lib$es6$promise$asap$$asap=asapFn}var lib$es6$promise$asap$$browserWindow=typeof window!=="undefined"?window:undefined;var lib$es6$promise$asap$$browserGlobal=lib$es6$promise$asap$$browserWindow||{};var lib$es6$promise$asap$$BrowserMutationObserver=lib$es6$promise$asap$$browserGlobal.MutationObserver||lib$es6$promise$asap$$browserGlobal.WebKitMutationObserver;var lib$es6$promise$asap$$isNode=typeof process!=="undefined"&&{}.toString.call(process)==="[object process]";var lib$es6$promise$asap$$isWorker=typeof Uint8ClampedArray!=="undefined"&&typeof importScripts!=="undefined"&&typeof MessageChannel!=="undefined";function lib$es6$promise$asap$$useNextTick(){return function(){process.nextTick(lib$es6$promise$asap$$flush)}}function lib$es6$promise$asap$$useVertxTimer(){return function(){lib$es6$promise$asap$$vertxNext(lib$es6$promise$asap$$flush)}}function lib$es6$promise$asap$$useMutationObserver(){var iterations=0;var observer=new lib$es6$promise$asap$$BrowserMutationObserver(lib$es6$promise$asap$$flush);var node=document.createTextNode("");observer.observe(node,{characterData:true});return function(){node.data=iterations=++iterations%2}}function lib$es6$promise$asap$$useMessageChannel(){var channel=new MessageChannel;channel.port1.onmessage=lib$es6$promise$asap$$flush;return function(){channel.port2.postMessage(0)}}function lib$es6$promise$asap$$useSetTimeout(){return function(){setTimeout(lib$es6$promise$asap$$flush,1)}}var lib$es6$promise$asap$$queue=new Array(1e3);function lib$es6$promise$asap$$flush(){for(var i=0;i<lib$es6$promise$asap$$len;i+=2){var callback=lib$es6$promise$asap$$queue[i];var arg=lib$es6$promise$asap$$queue[i+1];callback(arg);lib$es6$promise$asap$$queue[i]=undefined;lib$es6$promise$asap$$queue[i+1]=undefined}lib$es6$promise$asap$$len=0}function lib$es6$promise$asap$$attemptVertx(){try{var r=require;var vertx=r("vertx");lib$es6$promise$asap$$vertxNext=vertx.runOnLoop||vertx.runOnContext;return lib$es6$promise$asap$$useVertxTimer()}catch(e){return lib$es6$promise$asap$$useSetTimeout()}}var lib$es6$promise$asap$$scheduleFlush;if(lib$es6$promise$asap$$isNode){lib$es6$promise$asap$$scheduleFlush=lib$es6$promise$asap$$useNextTick(); | |
}else if(lib$es6$promise$asap$$BrowserMutationObserver){lib$es6$promise$asap$$scheduleFlush=lib$es6$promise$asap$$useMutationObserver()}else if(lib$es6$promise$asap$$isWorker){lib$es6$promise$asap$$scheduleFlush=lib$es6$promise$asap$$useMessageChannel()}else if(lib$es6$promise$asap$$browserWindow===undefined&&typeof require==="function"){lib$es6$promise$asap$$scheduleFlush=lib$es6$promise$asap$$attemptVertx()}else{lib$es6$promise$asap$$scheduleFlush=lib$es6$promise$asap$$useSetTimeout()}function lib$es6$promise$then$$then(onFulfillment,onRejection){var parent=this;var state=parent._state;if(state===lib$es6$promise$$internal$$FULFILLED&&!onFulfillment||state===lib$es6$promise$$internal$$REJECTED&&!onRejection){return this}var child=new this.constructor(lib$es6$promise$$internal$$noop);var result=parent._result;if(state){var callback=arguments[state-1];lib$es6$promise$asap$$asap(function(){lib$es6$promise$$internal$$invokeCallback(state,child,callback,result)})}else{lib$es6$promise$$internal$$subscribe(parent,child,onFulfillment,onRejection)}return child}var lib$es6$promise$then$$default=lib$es6$promise$then$$then;function lib$es6$promise$promise$resolve$$resolve(object){var Constructor=this;if(object&&typeof object==="object"&&object.constructor===Constructor){return object}var promise=new Constructor(lib$es6$promise$$internal$$noop);lib$es6$promise$$internal$$resolve(promise,object);return promise}var lib$es6$promise$promise$resolve$$default=lib$es6$promise$promise$resolve$$resolve;function lib$es6$promise$$internal$$noop(){}var lib$es6$promise$$internal$$PENDING=void 0;var lib$es6$promise$$internal$$FULFILLED=1;var lib$es6$promise$$internal$$REJECTED=2;var lib$es6$promise$$internal$$GET_THEN_ERROR=new lib$es6$promise$$internal$$ErrorObject;function lib$es6$promise$$internal$$selfFulfillment(){return new TypeError("You cannot resolve a promise with itself")}function lib$es6$promise$$internal$$cannotReturnOwn(){return new TypeError("A promises callback cannot return that same promise.")}function lib$es6$promise$$internal$$getThen(promise){try{return promise.then}catch(error){lib$es6$promise$$internal$$GET_THEN_ERROR.error=error;return lib$es6$promise$$internal$$GET_THEN_ERROR}}function lib$es6$promise$$internal$$tryThen(then,value,fulfillmentHandler,rejectionHandler){try{then.call(value,fulfillmentHandler,rejectionHandler)}catch(e){return e}}function lib$es6$promise$$internal$$handleForeignThenable(promise,thenable,then){lib$es6$promise$asap$$asap(function(promise){var sealed=false;var error=lib$es6$promise$$internal$$tryThen(then,thenable,function(value){if(sealed){return}sealed=true;if(thenable!==value){lib$es6$promise$$internal$$resolve(promise,value)}else{lib$es6$promise$$internal$$fulfill(promise,value)}},function(reason){if(sealed){return}sealed=true;lib$es6$promise$$internal$$reject(promise,reason)},"Settle: "+(promise._label||" unknown promise"));if(!sealed&&error){sealed=true;lib$es6$promise$$internal$$reject(promise,error)}},promise)}function lib$es6$promise$$internal$$handleOwnThenable(promise,thenable){if(thenable._state===lib$es6$promise$$internal$$FULFILLED){lib$es6$promise$$internal$$fulfill(promise,thenable._result)}else if(thenable._state===lib$es6$promise$$internal$$REJECTED){lib$es6$promise$$internal$$reject(promise,thenable._result)}else{lib$es6$promise$$internal$$subscribe(thenable,undefined,function(value){lib$es6$promise$$internal$$resolve(promise,value)},function(reason){lib$es6$promise$$internal$$reject(promise,reason)})}}function lib$es6$promise$$internal$$handleMaybeThenable(promise,maybeThenable,then){if(maybeThenable.constructor===promise.constructor&&then===lib$es6$promise$then$$default&&constructor.resolve===lib$es6$promise$promise$resolve$$default){lib$es6$promise$$internal$$handleOwnThenable(promise,maybeThenable)}else{if(then===lib$es6$promise$$internal$$GET_THEN_ERROR){lib$es6$promise$$internal$$reject(promise,lib$es6$promise$$internal$$GET_THEN_ERROR.error)}else if(then===undefined){lib$es6$promise$$internal$$fulfill(promise,maybeThenable)}else if(lib$es6$promise$utils$$isFunction(then)){lib$es6$promise$$internal$$handleForeignThenable(promise,maybeThenable,then)}else{lib$es6$promise$$internal$$fulfill(promise,maybeThenable)}}}function lib$es6$promise$$internal$$resolve(promise,value){if(promise===value){lib$es6$promise$$internal$$reject(promise,lib$es6$promise$$internal$$selfFulfillment())}else if(lib$es6$promise$utils$$objectOrFunction(value)){lib$es6$promise$$internal$$handleMaybeThenable(promise,value,lib$es6$promise$$internal$$getThen(value))}else{lib$es6$promise$$internal$$fulfill(promise,value)}}function lib$es6$promise$$internal$$publishRejection(promise){if(promise._onerror){promise._onerror(promise._result)}lib$es6$promise$$internal$$publish(promise)}function lib$es6$promise$$internal$$fulfill(promise,value){if(promise._state!==lib$es6$promise$$internal$$PENDING){return}promise._result=value;promise._state=lib$es6$promise$$internal$$FULFILLED;if(promise._subscribers.length!==0){lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish,promise)}}function lib$es6$promise$$internal$$reject(promise,reason){if(promise._state!==lib$es6$promise$$internal$$PENDING){return}promise._state=lib$es6$promise$$internal$$REJECTED;promise._result=reason;lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publishRejection,promise)}function lib$es6$promise$$internal$$subscribe(parent,child,onFulfillment,onRejection){var subscribers=parent._subscribers;var length=subscribers.length;parent._onerror=null;subscribers[length]=child;subscribers[length+lib$es6$promise$$internal$$FULFILLED]=onFulfillment;subscribers[length+lib$es6$promise$$internal$$REJECTED]=onRejection;if(length===0&&parent._state){lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish,parent)}}function lib$es6$promise$$internal$$publish(promise){var subscribers=promise._subscribers;var settled=promise._state;if(subscribers.length===0){return}var child,callback,detail=promise._result;for(var i=0;i<subscribers.length;i+=3){child=subscribers[i];callback=subscribers[i+settled];if(child){lib$es6$promise$$internal$$invokeCallback(settled,child,callback,detail)}else{callback(detail)}}promise._subscribers.length=0}function lib$es6$promise$$internal$$ErrorObject(){this.error=null}var lib$es6$promise$$internal$$TRY_CATCH_ERROR=new lib$es6$promise$$internal$$ErrorObject;function lib$es6$promise$$internal$$tryCatch(callback,detail){try{return callback(detail)}catch(e){lib$es6$promise$$internal$$TRY_CATCH_ERROR.error=e;return lib$es6$promise$$internal$$TRY_CATCH_ERROR}}function lib$es6$promise$$internal$$invokeCallback(settled,promise,callback,detail){var hasCallback=lib$es6$promise$utils$$isFunction(callback),value,error,succeeded,failed;if(hasCallback){value=lib$es6$promise$$internal$$tryCatch(callback,detail);if(value===lib$es6$promise$$internal$$TRY_CATCH_ERROR){failed=true;error=value.error;value=null}else{succeeded=true}if(promise===value){lib$es6$promise$$internal$$reject(promise,lib$es6$promise$$internal$$cannotReturnOwn());return}}else{value=detail;succeeded=true}if(promise._state!==lib$es6$promise$$internal$$PENDING){}else if(hasCallback&&succeeded){lib$es6$promise$$internal$$resolve(promise,value)}else if(failed){lib$es6$promise$$internal$$reject(promise,error)}else if(settled===lib$es6$promise$$internal$$FULFILLED){lib$es6$promise$$internal$$fulfill(promise,value)}else if(settled===lib$es6$promise$$internal$$REJECTED){lib$es6$promise$$internal$$reject(promise,value)}}function lib$es6$promise$$internal$$initializePromise(promise,resolver){try{resolver(function resolvePromise(value){lib$es6$promise$$internal$$resolve(promise,value)},function rejectPromise(reason){lib$es6$promise$$internal$$reject(promise,reason)})}catch(e){lib$es6$promise$$internal$$reject(promise,e)}}function lib$es6$promise$promise$all$$all(entries){return new lib$es6$promise$enumerator$$default(this,entries).promise}var lib$es6$promise$promise$all$$default=lib$es6$promise$promise$all$$all;function lib$es6$promise$promise$race$$race(entries){var Constructor=this;var promise=new Constructor(lib$es6$promise$$internal$$noop);if(!lib$es6$promise$utils$$isArray(entries)){lib$es6$promise$$internal$$reject(promise,new TypeError("You must pass an array to race."));return promise}var length=entries.length;function onFulfillment(value){lib$es6$promise$$internal$$resolve(promise,value)}function onRejection(reason){lib$es6$promise$$internal$$reject(promise,reason)}for(var i=0;promise._state===lib$es6$promise$$internal$$PENDING&&i<length;i++){lib$es6$promise$$internal$$subscribe(Constructor.resolve(entries[i]),undefined,onFulfillment,onRejection)}return promise}var lib$es6$promise$promise$race$$default=lib$es6$promise$promise$race$$race;function lib$es6$promise$promise$reject$$reject(reason){var Constructor=this;var promise=new Constructor(lib$es6$promise$$internal$$noop);lib$es6$promise$$internal$$reject(promise,reason);return promise}var lib$es6$promise$promise$reject$$default=lib$es6$promise$promise$reject$$reject;var lib$es6$promise$promise$$counter=0;function lib$es6$promise$promise$$needsResolver(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function lib$es6$promise$promise$$needsNew(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}var lib$es6$promise$promise$$default=lib$es6$promise$promise$$Promise;function lib$es6$promise$promise$$Promise(resolver){this._id=lib$es6$promise$promise$$counter++;this._state=undefined;this._result=undefined;this._subscribers=[];if(lib$es6$promise$$internal$$noop!==resolver){typeof resolver!=="function"&&lib$es6$promise$promise$$needsResolver();this instanceof lib$es6$promise$promise$$Promise?lib$es6$promise$$internal$$initializePromise(this,resolver):lib$es6$promise$promise$$needsNew()}}lib$es6$promise$promise$$Promise.all=lib$es6$promise$promise$all$$default;lib$es6$promise$promise$$Promise.race=lib$es6$promise$promise$race$$default;lib$es6$promise$promise$$Promise.resolve=lib$es6$promise$promise$resolve$$default;lib$es6$promise$promise$$Promise.reject=lib$es6$promise$promise$reject$$default;lib$es6$promise$promise$$Promise._setScheduler=lib$es6$promise$asap$$setScheduler;lib$es6$promise$promise$$Promise._setAsap=lib$es6$promise$asap$$setAsap;lib$es6$promise$promise$$Promise._asap=lib$es6$promise$asap$$asap;lib$es6$promise$promise$$Promise.prototype={constructor:lib$es6$promise$promise$$Promise,then:lib$es6$promise$then$$default,"catch":function(onRejection){return this.then(null,onRejection)}};var lib$es6$promise$enumerator$$default=lib$es6$promise$enumerator$$Enumerator;function lib$es6$promise$enumerator$$Enumerator(Constructor,input){this._instanceConstructor=Constructor;this.promise=new Constructor(lib$es6$promise$$internal$$noop);if(Array.isArray(input)){this._input=input;this.length=input.length;this._remaining=input.length;this._result=new Array(this.length);if(this.length===0){lib$es6$promise$$internal$$fulfill(this.promise,this._result)}else{this.length=this.length||0;this._enumerate();if(this._remaining===0){lib$es6$promise$$internal$$fulfill(this.promise,this._result)}}}else{lib$es6$promise$$internal$$reject(this.promise,this._validationError())}}lib$es6$promise$enumerator$$Enumerator.prototype._validationError=function(){return new Error("Array Methods must be provided an Array")};lib$es6$promise$enumerator$$Enumerator.prototype._enumerate=function(){var length=this.length;var input=this._input;for(var i=0;this._state===lib$es6$promise$$internal$$PENDING&&i<length;i++){this._eachEntry(input[i],i)}};lib$es6$promise$enumerator$$Enumerator.prototype._eachEntry=function(entry,i){var c=this._instanceConstructor;var resolve=c.resolve;if(resolve===lib$es6$promise$promise$resolve$$default){var then=lib$es6$promise$$internal$$getThen(entry);if(then===lib$es6$promise$then$$default&&entry._state!==lib$es6$promise$$internal$$PENDING){this._settledAt(entry._state,i,entry._result)}else if(typeof then!=="function"){this._remaining--;this._result[i]=entry}else if(c===lib$es6$promise$promise$$default){var promise=new c(lib$es6$promise$$internal$$noop);lib$es6$promise$$internal$$handleMaybeThenable(promise,entry,then);this._willSettleAt(promise,i)}else{this._willSettleAt(new c(function(resolve){resolve(entry)}),i)}}else{this._willSettleAt(resolve(entry),i)}};lib$es6$promise$enumerator$$Enumerator.prototype._settledAt=function(state,i,value){var promise=this.promise;if(promise._state===lib$es6$promise$$internal$$PENDING){this._remaining--;if(state===lib$es6$promise$$internal$$REJECTED){lib$es6$promise$$internal$$reject(promise,value)}else{this._result[i]=value}}if(this._remaining===0){lib$es6$promise$$internal$$fulfill(promise,this._result)}};lib$es6$promise$enumerator$$Enumerator.prototype._willSettleAt=function(promise,i){var enumerator=this;lib$es6$promise$$internal$$subscribe(promise,undefined,function(value){enumerator._settledAt(lib$es6$promise$$internal$$FULFILLED,i,value)},function(reason){enumerator._settledAt(lib$es6$promise$$internal$$REJECTED,i,reason)})};function lib$es6$promise$polyfill$$polyfill(){var local;if(typeof global!=="undefined"){local=global}else if(typeof self!=="undefined"){local=self}else{try{local=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}}var P=local.Promise;if(P&&Object.prototype.toString.call(P.resolve())==="[object Promise]"&&!P.cast){return}local.Promise=lib$es6$promise$promise$$default}var lib$es6$promise$polyfill$$default=lib$es6$promise$polyfill$$polyfill;var lib$es6$promise$umd$$ES6Promise={Promise:lib$es6$promise$promise$$default,polyfill:lib$es6$promise$polyfill$$default};if(typeof define==="function"&&define["amd"]){define(function(){return lib$es6$promise$umd$$ES6Promise})}else if(typeof module!=="undefined"&&module["exports"]){module["exports"]=lib$es6$promise$umd$$ES6Promise}else if(typeof this!=="undefined"){this["ES6Promise"]=lib$es6$promise$umd$$ES6Promise}lib$es6$promise$polyfill$$default()}).call(this)}).call(this,require("_process"),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{_process:46}],43:[function(require,module,exports){function compact(array){var index=-1,length=array?array.length:0,resIndex=0,result=[];while(++index<length){var value=array[index];if(value){result[resIndex++]=value}}return result}module.exports=compact},{}],44:[function(require,module,exports){var sliced=require("sliced");var noop=function(){};var co=require("co");module.exports=wrapped;function wrapped(fn){function wrap(){var args=sliced(arguments);var last=args[args.length-1];var ctx=this;var done=typeof last=="function"?args.pop():noop;if(!fn){return done.apply(ctx,[null].concat(args))}if(generator(fn)){return co(fn).apply(ctx,args.concat(done))}if(fn.length>args.length){try{return fn.apply(ctx,args.concat(done))}catch(e){return done(e)}}return sync(fn,done).apply(ctx,args)}return wrap}function sync(fn,done){return function(){var ret;try{ret=fn.apply(this,arguments)}catch(err){return done(err)}if(promise(ret)){ret.then(function(value){done(null,value)},done)}else{ret instanceof Error?done(ret):done(null,ret)}}}function generator(value){return value&&value.constructor&&"GeneratorFunction"==value.constructor.name}function promise(value){return value&&"function"==typeof value.then}},{co:45,sliced:35}],45:[function(require,module,exports){var slice=Array.prototype.slice;module.exports=co;function co(fn){var isGenFun=isGeneratorFunction(fn);return function(done){var ctx=this;var gen=fn;if(isGenFun){var args=slice.call(arguments),len=args.length;var hasCallback=len&&"function"==typeof args[len-1];done=hasCallback?args.pop():error;gen=fn.apply(this,args)}else{done=done||error}next();function exit(err,res){setImmediate(function(){done.call(ctx,err,res)})}function next(err,res){var ret;if(arguments.length>2)res=slice.call(arguments,1);if(err){try{ret=gen.throw(err)}catch(e){return exit(e)}}if(!err){try{ret=gen.next(res)}catch(e){return exit(e)}}if(ret.done)return exit(null,ret.value);ret.value=toThunk(ret.value,ctx);if("function"==typeof ret.value){var called=false;try{ret.value.call(ctx,function(){if(called)return;called=true;next.apply(ctx,arguments)})}catch(e){setImmediate(function(){if(called)return;called=true;next(e)})}return}next(new TypeError("You may only yield a function, promise, generator, array, or object, "+'but the following was passed: "'+String(ret.value)+'"'))}}}function toThunk(obj,ctx){if(isGeneratorFunction(obj)){return co(obj.call(ctx))}if(isGenerator(obj)){return co(obj)}if(isPromise(obj)){return promiseToThunk(obj)}if("function"==typeof obj){return obj}if(isObject(obj)||Array.isArray(obj)){return objectToThunk.call(ctx,obj)}return obj}function objectToThunk(obj){var ctx=this;var isArray=Array.isArray(obj);return function(done){var keys=Object.keys(obj);var pending=keys.length;var results=isArray?new Array(pending):new obj.constructor;var finished;if(!pending){setImmediate(function(){done(null,results)});return}if(!isArray){for(var i=0;i<pending;i++){results[keys[i]]=undefined}}for(var i=0;i<keys.length;i++){run(obj[keys[i]],keys[i])}function run(fn,key){if(finished)return;try{fn=toThunk(fn,ctx);if("function"!=typeof fn){results[key]=fn;return--pending||done(null,results)}fn.call(ctx,function(err,res){if(finished)return;if(err){finished=true;return done(err)}results[key]=res;--pending||done(null,results)})}catch(err){finished=true;done(err)}}}}function promiseToThunk(promise){return function(fn){promise.then(function(res){fn(null,res)},fn)}}function isPromise(obj){return obj&&"function"==typeof obj.then}function isGenerator(obj){return obj&&"function"==typeof obj.next&&"function"==typeof obj.throw}function isGeneratorFunction(obj){return obj&&obj.constructor&&"GeneratorFunction"==obj.constructor.name}function isObject(val){return val&&Object==val.constructor}function error(err){if(!err)return;setImmediate(function(){throw err})}},{}],46:[function(require,module,exports){var process=module.exports={};process.nextTick=function(){var canSetImmediate=typeof window!=="undefined"&&window.setImmediate;var canPost=typeof window!=="undefined"&&window.postMessage&&window.addEventListener;if(canSetImmediate){return function(f){return window.setImmediate(f)}}if(canPost){var queue=[];window.addEventListener("message",function(ev){var source=ev.source;if((source===window||source===null)&&ev.data==="process-tick"){ev.stopPropagation();if(queue.length>0){var fn=queue.shift();fn()}}},true);return function nextTick(fn){queue.push(fn);window.postMessage("process-tick","*")}}return function nextTick(fn){setTimeout(fn,0)}}();process.title="browser";process.browser=true;process.env={};process.argv=[];function noop(){}process.on=noop;process.addListener=noop;process.once=noop;process.off=noop;process.removeListener=noop;process.removeAllListeners=noop;process.emit=noop;process.binding=function(name){throw new Error("process.binding is not supported")};process.cwd=function(){return"/"};process.chdir=function(dir){throw new Error("process.chdir is not supported")}},{}],socrates:[function(require,module,exports){"use strict";var assign=require("object-assign");var reducer=require("./reducer");var resolve=require("./resolve");var freeze=require("./freeze");var sliced=require("sliced");var redux=require("redux");var isArray=Array.isArray;var Middleware=redux.applyMiddleware;var Store=redux.createStore;module.exports=Socrates;function Socrates(middlewares,reduce){if(!isArray(middlewares))reduce=middlewares,middlewares=[];middlewares=[resolve].concat(middlewares);reduce=reduce||identity;var redux=Store(reducer(reduce),{},Middleware.apply(null,middlewares));function store(action){var array_context=isArray(this);if(!arguments.length&&!array_context)return freeze(redux.getState());var actions=array_context?sliced(this):sliced(arguments);actions=wrap_emitter_style(actions);return redux.dispatch.apply(redux,actions)}store.subscribe=function subscribe(fn){return redux.subscribe(function listener(){return fn(freeze(redux.getState()))})};return store}function wrap_emitter_style(actions){if(actions.length<2)return actions;if(typeof actions[0]!=="string")return actions;return[{type:actions[0],payload:assign.apply(null,actions.slice(1))}]}function identity(state,action){return action.payload}},{"./freeze":1,"./reducer":3,"./resolve":4,"object-assign":24,redux:30,sliced:35}]},{},[]);var Store=require("socrates");var store=Store({boot:function(state,action){console.log("boot",state,action);return action},"@@redux-routes/navigate":function(state,action){return action},articles:{add:function(state,action){return action}}});store.subscribe(function(state){console.log("update",state)});store("boot",{greetings:"hello"});store(function(state,fn){setTimeout(function(){fn(null,{type:"add articles",payload:[{title:"hello"}]})},200)})},0); |
This file contains hidden or 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": { | |
"socrates": "1.0.2" | |
} | |
} |
This file contains hidden or 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
<!-- contents of this file will be placed inside the <body> --> |
This file contains hidden or 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
<!-- 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