UNPKG

flume-js

Version:

a library for defining applications as a set of inputs and transformations

3 lines (2 loc) 5.93 kB
!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(n.flume=n.flume||{})}(this,function(n){"use strict";function t(n,t){return t={exports:{}},n(t,t.exports),t.exports}function e(n){return{value:n}}function r(n){return n=P(n),function(t,r,u){return n(r,u).then(e)}}function u(n){return{state:n}}function i(n,t){function e(n,e,r){return t(n,e,r).then(u)}return arguments.length<2&&(t=n,n=c),t=P(o(t)),{init:n,transform:e}}function o(n){if("function"==typeof n)return n;if(Array.isArray(n))return f(n);throw Error("Unsupported reducer type given to reduce(): "+typeof n)}function f(n){var t=a;return"function"==typeof n[n.length-1]&&(t=n[n.length-1],n=n.slice(0,-1)),function(e,r,u){for(var i,o=u.source,f=-1,c=n.length;++f<c;)if(i=n[f],i[0]===o)return i[1](e,r,u);return t(e,r,u)}}function c(){return null}function a(n,t){return t}function s(n){return n}function l(n){return n=n||s,function(t,r,u){return q([n(r,u),r]).then(p).then(e)}}function p(n){return n[0]?n[1]:E}function h(n,t){function r(n,r,u){return t(n,r,u).then(e)}return t=P(t),{init:n,transform:r}}function d(){return""}function y(n){function t(t,e){var r=(t+e).split(n);return{state:r.slice(-1),values:r.slice(0,-1)}}return{init:d,transform:t}}function v(n,t){function e(n,t){var e={};for(var u in n)n.hasOwnProperty(u)&&(e[u]=r(n[u],t));return e}function r(n,t){return function(e){t(n,e)}}return arguments.length<2&&(t=n,n=O),function(r,u,i){return r=r||e(t,i.dispatch),{state:r,value:n(u,r)}}}var m="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},g=t(function(n,t){!function(n,e){"function"==typeof n.define&&n.define.amd?n.define(e):"object"==typeof t?e(!0):n.flume=e()}(m,function(t){function e(){return new c}function r(n){function t(n,t,r){var u=g(e.inputs,n),i=u.length,o=-1;for(r=S(i,r||b);++o<i;)u[o].handle(t,r);return e}var e={};return e.dispatch=t,e.inputs=l(e,n),e}function u(n,t){return new f(n,t)}function i(n){return o({"flume:error":n})}function o(n){return{transform:w({"*":d},n)}}function f(n,t){this.type=n,this.value=t}function c(){this.defType="input"}function a(n){this.defType="transform",this.init=x(n.init,b),this.transform=n.transform}function s(n,t,e,r){this.graph=n,this.def=t,this.child=e,this.index=r,this.handle=y(this)}function l(n,t,e,r){var u=t.length-1;if(u<0)return[];for(u&&(e=new s(n,h(t[u]),e,r));--u>0;)e=new s(n,h(t[u]),e,0);return p(n,t[0],e)}function p(n,t,e){t=P(t);for(var r,u=[],i=-1,o=t.length;++i<o;)if(r=t[i],Array.isArray(r))u.push.apply(u,l(n,r,e,i));else{if(!(r instanceof c))throw Error("Expected input or array but got "+q(r));u.push(new s(n,r,e,i))}return u}function h(n){if("function"==typeof n)n={transform:{"flume:value":n}};else if("function"==typeof(n||0).transform)n=w(n,{transform:{"flume:value":n.transform}});else if("object"!==q((n||0).transform))throw Error("Expected function or object matching transform shape but got "+q(n));return new a(n)}function d(n,t){return{state:t}}function y(n){return{input:v,transform:m}[n.def.defType](n)}function v(n){return function(t,e){n.child.handle([t],n,n,e)}}function m(n){function t(n){a.push(n),s||e()}function e(){l=a.shift(),l&&r()}function r(){return s=!0,h().then(I).then(f,c)}function i(){var t=n.def.transform,e=t[l.msg.type]||t["*"];return e?e(p,l.msg.value,{source:l.source.def,parent:l.parent.def,dispatch:n.graph.dispatch}):{value:l.msg}}function o(t){var r=l;s=!1,l=null,n.child?n.child.handle(t,n,r.source,r.end):r.end(),e()}function f(n){n=O(p,n),p=n.state,o(n.values)}function c(t){if(!n.child)throw new z(t);o([u("flume:error",t)])}var a=[],s=!1,l=null,p=n.def.init(),h=T(i);return function(n,e,r,u){n=n.map(E);for(var i=-1,o=n.length-1,f={source:r,parent:e};++i<o;)t(w(f,{msg:n[i],end:b}));o>-1&&t(w(f,{msg:n[o],end:u}))}}function g(n,t){for(var e,r=[],u=n.length,i=-1;++i<u;)e=n[i],e.def===t&&r.push(e);return r}function w(){for(var n,t={},e=Array.prototype.slice.call(arguments),r=-1,u=e.length;++r<u;){n=e[r];for(var i in n)n.hasOwnProperty(i)&&(t[i]=n[i])}return t}function b(){return null}function x(n,t){return void 0===n?t:n}function A(n){return n}function j(n){throw n}function E(n){return n instanceof f?n:u("flume:value",n)}function O(n,t){var e,r=t.hasOwnProperty("state");return t.hasOwnProperty("value")?e=[t.value]:t.hasOwnProperty("values")?e=t.values:r&&(e=[t.state]),{values:e,state:r?t.state:n}}function P(n){return Array.isArray(n)?n:[n]}function q(n){return null!==n?typeof n:"null"}function S(n,t){var e=0;return function(){++e>=n&&t.apply(null,arguments)}}function T(n){return function(){try{var t=n.apply(this,arguments);return _(t)}catch(e){if(e instanceof z)throw e.error;return k(e)}}}function _(n){return U(n)?n:F(n)}function F(n){return new B(n,(!1))}function k(n){return new B(n,(!0))}function I(n){return Array.isArray(n)&&n.filter(U).length>0?M(n):_(n)}function M(n){function t(){return _(n[++f]).then(e)}function e(n){u.push(n)}function r(){return u}for(var u=[],i=n.length,o=-1,f=-1,c=F(null);++o<i;)c=c.then(t);return c.then(r)}function U(n){return!!(n||0).then}function z(n){this.error=n}function B(n,t){this.value=n,this.isFailure=t}var C=u("flume:nil",null);return B.prototype.then=T(function(n,t){return this.isFailure?(t||j).call(this,this.value):(n||A).call(this,this.value)}),t?void(n.exports={create:r,input:e,message:u,trap:o,except:i,nil:C,conj:w,maybeAsync:T,resolveSeq:I}):{create:r,input:e,message:u,trap:o,except:i,nil:C,conj:w,maybeAsync:T,castThenable:_,resolveSeq:I}})}),w=g.create,b=g.input,x=g.message,A=g.trap,j=g.except,E=g.nil,O=g.conj,P=g.maybeAsync,q=g.resolveSeq;n.map=r,n.reduce=i,n.filter=l,n.sink=h,n.strsplit=y,n.bindInputs=v,n.__moduleExports=g,n.create=w,n.input=b,n.message=x,n.trap=A,n.except=j,n.nil=E,n.conj=O,n.maybeAsync=P,n.resolveSeq=q,Object.defineProperty(n,"__esModule",{value:!0})}); //# sourceMappingURL=flume.min.js.map