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
@@ -1,61 +1,65 @@
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 EventManager = require('./event-manager.js');
8
+ define(['./sprintf', 'util', './status', './event-manager'],
9
+ function (sprintf, util, STATUS, EventManager) {
8
10
 
9
- 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';
10
12
 
11
- function FinalCbTask(outTaskOptions) {
12
- var taskDef = outTaskOptions.taskDef;
13
- if (typeof(outTaskOptions.cbFunc) !== 'function') throw new Error('callback is not a function');
14
- var self = this;
15
- for (var k in taskDef) {
16
- if (true) self[k] = taskDef[k]; // if to make jshint happy
13
+ function FinalCbTask(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.execOptions = outTaskOptions.execOptions;
25
+ this.env = outTaskOptions.env;
17
26
  }
18
- this.f = outTaskOptions.cbFunc;
19
- this.tasks = outTaskOptions.tasks;
20
- this.vCon = outTaskOptions.vCon;
21
- this.retValue = outTaskOptions.retValue;
22
- this.execOptions = outTaskOptions.execOptions;
23
- this.env = outTaskOptions.env;
24
- }
25
27
 
26
- function format_error(errmsg, obj) {
27
- return sprintf('%s - %s', errmsg, util.inspect(obj));
28
- }
28
+ function format_error(errmsg, obj) {
29
+ return sprintf('%s - %s', errmsg, util.inspect(obj));
30
+ }
29
31
 
30
32
 
31
- FinalCbTask.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
- FinalCbTask.prototype.isReady = function () {
41
- return (this.tasks.every(function (t) { return (t.status === STATUS.COMPLETE); }));
42
- };
43
-
44
- FinalCbTask.prototype.exec = function (err) {
45
- if (!this.f) return; //must have already been called
46
- if (err) {
47
- this.env.error = err;
48
- this.env.flowEmitter.emit(EventManager.TYPES.EXEC_FLOW_ERRORED, this.env);
49
- this.f.call(null, err); //call the final callback with the first error hit
50
- } else { // no error, call with args
51
- var vCon = this.vCon;
52
- var finalArgs = this.a.map(function (k) { return vCon.getVar(k); });
53
- finalArgs.unshift(null); //unshift err=null to front
54
- this.env.results = finalArgs;
55
- this.env.flowEmitter.emit(EventManager.TYPES.EXEC_FLOW_COMPLETE, this.env);
56
- this.f.apply(null, finalArgs);
57
- }
58
- this.f = null; // prevent multiple calls
59
- };
33
+ FinalCbTask.validate = function (taskDef) {
34
+ var errors = [];
35
+ if (! (Array.isArray(taskDef.a) &&
36
+ taskDef.a.every(function (x) { return (typeof(x) === 'string'); }))) {
37
+ errors.push(format_error(OUTTASK_A_REQ, taskDef));
38
+ }
39
+ return errors;
40
+ };
41
+
42
+ FinalCbTask.prototype.isReady = function () {
43
+ return (this.tasks.every(function (t) { return (t.status === STATUS.COMPLETE); }));
44
+ };
45
+
46
+ FinalCbTask.prototype.exec = function (err) {
47
+ if (!this.f) return; //must have already been called
48
+ if (err) {
49
+ this.env.error = err;
50
+ this.env.flowEmitter.emit(EventManager.TYPES.EXEC_FLOW_ERRORED, this.env);
51
+ this.f.call(null, err); //call the final callback with the first error hit
52
+ } else { // no error, call with args
53
+ var vCon = this.vCon;
54
+ var finalArgs = this.a.map(function (k) { return vCon.getVar(k); });
55
+ finalArgs.unshift(null); //unshift err=null to front
56
+ this.env.results = finalArgs;
57
+ this.env.flowEmitter.emit(EventManager.TYPES.EXEC_FLOW_COMPLETE, this.env);
58
+ this.f.apply(null, finalArgs);
59
+ }
60
+ this.f = null; // prevent multiple calls
61
+ };
62
+
63
+ return FinalCbTask;
60
64
 
61
- module.exports = FinalCbTask;
65
+ });
package/lib/id.js CHANGED
@@ -1,10 +1,22 @@
1
1
  'use strict';
2
+ /*global define:true */
2
3
 
3
- var startingId = 0;
4
-
5
- function createUniqueId() {
6
- startingId += 1;
7
- return startingId;
4
+ if (typeof define !== 'function') {
5
+ var define = require('amdefine')(module);
8
6
  }
9
7
 
10
- exports.createUniqueId = createUniqueId;
8
+ define([], function () {
9
+
10
+ var startingId = 0;
11
+
12
+ function createUniqueId() {
13
+ startingId += 1;
14
+ if (startingId === Number.MAX_VALUE) startingId = 0; // if hits this start over //TODO need something better?
15
+ return startingId;
16
+ }
17
+
18
+ return {
19
+ createUniqueId: createUniqueId
20
+ };
21
+
22
+ });
@@ -1,48 +1,56 @@
1
1
  'use strict';
2
+ /*global define:true */
2
3
 
3
- var EventManager = require('./event-manager.js');
4
+ if (typeof define !== 'function') {
5
+ var define = require('amdefine')(module);
6
+ }
4
7
 
5
- var defaultExecOptions = {
6
- reactExecOptions: true,
7
- outputStyle: 'cb',
8
- };
8
+ define(['./event-manager'], function (EventManager) {
9
9
 
10
- var OUTPUT_STYLES = {
11
- CALLBACK: 'cb',
12
- NONE: 'none'
13
- };
10
+ var defaultExecOptions = {
11
+ reactExecOptions: true,
12
+ outputStyle: 'cb',
13
+ };
14
14
 
15
- function isExecOptions(x) { return (x && x.reactExecOptions); }
16
- function execOptionsFilter(x) { return isExecOptions(x); }
17
- function nonExecOptionsFilter(x) { return !isExecOptions(x); }
18
- function mergeExecOptions(accum, options) {
19
- Object.keys(options).forEach(function (k) { accum[k] = options[k]; });
20
- return accum;
21
- }
15
+ var OUTPUT_STYLES = {
16
+ CALLBACK: 'cb',
17
+ NONE: 'none'
18
+ };
22
19
 
23
- function splitArgs(args, inParams, style) {
24
- var result = { };
25
- result.args = inParams.map(function (p) { return args.shift(); }); // take args for input params first
26
- if (style === OUTPUT_STYLES.CALLBACK && args.length) result.cb = args.shift(); // next take the cb
27
- result.extra = args; // these remaining were after the callback
28
- return result;
29
- }
30
-
31
- function inputParser(inputArgs, ast) {
32
- var parsedInput = { };
33
- var execOptionsArr = inputArgs.filter(execOptionsFilter);
34
- execOptionsArr.unshift(defaultExecOptions);
35
- parsedInput.options = execOptionsArr.reduce(mergeExecOptions, {});
36
-
37
- var args = inputArgs.filter(nonExecOptionsFilter);
38
- var splitResult = splitArgs(args, ast.inParams, parsedInput.options.outputStyle);
39
- parsedInput.args = splitResult.args;
40
- parsedInput.cb = splitResult.cb;
41
- if (splitResult.outputStyle) parsedInput.options.outputStyle = splitResult.outputStyle;
42
- if (splitResult.extra) parsedInput.extraArgs = splitResult.extra;
43
- EventManager.global.emit(EventManager.TYPES.EXEC_INPUT_PREPROCESS, parsedInput); // hook
44
- return parsedInput;
45
- }
20
+ function isExecOptions(x) { return (x && x.reactExecOptions); }
21
+ function execOptionsFilter(x) { return isExecOptions(x); }
22
+ function nonExecOptionsFilter(x) { return !isExecOptions(x); }
23
+ function mergeExecOptions(accum, options) {
24
+ Object.keys(options).forEach(function (k) { accum[k] = options[k]; });
25
+ return accum;
26
+ }
27
+
28
+ function splitArgs(args, inParams, style) {
29
+ var result = { };
30
+ result.args = inParams.map(function (p) { return args.shift(); }); // take args for input params first
31
+ if (style === OUTPUT_STYLES.CALLBACK && args.length) result.cb = args.shift(); // next take the cb
32
+ result.extra = args; // these remaining were after the callback
33
+ return result;
34
+ }
35
+
36
+ function inputParser(inputArgs, ast) {
37
+ var parsedInput = { };
38
+ var execOptionsArr = inputArgs.filter(execOptionsFilter);
39
+ execOptionsArr.unshift(defaultExecOptions);
40
+ parsedInput.options = execOptionsArr.reduce(mergeExecOptions, {});
41
+
42
+ var args = inputArgs.filter(nonExecOptionsFilter);
43
+ var splitResult = splitArgs(args, ast.inParams, parsedInput.options.outputStyle);
44
+ parsedInput.args = splitResult.args;
45
+ parsedInput.cb = splitResult.cb;
46
+ if (splitResult.outputStyle) parsedInput.options.outputStyle = splitResult.outputStyle;
47
+ if (splitResult.extra) parsedInput.extraArgs = splitResult.extra;
48
+ EventManager.global.emit(EventManager.TYPES.EXEC_INPUT_PREPROCESS, parsedInput); // hook
49
+ return parsedInput;
50
+ }
51
+
52
+
53
+ inputParser.defaultExecOptions = defaultExecOptions;
54
+ return inputParser;
46
55
 
47
- module.exports = inputParser;
48
- module.exports.defaultExecOptions = defaultExecOptions;
56
+ });
package/lib/log-events.js CHANGED
@@ -1,71 +1,92 @@
1
1
  'use strict';
2
+ /*global define:true */
2
3
 
3
- /**
4
- Log events to console.error
4
+ if (typeof define !== 'function') {
5
+ var define = require('amdefine')(module);
6
+ }
5
7
 
6
- @example
7
- var react = require('react');
8
- require('react/lib/log-events').logEvent(react);
9
- */
8
+ define(['util'], function (util) { // TODO replace util.inspect with something portable to browser
10
9
 
11
- var react = require('../lib/track-tasks'); // require('react/lib/track-tasks'); // turn on tracking
10
+ var logEventsMod = { };
11
+
12
+ /**
13
+ Log events to console.error
12
14
 
13
- var ALL_FLOW_EVENTS = 'flow.*';
14
- var ALL_TASK_EVENTS = 'task.*';
15
+ @example
16
+ var react = require('react');
17
+ react.logEvents(); // log all task and flow events on all react functions
18
+ react.logEvents('task.*'); // log all task events on all react functions
19
+ react.logEvents(flowFn); // log all task and flow events on flowFn only
20
+ react.logEvents(flowFn, 'flow.*'); // log all flow events on flowFn only
21
+ */
15
22
 
16
- function flowLog(obj) {
17
- /*jshint validthis: true */
18
- var time = new Date();
19
- time.setTime(obj.time);
20
- var argsNoCb = obj.args.filter(function (a) { return (typeof(a) !== 'function'); });
21
- var eventTimeStr = time.toISOString();
22
- if (this.event === 'flow.complete') {
23
- var env = obj;
24
- console.error('%s: %s \tmsecs:(%s) \n\targs:(%s) \n\tresults:(%s)\n',
25
- this.event, env.name, env.elapsedTime, argsNoCb, env.results);
26
- } else {
27
- var name = obj.name;
28
- var args = obj.args;
29
- console.error('%s: %s \n\targs:(%s)\n', this.event, name, argsNoCb);
30
- }
31
- }
23
+ var ALL_FLOW_EVENTS = 'flow.*';
24
+ var ALL_TASK_EVENTS = 'task.*';
25
+ var FLOW_RE = /^flow\./;
32
26
 
33
- function taskLog(obj) {
34
- /*jshint validthis: true */
35
- var time = new Date();
36
- time.setTime(obj.time);
37
- var argsNoCb = obj.args.filter(function (a) { return (typeof(a) !== 'function'); });
38
- var eventTimeStr = time.toISOString();
39
- if (this.event === 'task.complete') {
40
- var task = obj;
41
- console.error('%s: %s \tmsecs:(%s) \n\targs:(%s) \n\tresults:(%s)\n',
42
- this.event, task.name, task.elapsedTime, argsNoCb, task.results);
43
- } else {
44
- var name = obj.name;
45
- var args = obj.args;
46
- console.error('%s: %s \n\targs:(%s)\n', this.event, name, argsNoCb);
27
+ function flowLog(obj) {
28
+ /*jshint validthis: true */
29
+ var time = new Date();
30
+ time.setTime(obj.time);
31
+ var argsNoCb = obj.args.filter(function (a) { return (typeof(a) !== 'function'); });
32
+ var eventTimeStr = time.toISOString();
33
+ if (this.event === 'flow.complete') {
34
+ var env = obj;
35
+ console.error('%s: %s \tmsecs: %s \n\targs: %s \n\tresults: %s\n',
36
+ this.event, env.name, env.elapsedTime, util.inspect(argsNoCb), util.inspect(env.results));
37
+ } else {
38
+ var name = obj.name;
39
+ var args = obj.args;
40
+ console.error('%s: %s \n\targs: %s\n', this.event, name, util.inspect(argsNoCb));
41
+ }
47
42
  }
48
-
49
- }
50
43
 
51
- /**
52
- Log flow and task events for a flowFn or all of react.
53
- If called multiple times, remove previous listener (if any) before
54
- adding.
55
-
56
- @example
57
- var react = require('react');
58
- require('react/lib/log-events').logEvents(flowFn); // pass flowFn or react
59
-
60
- @param flowFn Flow function or global react object
44
+ function taskLog(obj) {
45
+ /*jshint validthis: true */
46
+ var time = new Date();
47
+ time.setTime(obj.time);
48
+ var argsNoCb = obj.args.filter(function (a) { return (typeof(a) !== 'function'); });
49
+ var eventTimeStr = time.toISOString();
50
+ if (this.event === 'task.complete') {
51
+ var task = obj;
52
+ console.error('%s: %s:%s \tmsecs: %s \n\targs: %s \n\tresults: %s\n',
53
+ this.event, task.env.name, task.name, task.elapsedTime, util.inspect(argsNoCb), util.inspect(task.results));
54
+ } else {
55
+ var name = obj.name;
56
+ var args = obj.args;
57
+ console.error('%s: %s:%s \n\targs: %s\n', this.event, obj.env.name, obj.name, util.inspect(argsNoCb));
58
+ }
59
+
60
+ }
61
+
62
+ /**
63
+ Log flow and task events for a flowFn or all of react.
64
+ If called multiple times, remove previous listener (if any) before
65
+ adding.
66
+
67
+ @example
68
+ var react = require('react');
69
+ react.logEvents(flowFn, eventWildcard); //log events on flowfn matching wildcard
70
+
71
+ @param flowFn Flow function or global react object
72
+ @param eventWildcard wildcarded event type, if not provided use flow.* and task.*
61
73
  */
62
- function logEvents(flowFn) {
63
- //output events as tasks start and complete
64
- flowFn.events.removeListener(ALL_FLOW_EVENTS, flowLog);
65
- flowFn.events.on(ALL_FLOW_EVENTS, flowLog);
66
- flowFn.events.removeListener(ALL_TASK_EVENTS, taskLog);
67
- flowFn.events.on(ALL_TASK_EVENTS, taskLog);
68
- }
74
+ function logEvents(flowFn, eventWildcard) {
75
+ if (!flowFn) throw new Error('flowFn is required');
76
+ if (eventWildcard && eventWildcard !== '*') {
77
+ var logFn = (FLOW_RE.test(eventWildcard)) ? flowLog : taskLog;
78
+ flowFn.events.removeListener(eventWildcard, logFn);
79
+ flowFn.events.on(eventWildcard, logFn);
80
+ } else { // none provided, use flow.* and task.*
81
+ //output events as tasks start and complete
82
+ flowFn.events.removeListener(ALL_FLOW_EVENTS, flowLog);
83
+ flowFn.events.on(ALL_FLOW_EVENTS, flowLog);
84
+ flowFn.events.removeListener(ALL_TASK_EVENTS, taskLog);
85
+ flowFn.events.on(ALL_TASK_EVENTS, taskLog);
86
+ }
87
+ }
88
+
89
+ logEventsMod.logEvents = logEvents;
90
+ return logEventsMod;
69
91
 
70
- module.exports = react;
71
- module.exports.logEvents = logEvents;
92
+ });
package/lib/parse.js CHANGED
@@ -1,32 +1,41 @@
1
1
  'use strict';
2
+ /*global define:true */
2
3
 
3
- var sprintf = require('sprintf').sprintf;
4
-
5
- function splitTrimFilterArgs(commaSepArgs) { //parse 'one, two' into ['one', 'two']
6
- if (!commaSepArgs) return [];
7
- return commaSepArgs.split(',') //split on commas
8
- .map(function (s) { return s.trim(); }) //trim
9
- .filter(function (s) { return (s); }); //filter out empty strings
4
+ if (typeof define !== 'function') {
5
+ var define = require('amdefine')(module);
10
6
  }
11
7
 
12
- /**
13
- @param patternFn regex + fn or splitStr + fn
8
+ define(['./sprintf'], function (sprintf) {
9
+
10
+ function splitTrimFilterArgs(commaSepArgs) { //parse 'one, two' into ['one', 'two']
11
+ if (!commaSepArgs) return [];
12
+ return commaSepArgs.split(',') //split on commas
13
+ .map(function (s) { return s.trim(); }) //trim
14
+ .filter(function (s) { return (s); }); //filter out empty strings
15
+ }
16
+
17
+ /**
18
+ @param patternFn regex + fn or splitStr + fn
14
19
  */
15
- function parseReduce(accum, patternFn) {
16
- if (typeof(accum) !== 'string') return accum; // already matched
17
- var m = (patternFn.regex) ? patternFn.regex.exec(accum) : accum.split(patternFn.splitStr);
18
- if (m) return patternFn.fn(m, accum); // pass in matches and origStr, return result obj
19
- return accum; // no match, return str, will try next matcher
20
- }
20
+ function parseReduce(accum, patternFn) {
21
+ if (typeof(accum) !== 'string') return accum; // already matched
22
+ var m = (patternFn.regex) ? patternFn.regex.exec(accum) : accum.split(patternFn.splitStr);
23
+ if (m) return patternFn.fn(m, accum); // pass in matches and origStr, return result obj
24
+ return accum; // no match, return str, will try next matcher
25
+ }
21
26
 
22
- function parseStr(str, parseMatchers, errStr) {
23
- var result = parseMatchers.reduce(parseReduce, str);
24
- if (typeof(result) !== 'string') { // matched
25
- return result;
26
- } else { // no match
27
- throw new Error(sprintf(errStr, str));
28
- }
29
- }
27
+ function parseStr(str, parseMatchers, errStr) {
28
+ var result = parseMatchers.reduce(parseReduce, str);
29
+ if (typeof(result) !== 'string') { // matched
30
+ return result;
31
+ } else { // no match
32
+ throw new Error(sprintf(errStr, str));
33
+ }
34
+ }
35
+
36
+ return {
37
+ splitTrimFilterArgs: splitTrimFilterArgs,
38
+ parseStr: parseStr
39
+ };
30
40
 
31
- exports.splitTrimFilterArgs = splitTrimFilterArgs;
32
- exports.parseStr = parseStr;
41
+ });