Comparing version
@@ -420,5 +420,6 @@ (function webpackUniversalModuleDefinition(root, factory) { | ||
* @param {Function} func Event factory function. | ||
* @returns {Function} Event factory function. | ||
* @returns {Function|Array} Event factory function. | ||
*/ | ||
var eventFactory = function eventFactory(id, func) { | ||
// TODO: allow func to be an array with event properties | ||
/** | ||
@@ -429,3 +430,19 @@ * @param {Object} props Properties | ||
return function () { | ||
return Object.freeze(Object.assign({}, func.apply(undefined, arguments), { type: id })); | ||
for (var _len = arguments.length, values = Array(_len), _key = 0; _key < _len; _key++) { | ||
values[_key] = arguments[_key]; | ||
} | ||
if (typeof func === "function") { | ||
return Object.freeze(Object.assign({}, func.apply(undefined, values), { type: id })); | ||
} | ||
// Assume func is an array | ||
if (values.length > func.length) { | ||
throw new Error("GyreJS (Event creation): instantiated event " + id + " is provided more values (" + values.length + ") than configured (" + func.length + ")."); | ||
} | ||
var eventProperties = values.reduce(function (obj, value, index) { | ||
obj[func[index]] = value; | ||
return obj; | ||
}, {}); | ||
return Object.freeze(Object.assign({}, eventProperties, { type: id })); | ||
}; | ||
@@ -432,0 +449,0 @@ }; |
@@ -1,1 +0,1 @@ | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.GyreJS=t():e.GyreJS=t()}(this,function(){return function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var r={};return t.m=e,t.c=r,t.p="",t(0)}([function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}var o=r(9),u=n(o);e.exports=u.default},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e,t){var r=t.reducer,n=t.eventFilter,o=t.methods,u=void 0===o?{}:o;return function(t){var o=void 0,i=function(){o=r(void 0,{type:null})},a=function(e){"__RESET__"===e.type?i():o=Object.assign({},r(o,e))},c=function(t){for(var r,n=arguments.length,o=Array(n>1?n-1:0),u=1;n>u;u++)o[u-1]=arguments[u];(r=e.dispatcher).triggerEvent.apply(r,[t].concat(o))},d=function(){return"function"==typeof n?e.bus.getEvents().filter(function(e){return"__RESET__"===e.type?!0:n(e)}):Array.isArray(n)?e.bus.getEvents().filter(function(e){return"__RESET__"===e.type?!0:-1!==n.indexOf(e.type)}):e.bus.getEvents()};return i(),d().forEach(function(e){return a(e)}),Object.freeze(Object.keys(u).reduce(function(e,r){return e[r]=function(){for(var e=arguments.length,n=Array(e),i=0;e>i;i++)n[i]=arguments[i];u[r].apply(null,[o,c].concat(n,[t]))},e},{}))}};t.default=r},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){var e=[],t=[],r=[];r.ticker=function(e){return e()};var n=function(n){return function(){r.updateRequested=!1,t=t.concat(e),"function"==typeof n?t.forEach(function(e){return n(e)}):(e.forEach(function(e){r.forEach(function(t){return t(e)})}),e=[])}},o=function(e){r.updateRequested||(r.updateRequested=!0,r.ticker(n(e)))},u=function(e){return function(){return r.splice(r.indexOf(e),1)}},i=function(e,t){return r.push(e),t&&o(e),u(e)},a=function(t){return e.push(t),o(),t},c=function(e){if("function"!=typeof e)throw new Error("GyreJS (setTicker): Ticker should be a function.");r.ticker=e},d=function(){return t.concat(e)};return{addProjection:i,getEvents:d,setTicker:c,trigger:a}};t.default=r},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e,t){var r=t.dispatcher;return function(t,n){return"string"==typeof t||Array.isArray(t)?function(){var r=Array.isArray(t)?t[0]:t,o=Array.isArray(t)&&t.length>1?t[1]:void 0;if(!Object.prototype.hasOwnProperty.call(e,r))throw new Error("GyreJS (Command): Cannot find aggregate "+r+"; needed for command "+n);var u=e[r](o);if(Object.prototype.hasOwnProperty.call(u,n)&&"function"==typeof u[n])return u[n].apply(u,arguments);throw new Error("GyreJS (addCommand): Cannot find method "+t+" on aggregate "+n)}:t.bind({getAggregate:function(t,r){return e[t](r)},issue:r.issueCommand,trigger:r.triggerEvent})}};t.default=r},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e,t,r){var n=function(t){for(var n=arguments.length,o=Array(n>1?n-1:0),u=1;n>u;u++)o[u-1]=arguments[u];return"function"!=typeof r[t]?(console.error("GyreJS (triggerEvent): Event "+t+" not registered."),!1):e.bus.trigger(r[t].apply(r,o))},o=function(e){for(var r=arguments.length,n=Array(r>1?r-1:0),o=1;r>o;o++)n[o-1]=arguments[o];return"function"!=typeof t[e]?(console.error("GyreJS (issueCommand): Command "+e+" not registered."),!1):void t[e].apply(t,n)},u=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),o=1;t>o;o++)n[o-1]=arguments[o];return"function"!=typeof r[e]?(console.error("GyreJS (getEventInstance): Event "+e+" not registered."),!1):r[e].apply(r,n)};return{getEventInstance:u,issueCommand:o,triggerEvent:n}};t.default=r},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e,t){return function(){return Object.freeze(Object.assign({},t.apply(void 0,arguments),{type:e}))}};t.default=r},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e};Object.defineProperty(t,"__esModule",{value:!0});var u=r(2),i=n(u),a=r(4),c=n(a),d=r(3),s=n(d),f=r(5),y=n(f),g=r(1),l=n(g),p=r(7),v=n(p),m=r(8),h=n(m),b=function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],t=e.ticker,r=void 0===t?"synchronous":t,n=e.commands,u=void 0===n?{}:n,a=e.events,d=void 0===a?{}:a,f=e.aggregates,g=void 0===f?{}:f,p=e.projections,m=void 0===p?{}:p;return function(e){var t=e.gId,n=e.gyrejsDebugger,a={},f={},p={},b={},j={},E={};E.bus=(0,i.default)(),E.dispatcher=(0,c.default)(E,p,b);var w=(0,s.default)(f,E),O=a.addCommand=function(e,t,r){return!Object.prototype.hasOwnProperty.call(p,e)||r?p[e]=w(t,e):console.warn(">> GyreJS-gyre: AddCommand -> Selector with id: '"+e+"' already exists."),a},_=a.addCommands=function(e,t){if("object"!==("undefined"==typeof e?"undefined":o(e)))throw new Error("GyreJS (addSelectors): first argument (selectors) should be an object.");return Object.keys(e).forEach(function(r){a.addCommand(r,e[r],t)}),a},S=a.addEvent=function(e,t,r){return!Object.prototype.hasOwnProperty.call(b,e)||r?b[e]=(0,y.default)(e,t):console.warn(">> GyreJS-gyre: addEvent -> Selector with id: '"+e+"' already exists."),a},G=a.addEvents=function(e,t){if("object"!==("undefined"==typeof e?"undefined":o(e)))throw new Error("GyreJS (addEvents): first argument (selectors) should be an object.");return Object.keys(e).forEach(function(r){a.addEvent(r,e[r],t)}),a},P=a.addAggregate=function(e,t,r){return!Object.prototype.hasOwnProperty.call(f,e)||r?f[e]=(0,l.default)(E,t):console.warn(">> GyreJS-gyre: addEvent -> Selector with id: '"+e+"' already exists."),a},J=a.addAggregates=function(e,t){if("object"!==("undefined"==typeof e?"undefined":o(e)))throw new Error("GyreJS (addEvents): first argument (selectors) should be an object.");return Object.keys(e).forEach(function(r){a.addAggregate(r,e[r],t)}),a},A=a.addProjection=function(e,t,r){return!Object.prototype.hasOwnProperty.call(j,e)||r?j[e]=(0,v.default)(E,t):console.warn(">> GyreJS-gyre: addProjection -> Projection with id: '"+e+"' already exists."),a},k=a.addProjections=function(e,t){if("object"!==("undefined"==typeof e?"undefined":o(e)))throw new Error("GyreJS (addProjections): first argument should be an object.");return Object.keys(e).forEach(function(r){a.addProjection(r,e[r],t)}),a},x=a.removeProjection=function(e){return j.hasOwnProperty(e)?j[e].destroy(e)?(delete j[e],!0):!1:(console.warn(">> GyreJS: (removeProjection) A projection with id:'"+e+"' is not registered."),!1)},C=function(e,t){if(!j.hasOwnProperty(e))return console.warn(">> GyreJS: (addListener) A projection with id:'"+e+"' is not registered."),!1;if("function"!=typeof t)throw new Error("GyreJS (addListener): The second argument, callback, should be a function.");return j[e].addListener(t)},R=function(){var e;return(e=E.dispatcher).issueCommand.apply(e,arguments),a},T=function(){var e;return(e=E.dispatcher).triggerEvent.apply(e,arguments),a};return _(u),G(d),J(g),k(m),E.bus.setTicker(h.default.get(r)),Object.assign(a,{addCommand:O,addCommands:_,addEvent:S,addEvents:G,addAggregate:P,addAggregates:J,addProjection:A,addProjections:k,removeProjection:x,addListener:C,issue:R,trigger:T}),n&&(a=n.addGyre(t,a),E.bus=n.addBus(t,E.bus),E.dispatcher=n.addDispatcher(t,E.dispatcher)),Object.freeze(a)}};t.default=b},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){var t=arguments.length<=1||void 0===arguments[1]?function(e){return e}:arguments[1],r=void 0,n=[];n.ticker=function(e){return e()},n.updateRequested=!1;var o=function(){return r=Object.freeze(t(void 0,{type:null}))};o();var u=function(e){return function(){return n.updateRequested=!1,e?e(r):n.forEach(function(e){return e(r)})}},i=function(e){n.updateRequested||(n.updateRequested=!0,n.ticker(u(e)))},a=function(e){return function(){return n.splice(n.indexOf(e),1)}},c=function(e){return r!==e&&(r=e,i()),r},d=function(e){return n.push(e),i(e),a(e)},s=function(e){if("function"!=typeof e)throw new Error("GyreJS (setTicker): Ticker should be a function.");n.ticker=e},f=function(e){return c("__RESET__"===e.type?t(void 0,e):t(Object.assign({},r),e))},y=function(e){return function(t){var r=n.length;return r>0?(console.warn(">> GyreJS: (removeProjection) Projection with id:'"+t+"' connot be removed; still "+r+" listeners attached;"),!1):e()&&!0}}(e.bus.addProjection(f));return{addListener:d,destroy:y,setTicker:s,update:f}};t.default=r},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={synchronous:function(e){return e()},deferred:function(e){return setTimeout(function(){return e()},0)}};t.default={get:function(e){return r[e]||r.synchronous}}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=r(6),u=n(o),i={},a=0,c=function(){var e=void 0;return function(){return e||(e={empty:(0,u.default)()})}}(),d=void 0,s=function(e){return d=e},f=function(){var e=arguments.length<=0||void 0===arguments[0]?"empty":arguments[0],t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];if(c().hasOwnProperty(e)){var r=e+"-"+a++;return c()[e](Object.assign({},t,{gId:r,gyrejsDebugger:d}))}throw new Error("GyreJS (instantiateGyre): Error on create - Gyre factory '"+e+"' not registered.")},y=function(e,t){if("empty"===e)throw new Error("GyreJS (registerGyre): cannot use 'empty, it is a reserved id.");return c()[e]=t,i},g=function(e){return c().hasOwnProperty(e)?delete c()[e]&&!0:(console.warn(">> GyreJS: (unRegisterGyre) Cannot un-register - Gyre factory '"+e+"' not registered."),!1)},l=function(){return 1===arguments.length?(0,u.default)(arguments.length<=0?void 0:arguments[0])(a++):y(arguments.length<=0?void 0:arguments[0],(0,u.default)(arguments.length<=1?void 0:arguments[1]))};t.default=Object.assign(i,{attachDebugger:s,createGyre:l,instantiateGyre:f,registerGyre:y,unRegisterGyre:g})}])}); | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.GyreJS=t():e.GyreJS=t()}(this,function(){return function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var r={};return t.m=e,t.c=r,t.p="",t(0)}([function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}var o=r(9),u=n(o);e.exports=u.default},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e,t){var r=t.reducer,n=t.eventFilter,o=t.methods,u=void 0===o?{}:o;return function(t){var o=void 0,i=function(){o=r(void 0,{type:null})},a=function(e){"__RESET__"===e.type?i():o=Object.assign({},r(o,e))},c=function(t){for(var r,n=arguments.length,o=Array(n>1?n-1:0),u=1;n>u;u++)o[u-1]=arguments[u];(r=e.dispatcher).triggerEvent.apply(r,[t].concat(o))},d=function(){return"function"==typeof n?e.bus.getEvents().filter(function(e){return"__RESET__"===e.type?!0:n(e)}):Array.isArray(n)?e.bus.getEvents().filter(function(e){return"__RESET__"===e.type?!0:-1!==n.indexOf(e.type)}):e.bus.getEvents()};return i(),d().forEach(function(e){return a(e)}),Object.freeze(Object.keys(u).reduce(function(e,r){return e[r]=function(){for(var e=arguments.length,n=Array(e),i=0;e>i;i++)n[i]=arguments[i];u[r].apply(null,[o,c].concat(n,[t]))},e},{}))}};t.default=r},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){var e=[],t=[],r=[];r.ticker=function(e){return e()};var n=function(n){return function(){r.updateRequested=!1,t=t.concat(e),"function"==typeof n?t.forEach(function(e){return n(e)}):(e.forEach(function(e){r.forEach(function(t){return t(e)})}),e=[])}},o=function(e){r.updateRequested||(r.updateRequested=!0,r.ticker(n(e)))},u=function(e){return function(){return r.splice(r.indexOf(e),1)}},i=function(e,t){return r.push(e),t&&o(e),u(e)},a=function(t){return e.push(t),o(),t},c=function(e){if("function"!=typeof e)throw new Error("GyreJS (setTicker): Ticker should be a function.");r.ticker=e},d=function(){return t.concat(e)};return{addProjection:i,getEvents:d,setTicker:c,trigger:a}};t.default=r},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e,t){var r=t.dispatcher;return function(t,n){return"string"==typeof t||Array.isArray(t)?function(){var r=Array.isArray(t)?t[0]:t,o=Array.isArray(t)&&t.length>1?t[1]:void 0;if(!Object.prototype.hasOwnProperty.call(e,r))throw new Error("GyreJS (Command): Cannot find aggregate "+r+"; needed for command "+n);var u=e[r](o);if(Object.prototype.hasOwnProperty.call(u,n)&&"function"==typeof u[n])return u[n].apply(u,arguments);throw new Error("GyreJS (addCommand): Cannot find method "+t+" on aggregate "+n)}:t.bind({getAggregate:function(t,r){return e[t](r)},issue:r.issueCommand,trigger:r.triggerEvent})}};t.default=r},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e,t,r){var n=function(t){for(var n=arguments.length,o=Array(n>1?n-1:0),u=1;n>u;u++)o[u-1]=arguments[u];return"function"!=typeof r[t]?(console.error("GyreJS (triggerEvent): Event "+t+" not registered."),!1):e.bus.trigger(r[t].apply(r,o))},o=function(e){for(var r=arguments.length,n=Array(r>1?r-1:0),o=1;r>o;o++)n[o-1]=arguments[o];return"function"!=typeof t[e]?(console.error("GyreJS (issueCommand): Command "+e+" not registered."),!1):void t[e].apply(t,n)},u=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),o=1;t>o;o++)n[o-1]=arguments[o];return"function"!=typeof r[e]?(console.error("GyreJS (getEventInstance): Event "+e+" not registered."),!1):r[e].apply(r,n)};return{getEventInstance:u,issueCommand:o,triggerEvent:n}};t.default=r},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e,t){return function(){for(var r=arguments.length,n=Array(r),o=0;r>o;o++)n[o]=arguments[o];if("function"==typeof t)return Object.freeze(Object.assign({},t.apply(void 0,n),{type:e}));if(n.length>t.length)throw new Error("GyreJS (Event creation): instantiated event "+e+" is provided more values ("+n.length+") than configured ("+t.length+").");var u=n.reduce(function(e,r,n){return e[t[n]]=r,e},{});return Object.freeze(Object.assign({},u,{type:e}))}};t.default=r},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e};Object.defineProperty(t,"__esModule",{value:!0});var u=r(2),i=n(u),a=r(4),c=n(a),d=r(3),s=n(d),f=r(5),g=n(f),y=r(1),l=n(y),p=r(7),v=n(p),m=r(8),h=n(m),b=function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],t=e.ticker,r=void 0===t?"synchronous":t,n=e.commands,u=void 0===n?{}:n,a=e.events,d=void 0===a?{}:a,f=e.aggregates,y=void 0===f?{}:f,p=e.projections,m=void 0===p?{}:p;return function(e){var t=e.gId,n=e.gyrejsDebugger,a={},f={},p={},b={},j={},E={};E.bus=(0,i.default)(),E.dispatcher=(0,c.default)(E,p,b);var w=(0,s.default)(f,E),O=a.addCommand=function(e,t,r){return!Object.prototype.hasOwnProperty.call(p,e)||r?p[e]=w(t,e):console.warn(">> GyreJS-gyre: AddCommand -> Selector with id: '"+e+"' already exists."),a},_=a.addCommands=function(e,t){if("object"!==("undefined"==typeof e?"undefined":o(e)))throw new Error("GyreJS (addSelectors): first argument (selectors) should be an object.");return Object.keys(e).forEach(function(r){a.addCommand(r,e[r],t)}),a},S=a.addEvent=function(e,t,r){return!Object.prototype.hasOwnProperty.call(b,e)||r?b[e]=(0,g.default)(e,t):console.warn(">> GyreJS-gyre: addEvent -> Selector with id: '"+e+"' already exists."),a},G=a.addEvents=function(e,t){if("object"!==("undefined"==typeof e?"undefined":o(e)))throw new Error("GyreJS (addEvents): first argument (selectors) should be an object.");return Object.keys(e).forEach(function(r){a.addEvent(r,e[r],t)}),a},P=a.addAggregate=function(e,t,r){return!Object.prototype.hasOwnProperty.call(f,e)||r?f[e]=(0,l.default)(E,t):console.warn(">> GyreJS-gyre: addEvent -> Selector with id: '"+e+"' already exists."),a},J=a.addAggregates=function(e,t){if("object"!==("undefined"==typeof e?"undefined":o(e)))throw new Error("GyreJS (addEvents): first argument (selectors) should be an object.");return Object.keys(e).forEach(function(r){a.addAggregate(r,e[r],t)}),a},A=a.addProjection=function(e,t,r){return!Object.prototype.hasOwnProperty.call(j,e)||r?j[e]=(0,v.default)(E,t):console.warn(">> GyreJS-gyre: addProjection -> Projection with id: '"+e+"' already exists."),a},k=a.addProjections=function(e,t){if("object"!==("undefined"==typeof e?"undefined":o(e)))throw new Error("GyreJS (addProjections): first argument should be an object.");return Object.keys(e).forEach(function(r){a.addProjection(r,e[r],t)}),a},x=a.removeProjection=function(e){return j.hasOwnProperty(e)?j[e].destroy(e)?(delete j[e],!0):!1:(console.warn(">> GyreJS: (removeProjection) A projection with id:'"+e+"' is not registered."),!1)},C=function(e,t){if(!j.hasOwnProperty(e))return console.warn(">> GyreJS: (addListener) A projection with id:'"+e+"' is not registered."),!1;if("function"!=typeof t)throw new Error("GyreJS (addListener): The second argument, callback, should be a function.");return j[e].addListener(t)},R=function(){var e;return(e=E.dispatcher).issueCommand.apply(e,arguments),a},T=function(){var e;return(e=E.dispatcher).triggerEvent.apply(e,arguments),a};return _(u),G(d),J(y),k(m),E.bus.setTicker(h.default.get(r)),Object.assign(a,{addCommand:O,addCommands:_,addEvent:S,addEvents:G,addAggregate:P,addAggregates:J,addProjection:A,addProjections:k,removeProjection:x,addListener:C,issue:R,trigger:T}),n&&(a=n.addGyre(t,a),E.bus=n.addBus(t,E.bus),E.dispatcher=n.addDispatcher(t,E.dispatcher)),Object.freeze(a)}};t.default=b},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){var t=arguments.length<=1||void 0===arguments[1]?function(e){return e}:arguments[1],r=void 0,n=[];n.ticker=function(e){return e()},n.updateRequested=!1;var o=function(){return r=Object.freeze(t(void 0,{type:null}))};o();var u=function(e){return function(){return n.updateRequested=!1,e?e(r):n.forEach(function(e){return e(r)})}},i=function(e){n.updateRequested||(n.updateRequested=!0,n.ticker(u(e)))},a=function(e){return function(){return n.splice(n.indexOf(e),1)}},c=function(e){return r!==e&&(r=e,i()),r},d=function(e){return n.push(e),i(e),a(e)},s=function(e){if("function"!=typeof e)throw new Error("GyreJS (setTicker): Ticker should be a function.");n.ticker=e},f=function(e){return c("__RESET__"===e.type?t(void 0,e):t(Object.assign({},r),e))},g=function(e){return function(t){var r=n.length;return r>0?(console.warn(">> GyreJS: (removeProjection) Projection with id:'"+t+"' connot be removed; still "+r+" listeners attached;"),!1):e()&&!0}}(e.bus.addProjection(f));return{addListener:d,destroy:g,setTicker:s,update:f}};t.default=r},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={synchronous:function(e){return e()},deferred:function(e){return setTimeout(function(){return e()},0)}};t.default={get:function(e){return r[e]||r.synchronous}}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=r(6),u=n(o),i={},a=0,c=function(){var e=void 0;return function(){return e||(e={empty:(0,u.default)()})}}(),d=void 0,s=function(e){return d=e},f=function(){var e=arguments.length<=0||void 0===arguments[0]?"empty":arguments[0],t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];if(c().hasOwnProperty(e)){var r=e+"-"+a++;return c()[e](Object.assign({},t,{gId:r,gyrejsDebugger:d}))}throw new Error("GyreJS (instantiateGyre): Error on create - Gyre factory '"+e+"' not registered.")},g=function(e,t){if("empty"===e)throw new Error("GyreJS (registerGyre): cannot use 'empty, it is a reserved id.");return c()[e]=t,i},y=function(e){return c().hasOwnProperty(e)?delete c()[e]&&!0:(console.warn(">> GyreJS: (unRegisterGyre) Cannot un-register - Gyre factory '"+e+"' not registered."),!1)},l=function(){return 1===arguments.length?(0,u.default)(arguments.length<=0?void 0:arguments[0])(a++):g(arguments.length<=0?void 0:arguments[0],(0,u.default)(arguments.length<=1?void 0:arguments[1]))};t.default=Object.assign(i,{attachDebugger:s,createGyre:l,instantiateGyre:f,registerGyre:g,unRegisterGyre:y})}])}); |
@@ -10,5 +10,6 @@ "use strict"; | ||
* @param {Function} func Event factory function. | ||
* @returns {Function} Event factory function. | ||
* @returns {Function|Array} Event factory function. | ||
*/ | ||
var eventFactory = function eventFactory(id, func) { | ||
// TODO: allow func to be an array with event properties | ||
/** | ||
@@ -19,3 +20,19 @@ * @param {Object} props Properties | ||
return function () { | ||
return Object.freeze(Object.assign({}, func.apply(undefined, arguments), { type: id })); | ||
for (var _len = arguments.length, values = Array(_len), _key = 0; _key < _len; _key++) { | ||
values[_key] = arguments[_key]; | ||
} | ||
if (typeof func === "function") { | ||
return Object.freeze(Object.assign({}, func.apply(undefined, values), { type: id })); | ||
} | ||
// Assume func is an array | ||
if (values.length > func.length) { | ||
throw new Error("GyreJS (Event creation): instantiated event " + id + " is provided more values (" + values.length + ") than configured (" + func.length + ")."); | ||
} | ||
var eventProperties = values.reduce(function (obj, value, index) { | ||
obj[func[index]] = value; | ||
return obj; | ||
}, {}); | ||
return Object.freeze(Object.assign({}, eventProperties, { type: id })); | ||
}; | ||
@@ -22,0 +39,0 @@ }; |
{ | ||
"name": "gyrejs", | ||
"version": "0.2.3", | ||
"version": "0.2.4", | ||
"description": "Experimental data fetching and state library geared towards ReactJS", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
@@ -5,5 +5,6 @@ /** | ||
* @param {Function} func Event factory function. | ||
* @returns {Function} Event factory function. | ||
* @returns {Function|Array} Event factory function. | ||
*/ | ||
const eventFactory = (id, func) => { | ||
// TODO: allow func to be an array with event properties | ||
/** | ||
@@ -13,5 +14,19 @@ * @param {Object} props Properties | ||
*/ | ||
return (...values) => Object.freeze(Object.assign({}, func(...values), {type: id})); | ||
return (...values) => { | ||
if (typeof func === "function") { | ||
return Object.freeze(Object.assign({}, func(...values), {type: id})); | ||
} | ||
// Assume func is an array | ||
if (values.length > func.length) { | ||
throw new Error(`GyreJS (Event creation): instantiated event ${id} is provided more values (${values.length}) than configured (${func.length}).`); | ||
} | ||
const eventProperties = values.reduce((obj, value, index) => { | ||
obj[func[index]] = value; | ||
return obj; | ||
}, {}); | ||
return Object.freeze(Object.assign({}, eventProperties, {type: id})); | ||
}; | ||
}; | ||
export default eventFactory; |
96147
2.48%2382
1.88%