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
Binary file
package/doc/simple.dot ADDED
@@ -0,0 +1,25 @@
1
+ digraph loadRender {
2
+ loadRender_input [ shape = box, style = filled, fillcolor = aquamarine ];
3
+ fooPath [ style = filled, fillcolor = gainsboro ];
4
+ barPath [ style = filled, fillcolor = gainsboro ];
5
+ barP2 [ style = filled, fillcolor = gainsboro ];
6
+ loadFoo [ shape = box, color = blue, fillcolor = beige, style = filled ];
7
+ foo [ style = filled, fillcolor = gainsboro ];
8
+ loadBar [ shape = box, color = blue, fillcolor = beige, style = filled ];
9
+ bar [ style = filled, fillcolor = gainsboro ];
10
+ render [ shape = box, color = blue, fillcolor = beige, style = filled ];
11
+ renderedOut [ style = filled, fillcolor = gainsboro ];
12
+ loadRender_output [ shape = box, style = filled, fillcolor = aquamarine ];
13
+ loadRender_input -> fooPath;
14
+ loadRender_input -> barPath;
15
+ loadRender_input -> barP2;
16
+ fooPath -> loadFoo;
17
+ loadFoo -> foo;
18
+ barPath -> loadBar;
19
+ barP2 -> loadBar;
20
+ loadBar -> bar;
21
+ foo -> render;
22
+ bar -> render;
23
+ render -> renderedOut;
24
+ renderedOut -> loadRender_output;
25
+ }
package/doc/simple.png ADDED
Binary file
File without changes
File without changes
@@ -1,5 +1,9 @@
1
1
  'use strict';
2
2
 
3
+ /**
4
+ Advanced example using the AST directly which most users will not do.
5
+ For general use, see other examples like simple.js
6
+ */
3
7
  var react = require('../'); // require('react');
4
8
 
5
9
  function load(res, cb) { setTimeout(cb, 100, null, res + '-loaded'); }
@@ -6,7 +6,7 @@
6
6
  */
7
7
 
8
8
  var react = require('../'); // require('react');
9
- require('../lib/track-tasks'); // require('react/lib/track-tasks'); // turn on tracking
9
+ react.trackTasks(); // turn on flow and task tracking events
10
10
 
11
11
  //output events as tasks start and complete
