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,102 +0,0 @@
1
- 'use strict';
2
-
3
- var test = require('tap').test;
4
-
5
- var EventManager = require('../lib/event-manager.js');
6
-
7
- test('Event Manager is disabled by default', function (t) {
8
- var em = EventManager.create();
9
- t.notOk(em.isEnabled(), 'should be falsey by default');
10
- t.end();
11
- });
12
-
13
- test('Event Manager enabled when a listener if registered', function (t) {
14
- var em = EventManager.create();
15
- em.on('foo', function () { });
16
- t.ok(em.isEnabled(), 'should be truthy');
17
- t.end();
18
- });
19
-
20
- test('Event Manager emits events', function (t) {
21
- t.plan(1);
22
- var em = EventManager.create();
23
- em.on('foo', function (data) {
24
- t.equal(data, 'hello');
25
- t.end();
26
- });
27
- em.emit('foo', 'hello');
28
- });
29
-
30
- test('Event Manager emits events, wildcarded listener', function (t) {
31
- t.plan(1);
32
- var em = EventManager.create();
33
- em.on('foo.*', function (data) {
34
- t.equal(data, 'hello-world');
35
- t.end();
36
- });
37
- em.emit('foo.bar', 'hello-world');
38
- });
39
-
40
- test('Event Manager emits events, all wildcarded listener', function (t) {
41
- t.plan(1);
42
- var em = EventManager.create();
43
- em.on('*', function (data) {
44
- t.equal(data, 'hello-world');
45
- t.end();
46
- });
47
- em.emit('foo.bar', 'hello-world');
48
- });
49
-
50
- test('Event Manager emits event with three args', function (t) {
51
- t.plan(3);
52
- var em = EventManager.create();
53
- em.on('foo', function (data, data2, data3) {
54
- t.equal(data, 'hello');
55
- t.equal(data2, 'world');
56
- t.equal(data3, 100);
57
- t.end();
58
- });
59
- em.emit('foo', 'hello', 'world', 100);
60
- });
61
-
62
- test('Event Manager with a parentListener will receive events', function (t) {
63
- t.plan(1);
64
- var parentEm = EventManager.create();
65
- var em = EventManager.create();
66
- em.parent = parentEm;
67
- parentEm.on('foo', function (data) {
68
- t.equal(data, 'world');
69
- t.end();
70
- });
71
- em.emit('foo', 'world');
72
- });
73
-
74
- test('Event Manager w/listening grandparent will receive events', function (t) {
75
- t.plan(1);
76
- var grandEm = EventManager.create();
77
- var parentEm = EventManager.create();
78
- parentEm.parent = grandEm;
79
- var em = EventManager.create();
80
- em.parent = parentEm;
81
- grandEm.on('foo', function (data) {
82
- t.equal(data, 'world');
83
- t.end();
84
- });
85
- em.emit('foo', 'world');
86
- });
87
-
88
- test('Event Manager all parents w/listeners will receive events', function (t) {
89
- t.plan(3);
90
- var grandEm = EventManager.create();
91
- var parentEm = EventManager.create();
92
- parentEm.parent = grandEm;
93
- var em = EventManager.create();
94
- em.parent = parentEm;
95
- function recData(data) {
96
- t.equal(data, 'hello');
97
- }
98
- grandEm.on('bar', recData);
99
- parentEm.on('bar', recData);
100
- em.on('bar', recData);
101
- em.emit('bar', 'hello');
102
- });
@@ -1,33 +0,0 @@
1
- 'use strict';
2
-
3
- var test = require('tap').test;
4
-
5
- var react = require('../react');
6
-
7
- function multiply(x, y, cb) { cb(null, x * y); }
8
-
9
- test('execOptions as first param', function (t) {
10
- t.plan(3);
11
- var fn = react();
12
- var errors = fn.setAndValidateAST({
13
- inParams: ['a', 'b'],
14
- tasks: [
15
- { f: multiply, a: ['a', 'b'], out: ['c'] }
16
- ],
17
- outTask: { a: ['c'] }
18
- });
19
- t.deepEqual(errors, [], 'no validation errors');
20
-
21
- var execOptions = {
22
- reactExecOptions: true,
23
- outputStyle: 'cb'
24
- };
25
-
26
- fn(execOptions, 2, 3, function (err, c) {
27
- t.equal(err, null);
28
- t.equal(c, 6);
29
- t.end();
30
- });
31
- });
32
-
33
-
@@ -1,38 +0,0 @@
1
- 'use strict';
2
-
3
- var test = require('tap').test;
4
-
5
- var tskutil = require('../lib/task.js');
6
-
7
-
8
- test('undefined cb throws exception', function (t) {
9
- var fn = function () {
10
- var finalTask = tskutil.createOutTask({}, undefined);
11
- };
12
- t.throws(fn, new Error('callback is not a function'));
13
- t.end();
14
- });
15
-
16
- test('null cb throws exception', function (t) {
17
- var fn = function () {
18
- var finalTask = tskutil.createOutTask({}, null);
19
- };
20
- t.throws(fn, new Error('callback is not a function'));
21
- t.end();
22
- });
23
-
24
- test('cb needs to be a function or throws exception', function (t) {
25
- var fn = function () {
26
- var finalTask = tskutil.createOutTask({}, 'foo');
27
- };
28
- t.throws(fn, new Error('callback is not a function'));
29
- t.end();
30
- });
31
-
32
- test('valid fn creates outTask', function (t) {
33
- function foo() { }
34
- var finalTask = tskutil.createOutTask({ a: ['bar', 'baz']}, foo);
35
- t.equal(finalTask.f, foo);
36
- t.deepEqual(finalTask.a, ['bar', 'baz']);
37
- t.end();
38
- });
@@ -1,66 +0,0 @@
1
- 'use strict';
2
-
3
- var test = require('tap').test;
4
-
5
- var inputParser = require('../lib/input-parser.js');
6
-
7
- test('parser parses input args', function (t) {
8
- function myCb() { }
9
- var ast = { inParams: ['a', 'b'] };
10
- var parsedInput = inputParser([10, 20, myCb], ast);
11
- t.deepEqual(parsedInput.args, [10, 20]);
12
- t.deepEqual(parsedInput.options, inputParser.defaultExecOptions);
13
- t.end();
14
- });
15
-
16
- test('parser parses input args with cb', function (t) {
17
- function foo() { }
18
- var ast = { inParams: ['a', 'b'] };
19
- var parsedInput = inputParser([10, 20, foo], ast);
20
- t.deepEqual(parsedInput.args, [10, 20]);
21
- t.deepEqual(parsedInput.cb, foo);
22
- t.deepEqual(parsedInput.options, inputParser.defaultExecOptions);
23
- t.end();
24
- });
25
-
26
- test('parser parses input args with cb and extra args', function (t) {
27
- function foo() { }
28
- var ast = { inParams: ['a', 'b'] };
29
- var parsedInput = inputParser([10, 20, foo, 30, 40], ast);
30
- t.deepEqual(parsedInput.args, [10, 20]);
31
- t.deepEqual(parsedInput.cb, foo);
32
- t.deepEqual(parsedInput.extraArgs, [30, 40]);
33
- t.deepEqual(parsedInput.options, inputParser.defaultExecOptions);
34
- t.end();
35
- });
36
-
37
- test('parser parses input args with extra args', function (t) {
38
- var ast = { inParams: [] };
39
- var execOptions = { reactExecOptions: true, outputStyle: 'none' };
40
- var parsedInput = inputParser([execOptions, 10, 20], ast);
41
- t.deepEqual(parsedInput.args, []);
42
- t.deepEqual(parsedInput.extraArgs, [10, 20]);
43
- t.end();
44
- });
45
-
46
- test('parser pulls react exec option off arg list', function (t) {
47
- function myCb() { }
48
- var ast = { inParams: ['a', 'b'] };
49
- var execOptions = { reactExecOptions: true, foo: 10 };
50
- var parsedInput = inputParser([execOptions, 10, 20, myCb], ast);
51
- t.deepEqual(parsedInput.args, [10, 20]);
52
- t.deepEqual(parsedInput.options, { reactExecOptions: true, outputStyle: 'cb', foo: 10 });
53
- t.end();
54
- });
55
-
56
- test('parser pulls react exec options off arg list and merges from left to right', function (t) {
57
- function myCb() { }
58
- var ast = { inParams: ['a', 'b'] };
59
- var execOptions = { reactExecOptions: true, foo: 12, bar: 24 };
60
- var execOptions2 = { reactExecOptions: true, bar: 36, baz: 'hello' };
61
- var parsedInput = inputParser([execOptions, execOptions2, 10, 20, myCb], ast);
62
- t.deepEqual(parsedInput.args, [10, 20]);
63
- t.deepEqual(parsedInput.options, { reactExecOptions: true, outputStyle: 'cb', foo: 12, bar: 36, baz: 'hello' });
64
- t.end();
65
- });
66
-
@@ -1,131 +0,0 @@
1
- 'use strict';
2
-
3
- var test = require('tap').test;
4
- var BaseTask = require('../lib/base-task.js');
5
-
6
- var react = require('../'); // require('react');
7
- // turn on tracking, optionally obtain EventCollector
8
- var EventCollector = require('../lib/track-tasks').EventCollector; // require('react/lib/track-tasks');
9
-
10
-
11
- /**
12
- @example
13
- var react = require('react');
14
- react.options.an_option = 'something';
15
-
16
- // define function
17
- var loadAndSave = react('myName', 'one, two, cb -> err, result1, result2',
18
- foo, 'one, cb -> err, cat',
19
- bar, 'two, cat, cb -> err, dog',
20
- baz, 'dog, cb -> err, result1',
21
- bum, 'dog, cb -> err, result2');
22
-
23
- // OR using AST
24
-
25
- var loadAndSave = react();
26
- loadAndSave.setAndValidateAST({
27
- inParams: ['one', 'two'],
28
- tasks: { },
29
- outTask: { a: ['three'] }
30
- });
31
-
32
- //if you want to listen to task completion events
33
- loadAndSave.events.on('task.complete', function (taskObj) { });
34
-
35
- loadAndSave(1,2,cb); // execute like any other function
36
- */
37
-
38
- test('module exports an function object with properties', function (t) {
39
- t.type(react, 'function', 'is a core constructor and default dsl function');
40
- t.type(react.options, 'object', 'has property for global react options');
41
- t.type(react.events, 'object', 'has global react event manager');
42
- t.end();
43
- });
44
-
45
- function foo() { }
46
- function bar() { }
47
-
48
- test('calling react constructor function creates new function with ast', function (t) {
49
- var r = react();
50
- t.type(r, 'function', 'is a function ready to execute flow');
51
- t.type(r.ast, 'object', 'is object for inspecting AST');
52
- t.deepEqual(r.ast.inParams, [], 'ast.inParams should return empty array');
53
- t.deepEqual(r.ast.tasks, [], 'ast.tasks() should return empty array');
54
- t.deepEqual(r.ast.outTask, { a: [], type: 'finalcb' });
55
- t.end();
56
- });
57
-
58
- test('setAndValidateAST sets the ast and validates returning errors', function (t) {
59
- var r = react();
60
- var errors = r.setAndValidateAST({
61
- inParams: ['a', 'b'],
62
- tasks: [
63
- { f: foo, a: ['a'], out: ['c'] },
64
- { f: bar, a: ['b'], out: ['d'] }
65
- ],
66
- outTask: { a: ['c', 'd'] }
67
- });
68
- t.deepEqual(r.ast.inParams, ['a', 'b'], 'ast.inParams() should match array just set');
69
- t.deepEqual(r.ast.tasks, [
70
- { f: foo, a: ['a'], out: ['c'], type: 'cb', name: 'foo' },
71
- { f: bar, a: ['b'], out: ['d'], type: 'cb', name: 'bar' }
72
- ]);
73
- t.deepEqual(r.ast.outTask, { a: ['c', 'd'], type: 'finalcb' }, 'should return obj just set');
74
- t.end();
75
- });
76
-
77
- test('use react() default DSL from module', function (t) {
78
- t.plan(3);
79
- function multiply(a, b, cb) { cb(null, a * b); }
80
- function add(a, b, cb) { cb(null, a + b); }
81
- var fn = react('multiplyAdd', 'a, b, cb -> err, m, s',
82
- multiply, 'a, b, cb -> err, m',
83
- add, 'm, a, cb -> err, s'
84
- );
85
-
86
-
87
- fn(2, 3, function (err, m, s) {
88
- t.deepEqual(err, null, 'should not be any error');
89
- t.equal(m, 6);
90
- t.equal(s, 8);
91
- t.end();
92
- });
93
- });
94
-
95
- test('use react.selectFirst() default DSL with events', function (t) {
96
- t.plan(7);
97
- function noSuccess(a, b, cb) {
98
- setTimeout(function () { cb(null); }, 100); // returns undefined result
99
- }
100
- function noSuccessNull(a, b, cb) { cb(null, null); } // returns null result
101
- function add(a, b, cb) { cb(null, a + b); }
102
-
103
-
104
- var fn = react.selectFirst('mySelectFirst', 'a, b, cb -> err, c',
105
- noSuccess, 'a, b, cb -> err, c',
106
- noSuccessNull, 'a, b, cb -> err, c',
107
- add, 'a, b, cb -> err, c',
108
- noSuccess, 'a, b, cb -> err, c'
109
- );
110
-
111
- var collector = new EventCollector();
112
- collector.capture(fn, 'task.complete');
113
-
114
- fn(2, 3, function (err, c) {
115
- t.deepEqual(err, null, 'should not be any error');
116
- t.equal(c, 5);
117
- var events = collector.list();
118
- t.equal(events.length, 3, 'should have seen two task compl events');
119
- t.equal(events[0].task.name, 'noSuccess', 'name matches');
120
- t.equal(events[1].task.name, 'noSuccessNull', 'name matches');
121
- t.equal(events[2].task.name, 'add', 'name matches');
122
- t.deepEqual(events[2].task.results, [5], 'results match');
123
- t.end();
124
- });
125
- });
126
-
127
-
128
-
129
-
130
-
131
-
@@ -1,51 +0,0 @@
1
- 'use strict';
2
-
3
- /**
4
- Test that arguments which are promises are automatically resolved
5
- before calling react functions
6
- */
7
-
8
- var test = require('tap').test;
9
- var Deferred = require('promised-io/promise').Deferred;
10
-
11
- var react = require('../promise-resolve'); // require('react/promise-resolve');
12
-
13
- function multiply(x, y, cb) { cb(null, x * y); }
14
- function add(x, y, cb) { cb(null, x + y); }
15
- // function badF2(a, b, cb) { cb('my-error'); }
16
-
17
- test('auto resolve promises passed as args', function (t) {
18
- t.plan(4);
19
- var fn = react();
20
- var errors = fn.setAndValidateAST({
21
- inParams: ['a', 'b'],
22
- tasks: [
23
- { f: multiply, a: ['a', 'b'], out: ['c'] },
24
- { f: add, a: ['c', 'b'], out: ['d'] }
25
- ],
26
- outTask: { a: ['c', 'd'] }
27
- });
28
- t.deepEqual(errors, [], 'no validation errors');
29
-
30
- function retAP() {
31
- var deferred = new Deferred();
32
- setTimeout(function () { deferred.resolve(2); }, 10);
33
- return deferred.promise;
34
- }
35
-
36
- function retBP() {
37
- var deferred = new Deferred();
38
- setTimeout(function () { deferred.resolve(3); }, 10);
39
- return deferred.promise;
40
- }
41
-
42
- var ap = retAP();
43
- var bp = retBP();
44
-
45
- fn(ap, bp, function (err, c, d) {
46
- t.equal(err, null);
47
- t.equal(c, 6);
48
- t.equal(d, 9);
49
- t.end();
50
- });
51
- });
@@ -1,199 +0,0 @@
1
- 'use strict';
2
-
3
- var test = require('tap').test;
4
-
5
- var RetTask = require('../lib/ret-task.js');
6
- var VContext = require('../lib/vcon.js');
7
-
8
- function foo() { }
9
- function bar() { }
10
- function cat() { }
11
-
12
- test('new task is not complete', function (t) {
13
- var task = new RetTask({ type: 'ret', f: foo, a: [], out: [] });
14
- t.equal(task.isComplete(), false);
15
- t.end();
16
- });
17
-
18
- test('ready task is not complete', function (t) {
19
- var task = new RetTask({ type: 'ret', f: foo, a: [], out: [], status: 'ready'});
20
- t.equal(task.isComplete(), false);
21
- t.end();
22
- });
23
-
24
- test('running task is not complete', function (t) {
25
- var task = new RetTask({ type: 'ret', f: foo, a: [], out: [], status: 'running'});
26
- t.equal(task.isComplete(), false);
27
- t.end();
28
- });
29
-
30
- test('complete task is complete', function (t) {
31
- var task = new RetTask({ type: 'ret', f: foo, a: [], out: [], status: 'complete' });
32
- t.equal(task.isComplete(), true);
33
- t.end();
34
- });
35
-
36
- test('task with any status is not ready', function (t) {
37
- var task = new RetTask({ type: 'ret', f: foo, a: [], out: [], status: 'complete' });
38
- var vCon = VContext.create([], []);
39
- var tasksByName = { foo: task };
40
- t.equal(task.isReady(vCon, tasksByName), false);
41
- task.status = 'ready';
42
- t.equal(task.isReady(vCon, tasksByName), false);
43
- task.status = 'running';
44
- t.equal(task.isReady(vCon, tasksByName), false);
45
- task.status = null;
46
- t.equal(task.isReady(vCon, tasksByName), true);
47
- t.end();
48
- });
49
-
50
- test('no args defined, no after -> not ready', function (t) {
51
- var task = new RetTask({ type: 'ret', f: foo, a: ['b'], out: [] });
52
- var vCon = VContext.create([], []);
53
- var tasksByName = { foo: task };
54
- t.equal(task.isReady(vCon, tasksByName), false);
55
- t.end();
56
- });
57
-
58
- test('obj prop undefined -> NOT ready', function (t) {
59
- var task = new RetTask({ type: 'ret', f: foo, a: ['b', 'c.prop'], out: [] });
60
- var vCon = VContext.create([1, {}], ['b', 'c']);
61
- var tasksByName = { foo: task };
62
- t.equal(task.isReady(vCon, tasksByName), false);
63
- t.end();
64
- });
65
-
66
- test('all args defined, no after, out no obj parent -> NOT ready', function (t) {
67
- var task = new RetTask({ type: 'ret', f: foo, a: ['b', 'c'], out: ['d.e'] });
68
- var vCon = VContext.create([1, null], ['b', 'c']);
69
- var tasksByName = { foo: task };
70
- t.equal(task.isReady(vCon, tasksByName), false, 'false if out objparent undef');
71
- t.end();
72
- });
73
-
74
- test('all args defined, no after, out no obj.par.par -> NOT ready', function (t) {
75
- var task = new RetTask({ type: 'ret', f: foo, a: ['b', 'c'], out: ['c.e.f'] });
76
- var vCon = VContext.create([1, { }], ['b', 'c']);
77
- var tasksByName = { foo: task };
78
- t.equal(task.isReady(vCon, tasksByName), false, 'false if out objparent undef');
79
- t.end();
80
- });
81
-
82
- test('all args defined, no after, out null obj parent -> NOT ready', function (t) {
83
- var task = new RetTask({ type: 'ret', f: foo, a: ['b', 'c'], out: ['c.e'] });
84
- var vCon = VContext.create([1, null], ['b', 'c']);
85
- var tasksByName = { foo: task };
86
- t.equal(task.isReady(vCon, tasksByName), false, 'false if out objparent null');
87
- t.end();
88
- });
89
-
90
- test('all args defined, no after, out null obj.par.par -> NOT ready', function (t) {
91
- var task = new RetTask({ type: 'ret', f: foo, a: ['b', 'c'], out: ['c.e.f'] });
92
- var vCon = VContext.create([1, { e: null }], ['b', 'c']);
93
- var tasksByName = { foo: task };
94
- t.equal(task.isReady(vCon, tasksByName), false, 'false if out objparent null');
95
- t.end();
96
- });
97
-
98
- test('all args defined, no after -> ready', function (t) {
99
- var task = new RetTask({ type: 'ret', f: foo, a: ['b', 'c'], out: [] });
100
- var vCon = VContext.create([1, null], ['b', 'c']);
101
- var tasksByName = { foo: task };
102
- t.equal(task.isReady(vCon, tasksByName), true);
103
- t.end();
104
- });
105
-
106
- test('all args defined, obj prop null, no after -> ready', function (t) {
107
- var task = new RetTask({ type: 'ret', f: foo, a: ['b', 'c.prop'], out: [] });
108
- var vCon = VContext.create([1, { prop: null }], ['b', 'c']);
109
- var tasksByName = { foo: task };
110
- t.equal(task.isReady(vCon, tasksByName), true);
111
- t.end();
112
- });
113
-
114
- test('all args defined, after not complete -> NOT ready', function (t) {
115
- var tcat = new RetTask({ type: 'ret', f: cat, a: [], out: [], status: 'complete' });
116
- var tbar = new RetTask({ type: 'ret', f: bar, a: [], out: [], status: 'running' });
117
- var task = new RetTask(
118
- { type: 'ret', f: foo, a: ['b', 'c'], out: [], after: ['cat', 'bar']});
119
- var vCon = VContext.create([1, 2], ['b', 'c']);
120
- var tasksByName = { foo: task, bar: tbar, cat: tcat };
121
- t.equal(task.isReady(vCon, tasksByName), false);
122
- t.end();
123
- });
124
-
125
- test('all args defined, after all complete -> ready', function (t) {
126
- var tcat = new RetTask({ type: 'ret', f: cat, a: [], out: [], status: 'complete' });
127
- var tbar = new RetTask({ type: 'ret', f: bar, a: [], out: [], status: 'complete' });
128
- var task = new RetTask(
129
- { type: 'ret', f: foo, a: ['b', 'c'], out: [], after: ['cat', 'bar']});
130
- var vCon = VContext.create([1, 2], ['b', 'c']);
131
- var tasksByName = { foo: task, bar: tbar, cat: tcat };
132
- t.equal(task.isReady(vCon, tasksByName), true);
133
- t.end();
134
- });
135
-
136
- test('string without . is not method call', function (t) {
137
- var task = new RetTask({ type: 'ret', f: 'foo', a: [], out: ['b'] });
138
- t.equal(task.isMethodCall(), false);
139
- task.f = null;
140
- t.equal(task.isMethodCall(), false);
141
- t.end();
142
- });
143
-
144
- test('string with . is method call', function (t) {
145
- var task = new RetTask({ type: 'ret', f: 'foo.bar', a: [], out: ['b'] });
146
- t.equal(task.isMethodCall(), true);
147
- task.f = 'foo.bar.baz';
148
- t.equal(task.isMethodCall(), true);
149
- t.end();
150
- });
151
-
152
- test('undefined or null fn - functionExists', function (t) {
153
- var task = new RetTask({ type: 'ret', f: 'foo', a: [], out: ['b'] });
154
- var vCon = VContext.create([], []);
155
- task.f = null;
156
- t.notOk(task.functionExists(vCon));
157
- task.f = undefined;
158
- t.notOk(task.functionExists(vCon));
159
- task.f = 'foo';
160
- t.notOk(task.functionExists(vCon));
161
- vCon.values.foo = { };
162
- task.f = 'foo.bar';
163
- t.notOk(task.functionExists(vCon));
164
- t.end();
165
- });
166
-
167
- test('functionExists', function (t) {
168
- var task = new RetTask({ type: 'ret', f: foo, a: [], out: ['b'] });
169
- var vCon = VContext.create([], []);
170
- t.ok(task.functionExists(vCon));
171
- t.end();
172
- });
173
-
174
- test('method functionExists', function (t) {
175
- var task = new RetTask({ type: 'ret', f: 'foo.b', a: [], out: ['b'] });
176
- var vCon = VContext.create([{b: bar}], ['foo']);
177
- t.ok(task.functionExists(vCon));
178
- task.f = 'foo.bar.cat';
179
- vCon.values.foo = { bar: { cat: cat}};
180
- t.ok(task.functionExists(vCon));
181
- t.end();
182
- });
183
-
184
- test('getMethodObj non-existent return undefined', function (t) {
185
- var task = new RetTask({ type: 'ret', f: 'foo.b.c', a: [], out: ['b'] });
186
- var vCon = VContext.create([{}], ['foo']);
187
- t.equal(task.getMethodObj(vCon), undefined);
188
- t.end();
189
- });
190
-
191
- test('getMethodObj returns object', function (t) {
192
- var task = new RetTask({ type: 'ret', f: 'foo.b', a: [], out: ['b'] });
193
- var vCon = VContext.create([{b: bar}], ['foo']);
194
- t.deepEqual(task.getMethodObj(vCon), { b: bar});
195
- t.end();
196
- });
197
-
198
-
199
-