react 0.3.5 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (310) hide show
  1. package/.npmignore +2 -1
  2. package/.travis.yml +4 -0
  3. package/Jakefile.js +34 -3
  4. package/README.md +34 -174
  5. package/browser-test/dist.html +90 -0
  6. package/browser-test/index.html +86 -0
  7. package/browser-test/min.html +90 -0
  8. package/dist/react.js +3291 -0
  9. package/dist/react.min.js +1 -0
  10. package/doc/advanced.md +166 -0
  11. package/doc/color-def.graffle +938 -0
  12. package/doc/color-def.png +0 -0
  13. package/doc/simple.dot +25 -0
  14. package/doc/simple.png +0 -0
  15. package/examples/{default1.js → longer-example.js} +0 -0
  16. package/examples/{default-simple.js → simple.js} +0 -0
  17. package/examples/{ast1.js → using-ast-directly.js} +4 -0
  18. package/examples/{default-events1.js → using-events1.js} +1 -1
  19. package/examples/{default-log-events.js → using-log-events.js} +1 -1
  20. package/lib/base-task.js +116 -110
  21. package/lib/cb-task.js +71 -67
  22. package/lib/core.js +120 -109
  23. package/lib/dsl.js +120 -115
  24. package/lib/error.js +44 -36
  25. package/lib/event-collector.js +81 -0
  26. package/lib/event-manager.js +66 -55
  27. package/lib/eventemitter.js +20 -0
  28. package/lib/finalcb-first-task.js +56 -53
  29. package/lib/finalcb-task.js +55 -51
  30. package/lib/id.js +18 -6
  31. package/lib/input-parser.js +49 -41
  32. package/lib/log-events.js +81 -60
  33. package/lib/parse.js +34 -25
  34. package/lib/promise-resolve.js +50 -0
  35. package/lib/promise-task.js +78 -74
  36. package/lib/react.js +59 -0
  37. package/lib/ret-task.js +59 -55
  38. package/lib/sprintf.js +18 -0
  39. package/lib/status.js +11 -2
  40. package/lib/task.js +219 -213
  41. package/lib/track-tasks.js +67 -110
  42. package/lib/validate.js +136 -136
  43. package/lib/vcon.js +78 -69
  44. package/lib/when-task.js +69 -65
  45. package/package.json +11 -9
  46. package/src/dist.build.requirejs +20 -0
  47. package/test/ast.mocha.js +136 -0
  48. package/test/cb-task.mocha.js +220 -0
  49. package/test/core-deferred.mocha.js +143 -0
  50. package/test/core-when.mocha.js +96 -0
  51. package/test/core.mocha.js +589 -0
  52. package/test/dsl.mocha.js +350 -0
  53. package/test/event-manager.mocha.js +119 -0
  54. package/test/exec-options.mocha.js +48 -0
  55. package/test/finalcb-task.mocha.js +58 -0
  56. package/test/input-parser.mocha.js +86 -0
  57. package/test/mocha.opts +2 -0
  58. package/test/module-use.mocha.js +147 -0
  59. package/test/promise-auto-resolve.mocha.js +68 -0
  60. package/test/ret-task.mocha.js +220 -0
  61. package/test/task.mocha.js +42 -0
  62. package/test/validate-cb-task.mocha.js +100 -0
  63. package/test/validate-ret-task.mocha.js +110 -0
  64. package/test/validate.mocha.js +324 -0
  65. package/test/vcon.mocha.js +193 -0
  66. package/vendor/chai/chai.js +2038 -0
  67. package/vendor/jquery/jquery-1.7.1.js +9266 -0
  68. package/vendor/jquery/jquery-1.7.1.min.js +4 -0
  69. package/vendor/mocha/mocha.css +135 -0
  70. package/vendor/mocha/mocha.js +3589 -0
  71. package/vendor/node/util.js +531 -0
  72. package/vendor/requirejs/require.js +2053 -0
  73. package/vendor/requirejs/require.min.js +33 -0
  74. package/doc/alternate-dsls.md +0 -103
  75. package/doc/default-simple.dot +0 -19
  76. package/doc/default-simple.dot.png +0 -0
  77. package/dsl/chain.js +0 -150
  78. package/dsl/fstr.js +0 -121
  79. package/dsl/pcode.js +0 -175
  80. package/examples/chain-events1.js +0 -55
  81. package/examples/chain1.js +0 -19
  82. package/examples/fstr-events1.js +0 -38
  83. package/examples/fstr1.js +0 -37
  84. package/examples/pcode1.js +0 -22
  85. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia.html +0 -675
  86. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/37px-Wiktionary-logo-en.svg.png +0 -0
  87. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/closewindow.png +0 -0
  88. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/index(1).php +0 -407
  89. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/index.php +0 -130
  90. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(1).php +0 -3
  91. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(10).php +0 -89
  92. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(2).php +0 -23
  93. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(3).php +0 -153
  94. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(4).php +0 -6
  95. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(5).php +0 -3
  96. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(6).php +0 -96
  97. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(7).php +0 -16
  98. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(8).php +0 -14
  99. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(9).php +0 -123
  100. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load.php +0 -3
  101. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/poweredby_mediawiki_88x31.png +0 -0
  102. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/saved_resource +0 -1
  103. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/search-ltr.png +0 -0
  104. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/wikimedia-button.png +0 -0
  105. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's.html +0 -1369
  106. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/121911_DobbsDigest_Cover.jpg +0 -0
  107. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/160-x-600-IMU Impact 2012.jpg +0 -0
  108. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp= +0 -68
  109. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=(1) +0 -67
  110. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=(2) +0 -2
  111. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=(3) +0 -2
  112. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=(4) +0 -8
  113. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=(5) +0 -2
  114. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461 +0 -2
  115. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(1) +0 -2
  116. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(2) +0 -2
  117. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(3) +0 -2
  118. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(4) +0 -2
  119. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(5) +0 -431
  120. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(6) +0 -2
  121. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(7) +0 -431
  122. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(8) +0 -2
  123. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(9) +0 -2
  124. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/Ad0St1Sz6Sq0V0Id20628317.gif +0 -0
  125. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/Ad2331174St1Sz225Sq20825250V0Id4.gif +0 -0
  126. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/AdTracImage.gif +0 -0
  127. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/Default_Size_16_1x1.gif +0 -0
  128. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/FB.Share +0 -9
  129. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/addthis_widget.js +0 -2
  130. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/adlink_5242_1183459_0_154_AdId=2355270;BnId=1;itime=820768810;key=231400148+_database_231400148;link= +0 -11
  131. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/beacon.js +0 -7
  132. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/checkauth.js +0 -18
  133. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/colorbox.css +0 -49
  134. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/convert_data.js +0 -1
  135. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/count(1).js +0 -5
  136. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/count.js +0 -5
  137. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/count.json +0 -1
  138. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/dataflow1.gif +0 -0
  139. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/def.html +0 -126
  140. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/defaults.css +0 -1
  141. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/detect.js +0 -91
  142. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/devtest_left-col-slim.css +0 -30
  143. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/disqus.js +0 -327
  144. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/disqusHints.css +0 -34
  145. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/disqusHints.js +0 -8
  146. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/disqusLoggedOff(1).css +0 -24
  147. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/disqusLoggedOff.css +0 -24
  148. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/dobbs_disqus_logo.gif +0 -0
  149. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/dsqcd10c7f376188a4a2ca3e8fea2c03aeb.css +0 -1
  150. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/dsqcd10c7f376188a4a2ca3e8fea2c03aeb.js +0 -1
  151. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/elqCfg.js +0 -55
  152. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/elqImg.js +0 -12
  153. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/embed.js +0 -76
  154. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/experience_util.js +0 -636
  155. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/fastbutton.html +0 -11
  156. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/ga.js +0 -51
  157. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/h-facebook_sm.png +0 -0
  158. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/h-nav.css +0 -798
  159. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/h-twitter_sm.png +0 -0
  160. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/h_s_code_remote.js +0 -377
  161. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/hintbox_info.jpg +0 -0
  162. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/hub.1326407570.html +0 -3
  163. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/in.js +0 -76
  164. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/insight.min.js +0 -55
  165. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/jquery-1.2.6.min.js +0 -32
  166. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/jquery-1.4.2.min.js +0 -154
  167. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/jquery-ui-1.8rc3.custom.min.js +0 -374
  168. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/jquery.colorbox-min.js +0 -4
  169. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/jquery.min.js +0 -154
  170. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/lib.js +0 -212
  171. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/like.html +0 -214
  172. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/noavatar32.png +0 -0
  173. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/nodetag.js +0 -18
  174. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/nonSecureAnonymousFramework +0 -2913
  175. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/p.json +0 -1
  176. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/plusone.js +0 -32
  177. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/popwindow.js +0 -24
  178. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/q4OyybLB0-A.js +0 -91
  179. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/quant.js +0 -28
  180. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/qxvZoiHdpAF.css +0 -192
  181. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/reply.html +0 -160
  182. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/rss.gif +0 -0
  183. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/s.js +0 -1
  184. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/saved_resource +0 -421
  185. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/saved_resource(1) +0 -1
  186. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/saved_resource(2) +0 -341
  187. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/saved_resource(3) +0 -127
  188. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/script84.js +0 -113
  189. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/scripts.js +0 -30
  190. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/sh72.html +0 -5
  191. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shAutoloader.js +0 -17
  192. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushAS3.js +0 -59
  193. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushAppleScript.js +0 -75
  194. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushBash.js +0 -59
  195. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushCSharp.js +0 -65
  196. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushColdFusion.js +0 -100
  197. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushCpp.js +0 -97
  198. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushCss.js +0 -91
  199. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushDelphi.js +0 -55
  200. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushDiff.js +0 -41
  201. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushErlang.js +0 -52
  202. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushGroovy.js +0 -67
  203. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushJScript.js +0 -52
  204. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushJava.js +0 -57
  205. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushJavaFX.js +0 -58
  206. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushPerl.js +0 -72
  207. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushPhp.js +0 -88
  208. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushPlain.js +0 -33
  209. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushPowerShell.js +0 -74
  210. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushPython.js +0 -64
  211. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushRuby.js +0 -55
  212. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushSass.js +0 -94
  213. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushScala.js +0 -51
  214. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushSql.js +0 -66
  215. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushVb.js +0 -56
  216. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushXml.js +0 -69
  217. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shCore.css +0 -226
  218. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shCoreDefault.css +0 -333
  219. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shCore_new.js +0 -17
  220. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shLegacy.js +0 -17
  221. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shThemeDefault.css +0 -117
  222. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/share-button-css +0 -67
  223. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/share_email_icon.gif +0 -0
  224. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/share_print_icon.gif +0 -0
  225. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/sidebar.js +0 -88
  226. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/superfooter_936.css +0 -186
  227. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/svrGP.aspx +0 -0
  228. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/t.gif +0 -0
  229. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/thickbox.js +0 -343
  230. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/thread.js +0 -128
  231. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/togglediv.js +0 -15
  232. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/tweet_button.html +0 -3
  233. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/ubmtechweb_logo_sm.gif +0 -0
  234. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/upload.html +0 -91
  235. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/welcome.js +0 -7
  236. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/widget74.css +0 -1
  237. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/widgets.js +0 -40
  238. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia.html +0 -904
  239. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/50px-Question_book-new.svg.png +0 -0
  240. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/closewindow.png +0 -0
  241. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/index(1).php +0 -407
  242. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/index.php +0 -130
  243. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(1).php +0 -3
  244. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(10).php +0 -89
  245. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(2).php +0 -23
  246. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(3).php +0 -153
  247. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(4).php +0 -6
  248. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(5).php +0 -3
  249. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(6).php +0 -96
  250. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(7).php +0 -16
  251. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(8).php +0 -14
  252. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(9).php +0 -123
  253. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load.php +0 -3
  254. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/poweredby_mediawiki_88x31.png +0 -0
  255. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/saved_resource +0 -1
  256. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/search-ltr.png +0 -0
  257. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/wikimedia-button.png +0 -0
  258. package/externalDocs/The Step of the Conductor - How To Node - NodeJS.html +0 -113
  259. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/6654_111305815684_541245684_2583159_5383291_n_normal.jpg +0 -0
  260. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/MARC3_normal.jpg +0 -2
  261. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/beacon.js +0 -7
  262. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/c953ddd239707998340e1a6fbb3eeb46 +0 -0
  263. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/c953ddd239707998340e1a6fbb3eeb46_normal.jpeg +0 -0
  264. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/clouds2_normal.jpg +0 -0
  265. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/count.json +0 -1
  266. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/def.html +0 -126
  267. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/defaults.css +0 -1
  268. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/disqus.js +0 -327
  269. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/dsq7884a9652e94555c70f96b6be63be216.css +0 -1
  270. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/dsq7884a9652e94555c70f96b6be63be216.js +0 -66
  271. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/embed.js +0 -76
  272. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/example1.dot +0 -0
  273. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/ga.js +0 -51
  274. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/get_num_replies.js +0 -79
  275. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/hub.1326407570.html +0 -3
  276. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/lib.js +0 -212
  277. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/noavatar32.png +0 -0
  278. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/quant.js +0 -28
  279. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/reply.html +0 -160
  280. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/t.gif +0 -0
  281. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/thread.js +0 -128
  282. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/tweet_button.1326407570.html +0 -3
  283. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/twitter_normal.jpg +0 -2
  284. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/upload.html +0 -91
  285. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/widgets.js +0 -40
  286. package/jake-tasks/jake-test.js +0 -64
  287. package/promise-resolve.js +0 -35
  288. package/react.js +0 -8
  289. package/test/ast.test.js +0 -69
  290. package/test/cb-task.test.js +0 -197
  291. package/test/core-deferred.test.js +0 -134
  292. package/test/core-promised.test.js +0 -132
  293. package/test/core-when.test.js +0 -84
  294. package/test/core.test.js +0 -568
  295. package/test/dsl.test.js +0 -330
  296. package/test/dsl/chain.test.js +0 -324
  297. package/test/dsl/fstr.test.js +0 -300
  298. package/test/dsl/pcode.test.js +0 -448
  299. package/test/event-manager.test.js +0 -102
  300. package/test/exec-options.test.js +0 -33
  301. package/test/finalcb-task.test.js +0 -38
  302. package/test/input-parser.test.js +0 -66
  303. package/test/module-use.test.js +0 -131
  304. package/test/promise-auto-resolve.test.js +0 -51
  305. package/test/ret-task.test.js +0 -199
  306. package/test/task.test.js +0 -21
  307. package/test/validate-cb-task.test.js +0 -74
  308. package/test/validate-ret-task.test.js +0 -83
  309. package/test/validate.test.js +0 -295
  310. package/test/vcon.test.js +0 -173