12
12
  react.events.on('flow.*', function (obj) {
@@ -6,7 +6,7 @@
6
6
  */
7
7
 
8
8
  var react = require('../'); // require('react');
9
- require('../lib/log-events').logEvents(react); // require('react/lib/log-events').logEvents(react); // turn on logging
9
+ react.logEvents(); // turn on logging of all flow and task events for all react functions
10
10
 
11
11
 
12
12
  function loadUser(uid, cb){ setTimeout(cb, 100, null, "User"+uid); }
package/lib/base-task.js CHANGED
@@ -1,117 +1,123 @@
1
1
  'use strict';
2
+ /*global define:true */
2
3
 
3
- var array = require('ensure-array');
4
- var STATUS = require('./status.js');
5
- var EventManager = require('./event-manager.js');
6
-
7
- function BaseTask() {
4
+ if (typeof define !== 'function') {
5
+ var define = require('amdefine')(module);
8
6
  }
9
7
 
10
- /**
11
- Getter Fn to retrieveAn array of the output param names for this task.
12
- */
13
- BaseTask.prototype.getOutParams = function () {
14
- return array(this.out); // ensure array
15
- };
16
-
17
- BaseTask.prototype.isComplete = function () {
18
- return (this.status === STATUS.COMPLETE);
19
- };
20
-
21
- BaseTask.prototype.start = function (args) { // mark task as started with args and note time
22
- /*jshint validthis: true */
23
- this.args = args;
24
- this.env.currentTask = this;
25
- this.env.flowEmitter.emit(EventManager.TYPES.EXEC_TASK_START, this);
26
- };
27
-
28
- BaseTask.prototype.complete = function (args) { //args that were used are available
29
- /*jshint validthis: true */
30
- this.status = STATUS.COMPLETE;
31
- this.results = args;
32
- this.env.currentTask = this;
33
- this.env.flowEmitter.emit(EventManager.TYPES.EXEC_TASK_COMPLETE, this);
34
- };
35
-
36
- BaseTask.prototype.functionExists = function (vCon) {
37
- var fn = this.f;
38
- if (!fn) return false;
39
- if (fn instanceof Function) return true;
40
- if (typeof(fn) === 'string') {
41
- var f = vCon.getVar(fn); // fn/method by string
42
- if (f && f instanceof Function) return true;
8
+ define(['ensure-array', './status', './event-manager'],
9
+ function (array, STATUS, EventManager) {
10
+
11
+ function BaseTask() {
43
12
  }
44
- return false;
45
- };
46
-
47
- BaseTask.prototype.areAllDepArgsDefined = function (vCon) {
48
- return this.a.every(function (k) { return (vCon.getVar(k) !== undefined); });
49
- };
50
-
51
- BaseTask.prototype.depTasksAreDone = function (tasksByName) {
52
- return (!this.after || !this.after.length || // no dep tasks OR
53
- this.after.every(function (n) { return tasksByName[n].isComplete(); })); //all done
54
- };
55
-
56
- function isObjProperty(str) { return (str.indexOf('.') !== -1); }
57
-
58
- /**
59
- check that obj parent is def and not null so writing to obj.prop
60
- will not fail. ex: 'b.c' checks that b is def and not null.
61
- Also returns true if not obj.prop but simple var ex: 'b'.
62
- Tasks will implement outParentsExist() passing each out str
63
- to this if they want to do this check.
13
+
14
+ /**
15
+ Getter Fn to retrieveAn array of the output param names for this task.
16
+ */
17
+ BaseTask.prototype.getOutParams = function () {
18
+ return array(this.out); // ensure array
19
+ };
20
+
21
+ BaseTask.prototype.isComplete = function () {
22
+ return (this.status === STATUS.COMPLETE);
23
+ };
24
+
25
+ BaseTask.prototype.start = function (args) { // mark task as started with args and note time
26
+ /*jshint validthis: true */
27
+ this.args = args;
28
+ this.env.currentTask = this;
29
+ this.env.flowEmitter.emit(EventManager.TYPES.EXEC_TASK_START, this);
30
+ };
31
+
32
+ BaseTask.prototype.complete = function (args) { //args that were used are available
33
+ /*jshint validthis: true */
34
+ this.status = STATUS.COMPLETE;
35
+ this.results = args;
36
+ this.env.currentTask = this;
37
+ this.env.flowEmitter.emit(EventManager.TYPES.EXEC_TASK_COMPLETE, this);
38
+ };
39
+
40
+ BaseTask.prototype.functionExists = function (vCon) {
41
+ var fn = this.f;
42
+ if (!fn) return false;
43
+ if (fn instanceof Function) return true;
44
+ if (typeof(fn) === 'string') {
45
+ var f = vCon.getVar(fn); // fn/method by string
46
+ if (f && f instanceof Function) return true;
47
+ }
48
+ return false;
49
+ };
50
+
51
+ BaseTask.prototype.areAllDepArgsDefined = function (vCon) {
52
+ return this.a.every(function (k) { return (vCon.getVar(k) !== undefined); });
53
+ };
54
+
55
+ BaseTask.prototype.depTasksAreDone = function (tasksByName) {
56
+ return (!this.after || !this.after.length || // no dep tasks OR
57
+ this.after.every(function (n) { return tasksByName[n].isComplete(); })); //all done
58
+ };
59
+
60
+ function isObjProperty(str) { return (str.indexOf('.') !== -1); }
61
+
62
+ /**
63
+ check that obj parent is def and not null so writing to obj.prop
64
+ will not fail. ex: 'b.c' checks that b is def and not null.
65
+ Also returns true if not obj.prop but simple var ex: 'b'.
66
+ Tasks will implement outParentsExist() passing each out str
67
+ to this if they want to do this check.
64
68
  */
65
- BaseTask.prototype.parentExists = function (objPropStr, vCon) {
66
- if (!isObjProperty(objPropStr)) return true; // NOT obj prop, just simple arg, ret true
67
- var nameAndProps = objPropStr.split('.');
68
- nameAndProps.pop(); // pop off final prop
69
- var parent = nameAndProps.reduce(function (accObj, prop) {
70
- if (accObj === undefined || accObj === null) return undefined; // prevent exception
71
- return accObj[prop];
72
- }, vCon.values); // vCon['foo']['bar']
73
- return (parent !== undefined && parent !== null);
74
- };
75
-
76
- /**
77
- If params are obj property writes make sure the dst objects
78
- are defined and not null. cb: ['b.c'] -> b is def and not null.
79
- If null is specified then param is valid and will be ignored.
80
- @returns true if all obj prop parents are def and non null
69
+ BaseTask.prototype.parentExists = function (objPropStr, vCon) {
70
+ if (!isObjProperty(objPropStr)) return true; // NOT obj prop, just simple arg, ret true
71
+ var nameAndProps = objPropStr.split('.');
72
+ nameAndProps.pop(); // pop off final prop
73
+ var parent = nameAndProps.reduce(function (accObj, prop) {
74
+ if (accObj === undefined || accObj === null) return undefined; // prevent exception
75
+ return accObj[prop];
76
+ }, vCon.values); // vCon['foo']['bar']
77
+ return (parent !== undefined && parent !== null);
78
+ };
79
+
80
+ /**
81
+ If params are obj property writes make sure the dst objects
82
+ are defined and not null. cb: ['b.c'] -> b is def and not null.
83
+ If null is specified then param is valid and will be ignored.
84
+ @returns true if all obj prop parents are def and non null
81
85
  */
82
- BaseTask.prototype.outParentsExist = function (vCon) {
83
- var self = this;
84
- return this.getOutParams().every(function (x) {
85
- if (x === null) return true;
86
- return self.parentExists(x, vCon);
87
- });
88
- };
89
-
90
- BaseTask.prototype.isReady = function (vCon, tasksByName) {
91
- return !this.status && // not started AND
92
- this.functionExists(vCon) && // function/method exists AND
93
- this.areAllDepArgsDefined(vCon) && // all dep vars defined AND
94
- this.depTasksAreDone(tasksByName) && // all dep tasks are done AND
95
- (!this.outParentsExist || // (task does not implement outParentsExist method OR
96
- this.outParentsExist(vCon)); // output parents exists (for obj property writes)
97
- };
98
-
99
- BaseTask.prototype.isMethodCall = function () {
100
- /*jshint regexp: false */
101
- return (typeof(this.f) === 'string' && /^.*\..*$/.test(this.f)); //str contains .
102
- };
103
-
104
- BaseTask.prototype.getMethodObj = function (vCon) { //obj.prop.prop2, returns obj.prop or undefined
105
- var name = this.f;
106
- if (!name) return undefined;
107
- var nameAndProps = name.split('.');
108
- nameAndProps.pop(); // pop off last one
109
- if (!nameAndProps.length) return undefined;
110
- var result = nameAndProps.reduce(function (accObj, prop) {
111
- if (accObj === undefined || accObj === null) return undefined; // prevent exception
112
- return accObj[prop];
113
- }, vCon.values); // vCon['foo']['bar']
114
- return result;
115
- };
116
-
117
- module.exports = BaseTask;
86
+ BaseTask.prototype.outParentsExist = function (vCon) {
87
+ var self = this;
88
+ return this.getOutParams().every(function (x) {
89
+ if (x === null) return true;
90
+ return self.parentExists(x, vCon);
91
+ });
92
+ };
93
+
94
+ BaseTask.prototype.isReady = function (vCon, tasksByName) {
95
+ return !this.status && // not started AND
96
+ this.functionExists(vCon) && // function/method exists AND
97
+ this.areAllDepArgsDefined(vCon) && // all dep vars defined AND
98
+ this.depTasksAreDone(tasksByName) && // all dep tasks are done AND
99
+ (!this.outParentsExist || // (task does not implement outParentsExist method OR
100
+ this.outParentsExist(vCon)); // output parents exists (for obj property writes)
101
+ };
102
+
103
+ BaseTask.prototype.isMethodCall = function () {
104
+ /*jshint regexp: false */
105
+ return (typeof(this.f) === 'string' && /^.*\..*$/.test(this.f)); //str contains .
106
+ };
107
+
108
+ BaseTask.prototype.getMethodObj = function (vCon) { //obj.prop.prop2, returns obj.prop or undefined
109
+ var name = this.f;
110
+ if (!name) return undefined;
111
+ var nameAndProps = name.split('.');
112
+ nameAndProps.pop(); // pop off last one
113
+ if (!nameAndProps.length) return undefined;
114
+ var result = nameAndProps.reduce(function (accObj, prop) {
115
+ if (accObj === undefined || accObj === null) return undefined; // prevent exception
116
+ return accObj[prop];
117
+ }, vCon.values); // vCon['foo']['bar']
118
+ return result;
119
+ };
120
+
121
+ return BaseTask;
122
+
123
+ });
package/lib/cb-task.js CHANGED
@@ -1,80 +1,84 @@
1
1
  'use strict';
2
+ /*global define:true */
2
3
 
3
- var util = require('util');
4
- var sprintf = require('sprintf').sprintf;
4
+ if (typeof define !== 'function') {
5
+ var define = require('amdefine')(module);
6
+ }
5
7
 
6
- var BaseTask = require('./base-task.js');
8
+ define(['util', './sprintf', './base-task'], function (util, sprintf, BaseTask) {
7
9
 
8
- function format_error(errmsg, obj) {
9
- return sprintf('%s - %s', errmsg, util.inspect(obj));
10
- }
10
+ function format_error(errmsg, obj) {
11
+ return sprintf('%s - %s', errmsg, util.inspect(obj));
12
+ }
11
13
 
12
- var REQ = 'cbTask requires f, a, out';
13
- var FN_REQ = 'cbTask requires f to be a function or string';
14
- var A_REQ = 'cbTask requires a to be an array of string param names';
15
- var CB_REQ = 'cbTask requires out to be an array of string param names';
14
+ var REQ = 'cbTask requires f, a, out';
15
+ var FN_REQ = 'cbTask requires f to be a function or string';
16
+ var A_REQ = 'cbTask requires a to be an array of string param names';
17
+ var CB_REQ = 'cbTask requires out to be an array of string param names';
16
18
 
17
- function CbTask(taskDef) {
18
- var self = this;
19
- Object.keys(taskDef).forEach(function (k) { self[k] = taskDef[k]; });
20
- }
19
+ function CbTask(taskDef) {
20
+ var self = this;
21
+ Object.keys(taskDef).forEach(function (k) { self[k] = taskDef[k]; });
22
+ }
21
23
 
22
- CbTask.prototype = new BaseTask();
23
- CbTask.prototype.constructor = CbTask;
24
+ CbTask.prototype = new BaseTask();
25
+ CbTask.prototype.constructor = CbTask;
24
26
 
25
- CbTask.validate = function (taskDef) {
26
- var errors = [];
27
- if (!taskDef.f || !taskDef.a || !taskDef.out) {
28
- errors.push(format_error(REQ, taskDef));
29
- } else {
30
- var ftype = typeof(taskDef.f);
31
- if (! ((taskDef.f instanceof Function) || (ftype === 'string'))) {
32
- errors.push(format_error(FN_REQ, taskDef));
27
+ CbTask.validate = function (taskDef) {
28
+ var errors = [];
29
+ if (!taskDef.f || !taskDef.a || !taskDef.out) {
30
+ errors.push(format_error(REQ, taskDef));
31
+ } else {
32
+ var ftype = typeof(taskDef.f);
33
+ if (! ((taskDef.f instanceof Function) || (ftype === 'string'))) {
34
+ errors.push(format_error(FN_REQ, taskDef));
35
+ }
36
+ if (! (Array.isArray(taskDef.a) &&
37
+ taskDef.a.every(function (x) { return (typeof(x) === 'string'); }))) {
38
+ errors.push(format_error(A_REQ, taskDef));
39
+ }
40
+ if (! (Array.isArray(taskDef.out) &&
41
+ taskDef.out.every(function (x) { return (typeof(x) === 'string'); }))) {
42
+ errors.push(format_error(CB_REQ, taskDef));
43
+ }
33
44
  }
34
- if (! (Array.isArray(taskDef.a) &&
35
- taskDef.a.every(function (x) { return (typeof(x) === 'string'); }))) {
36
- errors.push(format_error(A_REQ, taskDef));
37
- }
38
- if (! (Array.isArray(taskDef.out) &&
39
- taskDef.out.every(function (x) { return (typeof(x) === 'string'); }))) {
40
- errors.push(format_error(CB_REQ, taskDef));
41
- }
42
- }
43
- return errors;
44
- };
45
+ return errors;
46
+ };
45
47
 
46
- CbTask.prototype.prepare = function prepare(handleTaskError, vCon, contExec) {
47
- var self = this;
48
- this.cbFun = function (err, arg0, arg1, argn) {
49
- var args = Array.prototype.slice.call(arguments, 1);
50
- if (err) { handleTaskError(self, err); return; } //handle error and return, we are done
48
+ CbTask.prototype.prepare = function prepare(handleTaskError, vCon, contExec) {
49
+ var self = this;
50
+ this.cbFun = function (err, arg0, arg1, argn) {
51
+ var args = Array.prototype.slice.call(arguments, 1);
52
+ if (err) { handleTaskError(self, err); return; } //handle error and return, we are done
51
53
 
52
- //no error, save callback args to vCon context, then continue execution
53
- vCon.saveResults(self.out, args);
54
- self.complete(args);
55
- contExec();
56
- };
57
- };
54
+ //no error, save callback args to vCon context, then continue execution
55
+ vCon.saveResults(self.out, args);
56
+ self.complete(args);
57
+ contExec();
58
+ };
59
+ };
58
60
 
59
- CbTask.prototype.exec = function exec(vCon, handleError, contExec) {
60
- try {
61
- var args = this.a.map(function (k) { return vCon.getVar(k); }); //get args from vCon
62
- //console.error('CbTask.exec.args=', args);
63
- //console.error('CbTask.exec.vCon=', vCon);
64
- this.start(args); //note the start time, args
65
- args.push(this.cbFun); // push callback fn on end
66
- var func = this.f;
67
- var bindObj = vCon.getVar('this'); //global space or the original this
68
- if (this.isMethodCall()) { //if method call then reset func and bindObj
69
- func = vCon.getVar(this.f);
70
- bindObj = this.getMethodObj(vCon);
71
- } else if (typeof(func) === 'string') {
72
- func = vCon.getVar(func); // we want the actual fn from this string
73
- }
74
- func.apply(bindObj, args);
75
- } catch (err) { //catch and handle the task error, calling final cb
76
- handleError(this, err);
77
- }
78
- };
61
+ CbTask.prototype.exec = function exec(vCon, handleError, contExec) {
62
+ try {
63
+ var args = this.a.map(function (k) { return vCon.getVar(k); }); //get args from vCon
64
+ //console.error('CbTask.exec.args=', args);
65
+ //console.error('CbTask.exec.vCon=', vCon);
66
+ this.start(args); //note the start time, args
67
+ args.push(this.cbFun); // push callback fn on end
68
+ var func = this.f;
69
+ var bindObj = vCon.getVar('this'); //global space or the original this
70
+ if (this.isMethodCall()) { //if method call then reset func and bindObj
71
+ func = vCon.getVar(this.f);
72
+ bindObj = this.getMethodObj(vCon);
73
+ } else if (typeof(func) === 'string') {
74
+ func = vCon.getVar(func); // we want the actual fn from this string
75
+ }
76
+ func.apply(bindObj, args);
77
+ } catch (err) { //catch and handle the task error, calling final cb
78
+ handleError(this, err);
79
+ }
80
+ };
81
+
82
+ return CbTask;
79
83
 
80
- module.exports = CbTask;
84
+ });