package/lib/error.js CHANGED
@@ -1,47 +1,55 @@
1
1
  'use strict';
2
+ /*global define:true */
2
3
 
3
- var util = require('util');
4
-
5
- function ensureStackTraceLimitSet(stackTraceLimit) {
6
- if (!Error.stackTraceLimit || Error.stackTraceLimit < stackTraceLimit) {
7
- Error.stackTraceLimit = stackTraceLimit;
8
- }
4
+ if (typeof define !== 'function') {
5
+ var define = require('amdefine')(module);
9
6
  }
10
7
 
11
- function fName(fn) {
12
- if (!fn) return 'undefined';
13
- return (fn && fn.name) ? fn.name : fn;
14
- }
8
+ define(['util'], function (util) {
15
9
 
16
- function formatErrorMeta(err) {
17
- if (!err.meta) return;
18
- var vcon = err.meta.vcon;
19
- var task = err.meta.task;
20
- var errString = '\n\n';
21
- if (task && task.f && task.a) {
22
- errString += ('Error occurs in Task function: ' + fName(task.f) + '(' + task.a.join(',') + ')\n\n');
10
+ function ensureStackTraceLimitSet(stackTraceLimit) {
11
+ if (!Error.stackTraceLimit || Error.stackTraceLimit < stackTraceLimit) {
12
+ Error.stackTraceLimit = stackTraceLimit;
13
+ }
23
14
  }
24
- if (vcon) {
25
- errString += 'Variable Context: \n';
26
- errString += util.inspect(vcon);
27
- errString += '\n\n';
15
+
16
+ function fName(fn) {
17
+ if (!fn) return 'undefined';
18
+ return (fn && fn.name) ? fn.name : fn;
28
19
  }
29
- if (task && task.f) {
30
- errString += 'Task Source:\n\n';
31
- errString += task.f.toString(); //TODO need to pretty print function, gets collapsed
32
- errString += '\n\n';
20
+
21
+ function formatErrorMeta(err) {
22
+ if (!err.meta) return;
23
+ var vcon = err.meta.vcon;
24
+ var task = err.meta.task;
25
+ var errString = '\n\n';
26
+ if (task && task.f && task.a) {
27
+ errString += ('Error occurs in Task function: ' + fName(task.f) + '(' + task.a.join(',') + ')\n\n');
28
+ }
29
+ if (vcon) {
30
+ errString += 'Variable Context: \n';
31
+ errString += util.inspect(vcon);
32
+ errString += '\n\n';
33
+ }
34
+ if (task && task.f) {
35
+ errString += 'Task Source:\n\n';
36
+ errString += task.f.toString(); //TODO need to pretty print function, gets collapsed
37
+ errString += '\n\n';
38
+ }
39
+ return errString;
33
40
  }
34
- return errString;
35
- }
36
41
 
37
- function augmentError(err, meta) {
38
- if (typeof(err) === 'string') { err = new Error(err); } //props will be lost on non-objects
39
- var origMsg = err.toString();
40
- err.meta = meta;
41
- err.toString = function () { return origMsg + formatErrorMeta(err); };
42
- return err;
43
- }
42
+ function augmentError(err, meta) {
43
+ if (typeof(err) === 'string') { err = new Error(err); } //props will be lost on non-objects
44
+ var origMsg = err.toString();
45
+ err.meta = meta;
46
+ err.toString = function () { return origMsg + formatErrorMeta(err); };
47
+ return err;
48
+ }
44
49
 
50
+ return {
51
+ ensureStackTraceLimitSet: ensureStackTraceLimitSet,
52
+ augmentError: augmentError
53
+ };
45
54
 
46
- exports.ensureStackTraceLimitSet = ensureStackTraceLimitSet;
47
- exports.augmentError = augmentError;
55
+ });
@@ -0,0 +1,81 @@
1
+ 'use strict';
2
+ /*global define:true */
3
+
4
+ if (typeof define !== 'function') {
5
+ var define = require('amdefine')(module);
6
+ }
7
+
8
+ define([], function () {
9
+
10
+ /**
11
+ create an instance of the event collector
12
+ */
13
+ function instantiate(react) {
14
+ react.trackTasks(); // enable task tracking
15
+
16
+ var AST_EVENTS_RE = /^ast\./;
17
+ var TASK_EVENTS_RE = /^task\./;
18
+ var FLOW_EVENTS_RE = /^flow\./;
19
+
20
+ /**
21
+ Accumulator to make it easy to capture events
22
+
23
+ @example
24
+ var react = require('react');
25
+ var collector = react.createEventCollector();
26
+ collector.capture(); // capture all flow and task events for all react flows
27
+ collector.capture('flow.*'); // capture all flow events for all react flows
28
+ collector.capture(flowFn, 'task.*'); // capture task events on a flow
29
+ collector.capture(flowFn, 'flow.*'); // add capture flow events on a flow
30
+ var events = collector.list(); // retrieve the list of events
31
+ collector.clear(); // clear the list of events;
32
+ */
33
+ function EventCollector() {
34
+ this.events = [];
35
+ }
36
+
37
+ /**
38
+ register listener to capture events for a specific flow
39
+ @param flowFn the react flow function or can pass global react
40
+ @param eventId event id or wildcarded id
41
+ */
42
+ EventCollector.prototype.capture = function (flowFn, eventId) {
43
+ /*jshint validthis: true */
44
+ if (!eventId && typeof(flowFn) === 'string') { // only eventId provided
45
+ eventId = flowFn;
46
+ flowFn = react; // global react
47
+ } else if (!flowFn) flowFn = react; // global react
48
+ if (!eventId) eventId = '*'; // default to all
49
+ var emitter = flowFn.events;
50
+ var self = this;
51
+ function accumEvents(obj) {
52
+ var eventObject = {
53
+ event: this.event,
54
+ time: Date.now()
55
+ };
56
+ if (FLOW_EVENTS_RE.test(this.event)) {
57
+ eventObject.env = obj;
58
+ } else if (TASK_EVENTS_RE.test(this.event)) {
59
+ eventObject.task = obj;
60
+ } else if (AST_EVENTS_RE.test(this.event)) {
61
+ eventObject.ast = obj;
62
+ }
63
+ self.events.push(eventObject);
64
+ }
65
+ emitter.on(eventId, accumEvents);
66
+ };
67
+
68
+ EventCollector.prototype.list = function () {
69
+ return this.events;
70
+ };
71
+
72
+ EventCollector.prototype.clear = function () {
73
+ this.events = []; // clear
74
+ };
75
+
76
+ return new EventCollector();
77
+ }
78
+
79
+ return instantiate; // return the factory for creating EventCollector
80
+
81
+ });
@@ -1,71 +1,82 @@
1
1
  'use strict';
2
+ /*global define:true process:false*/
2
3
 
3
- var EventEmitter2 = require('eventemitter2').EventEmitter2;
4
+ if (typeof define !== 'function') {
5
+ var define = require('amdefine')(module);
6
+ }
7
+
8
+ define(['./eventemitter'], function (EventEmitter) {
4
9
 
5
- var EVENT_EMITTER2_CONFIG = {
6
- wildcard: true, // should the event emitter use wildcards.
7
- delimiter: '.', // the delimiter used to segment namespaces, defaults to `.`.
8
- maxListeners: 30 // the max number of listeners that can be assigned to an event, defaults to 10.
9
- };
10
+ var EVENT_EMITTER2_CONFIG = {
11
+ wildcard: true, // should the event emitter use wildcards.
12
+ delimiter: '.', // the delimiter used to segment namespaces, defaults to `.`.
13
+ maxListeners: 30 // the max number of listeners that can be assigned to an event, defaults to 10.
14
+ };
10
15
 
11
- var TYPES = {
12
- // Flow monitoring events and their params
13
- FLOW_BEGIN: 'flow.begin', // env
14
- TASK_BEGIN: 'task.begin', // task
15
- TASK_COMPLETE: 'task.complete', // task
16
- TASK_ERRORED: 'task.errored', // task
17
- FLOW_COMPLETE: 'flow.complete', // env
18
- FLOW_ERRORED: 'flow.errored', // env
16
+ var PASS_EVENTS_PROCESS_RE = /^ast.defined$/; // events to pass up to global process
19
17
 
20
- // Internal Hooks
21
- EXEC_FLOW_START: 'exec.flow.start', // env
22
- EXEC_INPUT_PREPROCESS: 'exec.input.preprocess', // parsedInput
23
- EXEC_TASKS_PRECREATE: 'exec.tasks.precreate', // env
24
- EXEC_OUTTASK_CREATE: 'exec.outTask.create', // outTaskOptions
25
- EXEC_TASK_START: 'exec.task.start', // task
26
- EXEC_TASK_COMPLETE: 'exec.task.complete', // task
27
- EXEC_TASK_ERRORED: 'exec.task.errored', // task
28
- EXEC_FLOW_COMPLETE: 'exec.flow.complete', // env
29
- EXEC_FLOW_ERRORED: 'exec.flow.errored' // env
30
- };
18
+ var TYPES = {
19
+ // Flow monitoring events and their params
20
+ AST_DEFINED: 'ast.defined', // ast
21
+ FLOW_BEGIN: 'flow.begin', // env
22
+ TASK_BEGIN: 'task.begin', // task
23
+ TASK_COMPLETE: 'task.complete', // task
24
+ TASK_ERRORED: 'task.errored', // task
25
+ FLOW_COMPLETE: 'flow.complete', // env
26
+ FLOW_ERRORED: 'flow.errored', // env
31
27
 
32
- /**
33
- Event manager which emits events up to its parent if exists.
34
- Allows a hierarchy of emitters, which communicate up the
35
- chain.
28
+ // Internal Hooks
29
+ EXEC_FLOW_START: 'exec.flow.start', // env
30
+ EXEC_INPUT_PREPROCESS: 'exec.input.preprocess', // parsedInput
31
+ EXEC_TASKS_PRECREATE: 'exec.tasks.precreate', // env
32
+ EXEC_OUTTASK_CREATE: 'exec.outTask.create', // outTaskOptions
33
+ EXEC_TASK_START: 'exec.task.start', // task
34
+ EXEC_TASK_COMPLETE: 'exec.task.complete', // task
35
+ EXEC_TASK_ERRORED: 'exec.task.errored', // task
36
+ EXEC_FLOW_COMPLETE: 'exec.flow.complete', // env
37
+ EXEC_FLOW_ERRORED: 'exec.flow.errored' // env
38
+ };
39
+
40
+ /**
41
+ Event manager which emits events up to its parent if exists.
42
+ Allows a hierarchy of emitters, which communicate up the
43
+ chain.
36
44
  */
37
- function EventManager() {
38
- }
45
+ function EventManager() {
46
+ }
39
47
 
40
- EventManager.create = function () { return new EventManager(); };
48
+ EventManager.create = function () { return new EventManager(); };
41
49
 
42
- EventManager.TYPES = TYPES;
43
- EventManager.prototype.TYPES = TYPES;
50
+ EventManager.TYPES = TYPES;
51
+ EventManager.prototype.TYPES = TYPES;
44
52
 
45
- EventManager.prototype.isEnabled = function () { // if has listener or an ancestor has listener
46
- return (this.emitter || (this.parent && this.parent.isEnabled()));
47
- };
53
+ EventManager.prototype.isEnabled = function () { // if has listener or an ancestor has listener
54
+ return !!(this.emitter || (this.parent && this.parent.isEnabled()));
55
+ };
48
56
 
49
- /**
50
- Add listener. Wildcard events are allowed like 'foo.*'
51
- Use '*' to listen to any event
57
+ /**
58
+ Add listener. Wildcard events are allowed like 'foo.*'
59
+ Use '*' to listen to any event
52
60
  */
53
- EventManager.prototype.on = function (event, listener) {
54
- if (!this.emitter) this.emitter = new EventEmitter2(EVENT_EMITTER2_CONFIG);
55
- if (event === '*') this.emitter.onAny(listener);
56
- else this.emitter.on(event, listener);
57
- };
61
+ EventManager.prototype.on = function (event, listener) {
62
+ if (!this.emitter) this.emitter = new EventEmitter(EVENT_EMITTER2_CONFIG);
63
+ if (event === '*') this.emitter.onAny(listener);
64
+ else this.emitter.on(event, listener);
65
+ };
58
66
 
59
- EventManager.prototype.emit = function (event, arg1, arg2, argN) {
60
- if (event === undefined) throw new Error('event is undefined');
61
- if (this.emitter) this.emitter.emit.apply(this.emitter, arguments);
62
- if (this.parent && this.parent.isEnabled()) this.parent.emit.apply(this.parent, arguments);
63
- };
67
+ EventManager.prototype.emit = function (event, arg1, arg2, argN) {
68
+ if (event === undefined) throw new Error('event is undefined');
69
+ if (this.emitter) this.emitter.emit.apply(this.emitter, arguments);
70
+ if (this.parent && this.parent.isEnabled()) this.parent.emit.apply(this.parent, arguments);
71
+ if (PASS_EVENTS_PROCESS_RE.test(event) && process && process.emit) process.emit.apply(process, arguments); // pass some to process
72
+ };
64
73
 
65
- EventManager.prototype.removeListener = function (event, listener) {
66
- if (this.emitter) this.emitter.removeListener.apply(this.emitter, arguments);
67
- };
74
+ EventManager.prototype.removeListener = function (event, listener) {
75
+ if (this.emitter) this.emitter.removeListener.apply(this.emitter, arguments);
76
+ };
68
77
 
69
78
 
70
- module.exports = EventManager;
71
- module.exports.global = EventManager.create(); // create one top level emitter
79
+ EventManager.global = EventManager.create(); // create one top level emitter
80
+ return EventManager;
81
+
82
+ });
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+ /*global define:true EventEmitter2:true */
3
+
4
+ if (typeof define !== 'function') {
5
+ var define = require('amdefine')(module);
6
+ }
7
+
8
+ define(['eventemitter2'], function (EventEmitterMod) {
9
+
10
+ /**
11
+ Abstract the details of getting an EventEmitter
12
+ */
13
+
14
+ // EventEmitter doesn't return itself in browser so need to get the global
15
+ // EventEmitter api changed, so accomodate which ever version is available
16
+ var EventEmitter = (EventEmitterMod) ?
17
+ ((EventEmitterMod.EventEmitter2) ? EventEmitterMod.EventEmitter2 : EventEmitterMod) : EventEmitter2;
18
+ return EventEmitter;
19
+
20
+ });
@@ -1,65 +1,68 @@
1
1
  'use strict';
2
+ /*global define:true */
2
3
 
3
- var sprintf = require('sprintf').sprintf;
4
- var util = require('util');
4
+ if (typeof define !== 'function') {
5
+ var define = require('amdefine')(module);
6
+ }
5
7
 
6
- var STATUS = require('./status.js');
7
- var VContext = require('./vcon.js');
8
- var EventManager = require('./event-manager.js');
8
+ define(['./sprintf', 'util', './status', './vcon', './event-manager'],
9
+ function (sprintf, util, STATUS, VContext, EventManager) {
9
10
 
10
- var OUTTASK_A_REQ = 'ast.outTask.a should be an array of string param names';
11
+ var OUTTASK_A_REQ = 'ast.outTask.a should be an array of string param names';
11
12
 
12
- function FinalCbFirstSuccTask(outTaskOptions) {
13
- var taskDef = outTaskOptions.taskDef;
14
- if (typeof(outTaskOptions.cbFunc) !== 'function') throw new Error('callback is not a function');
15
- var self = this;
16
- for (var k in taskDef) {
17
- if (true) self[k] = taskDef[k]; // if to make jshint happy
13
+ function FinalCbFirstSuccTask(outTaskOptions) {
14
+ var taskDef = outTaskOptions.taskDef;
15
+ if (typeof(outTaskOptions.cbFunc) !== 'function') throw new Error('callback is not a function');
16
+ var self = this;
17
+ for (var k in taskDef) {
18
+ if (true) self[k] = taskDef[k]; // if to make jshint happy
19
+ }
20
+ this.f = outTaskOptions.cbFunc;
21
+ this.tasks = outTaskOptions.tasks;
22
+ this.vCon = outTaskOptions.vCon;
23
+ this.retValue = outTaskOptions.retValue;
24
+ this.env = outTaskOptions.env;
18
25
  }
19
- this.f = outTaskOptions.cbFunc;
20
- this.tasks = outTaskOptions.tasks;
21
- this.vCon = outTaskOptions.vCon;
22
- this.retValue = outTaskOptions.retValue;
23
- this.env = outTaskOptions.env;
24
- }
25
-
26
- function format_error(errmsg, obj) {
27
- return sprintf('%s - %s', errmsg, util.inspect(obj));
28
- }
29
26
 
30
- FinalCbFirstSuccTask.validate = function (taskDef) {
31
- var errors = [];
32
- if (! (Array.isArray(taskDef.a) &&
33
- taskDef.a.every(function (x) { return (typeof(x) === 'string'); }))) {
34
- errors.push(format_error(OUTTASK_A_REQ, taskDef));
27
+ function format_error(errmsg, obj) {
28
+ return sprintf('%s - %s', errmsg, util.inspect(obj));
35
29
  }
36
- return errors;
37
- };
38
30
 
39
- /**
40
- is ready to exit when any task comes back with non-null defined value
31
+ FinalCbFirstSuccTask.validate = function (taskDef) {
32
+ var errors = [];
33
+ if (! (Array.isArray(taskDef.a) &&
34
+ taskDef.a.every(function (x) { return (typeof(x) === 'string'); }))) {
35
+ errors.push(format_error(OUTTASK_A_REQ, taskDef));
36
+ }
37
+ return errors;
38
+ };
39
+
40
+ /**
41
+ is ready to exit when any task comes back with non-null defined value
41
42
  */
42
- FinalCbFirstSuccTask.prototype.isReady = function () {
43
- var lastres = this.vCon.getLastResults();
44
- if (!lastres) return false; // no results yet
45
- return (lastres.some(function (v) { return (v !== undefined && v !== null); }));
46
- };
43
+ FinalCbFirstSuccTask.prototype.isReady = function () {
44
+ var lastres = this.vCon.getLastResults();
45
+ if (!lastres) return false; // no results yet
46
+ return (lastres.some(function (v) { return (v !== undefined && v !== null); }));
47
+ };
47
48
 
48
- FinalCbFirstSuccTask.prototype.exec = function (err) {
49
- if (!this.f) return; //must have already been called
50
- if (err) {
51
- this.env.error = err;
52
- this.env.flowEmitter.emit(EventManager.TYPES.EXEC_FLOW_ERRORED, this.env);
53
- this.f.call(null, err); //call the final callback with the first error hit
54
- } else { // no error, call with args
55
- var vCon = this.vCon;
56
- var finalArgs = this.a.map(function (k) { return vCon.getVar(k); });
57
- finalArgs.unshift(null); //unshift err=null to front
58
- this.env.results = finalArgs;
59
- this.env.flowEmitter.emit(EventManager.TYPES.EXEC_FLOW_COMPLETE, this.env);
60
- this.f.apply(null, finalArgs);
61
- }
62
- this.f = null; // prevent multiple calls
63
- };
49
+ FinalCbFirstSuccTask.prototype.exec = function (err) {
50
+ if (!this.f) return; //must have already been called
51
+ if (err) {
52
+ this.env.error = err;
53
+ this.env.flowEmitter.emit(EventManager.TYPES.EXEC_FLOW_ERRORED, this.env);
54
+ this.f.call(null, err); //call the final callback with the first error hit
55
+ } else { // no error, call with args
56
+ var vCon = this.vCon;
57
+ var finalArgs = this.a.map(function (k) { return vCon.getVar(k); });
58
+ finalArgs.unshift(null); //unshift err=null to front
59
+ this.env.results = finalArgs;
60
+ this.env.flowEmitter.emit(EventManager.TYPES.EXEC_FLOW_COMPLETE, this.env);
61
+ this.f.apply(null, finalArgs);
62
+ }
63
+ this.f = null; // prevent multiple calls
64
+ };
65
+
66
+ return FinalCbFirstSuccTask;
64
67
 
65
- module.exports = FinalCbFirstSuccTask;
68
+ });