react 0.2.5 → 0.2.6

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.
package/README.md CHANGED
@@ -252,23 +252,23 @@ fn(2, 3, function (err, m, s) {
252
252
  ```bash
253
253
  ok ast.test.js .................... 10/10
254
254
  ok cb-task.test.js ................ 31/31
255
- ok chain.test.js .................. 56/56
255
+ ok chain.test.js .................. 59/59
256
256
  ok core.test.js ................... 98/98
257
257
  ok dsl.test.js .................... 63/63
258
258
  ok event-manager.test.js .......... 13/13
259
259
  ok exec-options.test.js ............. 3/3
260
260
  ok finalcb-task.test.js ............. 5/5
261
- ok fstr.test.js ................... 64/64
261
+ ok fstr.test.js ................... 67/67
262
262
  ok input-parser.test.js ........... 15/15
263
263
  ok module-use.test.js ............. 64/64
264
- ok pcode.test.js .................. 65/65
264
+ ok pcode.test.js .................. 68/68
265
265
  ok ret-task.test.js ............... 31/31
266
266
  ok task.test.js ..................... 1/1
267
267
  ok validate-cb-task.test.js ......... 6/6
268
268
  ok validate-ret-task.test.js ........ 7/7
269
269
  ok validate.test.js ............... 31/31
270
270
  ok vcon.test.js ................... 42/42
271
- total ........................... 623/623
271
+ total ........................... 632/632
272
272
 
273
273
  ok
274
274
  ```
package/lib/fstr.js CHANGED
@@ -1,4 +1,5 @@
1
1
  'use strict';
2
+ /*jshint regexp: false */
2
3
 
3
4
  var sprintf = require('sprintf').sprintf;
4
5
  var core = require('./core.js');
@@ -10,14 +11,22 @@ var OUTPARAMS_NO_MATCH = 'output params in wrong format, wanted "foo, bar" - fou
10
11
  var INOUT_PARAMS_NO_MATCH = 'task params in wrong format, wanted "foo, bar -> err, baz" - found: %s';
11
12
  var EXTRA_TASKARG = 'extra unmatched task arg: %s';
12
13
 
14
+ var ERR_NAMES_RE = /^err$/i; // err, ERR, Err, ...
15
+
16
+ function filterOutLeadingErrParam(args) { // if leading err param, filter it out
17
+ if (args.length && args[0].match(ERR_NAMES_RE)) args.shift();
18
+ return args;
19
+ }
20
+
21
+
13
22
  var inOutDefParse = {
14
- regex: /^([^-]*)(->)?\s*(er{0,2}\s*,|returns?\s+)?(.*)$/i,
23
+ regex: /^([^\-]*)(->)?\s*(returns?\s+)?(.*)$/i,
15
24
  fn: function (m) {
16
25
  var reMatchReturns = /returns?/i;
17
26
  return {
18
27
  type: (m[3] && m[3].match(reMatchReturns)) ? 'ret' : 'cb',
19
28
  inDef: parse.splitTrimFilterArgs(m[1]),
20
- outDef: parse.splitTrimFilterArgs(m[4])
29
+ outDef: filterOutLeadingErrParam(parse.splitTrimFilterArgs(m[4]))
21
30
  };
22
31
  }
23
32
  };
package/lib/pcode.js CHANGED
@@ -1,4 +1,5 @@
1
1
  'use strict';
2
+ /*jshint regexp: false */
2
3
 
3
4
  var sprintf = require('sprintf').sprintf;
4
5
  var core = require('./core.js');
@@ -10,6 +11,14 @@ var OUTPARAMS_NO_MATCH = 'output params in wrong format, wanted "cb(err, foo)" -
10
11
  var INOUT_PARAMS_NO_MATCH = 'task params in wrong format, wanted "foo, bar := func(baz, cat, cb) " - found: %s';
11
12
  var EXTRA_TASKARG = 'extra unmatched task arg: %s';
12
13
 
14
+ var ERR_NAMES_RE = /^err$/i; // err, ERR, Err, ...
15
+
16
+ function filterOutLeadingErrParam(args) { // if leading err param, filter it out
17
+ if (args.length && args[0].match(ERR_NAMES_RE)) args.shift();
18
+ return args;
19
+ }
20
+
21
+
13
22
  /**
14
23
  Examples:
15
24
  var react = require('react');
@@ -82,10 +91,10 @@ var retParse = {
82
91
  };
83
92
 
84
93
  var finalCbParse = {
85
- regex: /^\s*(cb|callback)\s*\((er{0,2}\s*,\s*)?([^)]*)\)\s*;?$/i,
94
+ regex: /^\s*(cb|callback)\s*\(([^)]*)\)\s*;?$/i,
86
95
  fn: function (m) {
87
96
  return {
88
- outDef: (m[3]) ? parse.splitTrimFilterArgs(m[3]) : []
97
+ outDef: (m[2]) ? filterOutLeadingErrParam(parse.splitTrimFilterArgs(m[2])) : []
89
98
  };
90
99
  }
91
100
  };
package/lib/validate.js CHANGED
@@ -153,7 +153,7 @@ function validateNoMissingNames(ast) {
153
153
  if (!isLiteralOrProp(p) && !names[p]) accum.push(sprintf(MISSING_INPUTS, p)); // add error if missing
154
154
  return accum;
155
155
  }, errors);
156
- return errors;
156
+ return errors; //TODO reenable
157
157
  }
158
158
 
159
159
  module.exports = validate;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "react",
3
3
  "description": "React is a javascript module to make it easier to work with asynchronous code, by reducing boilerplate code and improving error and exception handling while allowing variable and task dependencies when defining flow.",
4
- "version": "0.2.5",
4
+ "version": "0.2.6",
5
5
  "author": "Jeff Barczewski <jeff.barczewski@gmail.com>",
6
6
  "repository": { "type": "git", "url": "http://github.com/jeffbski/react.git" },
7
7
  "bugs" : { "url": "http://github.com/jeffbski/react/issues" },
@@ -75,6 +75,19 @@ test('single task, single out params', function (t) {
75
75
  t.end();
76
76
  });
77
77
 
78
+ test('single task, err params', function (t) {
79
+ var fn = chainDefine()
80
+ .out('err')
81
+ .async(falpha).in().out('err', 'c')
82
+ .end();
83
+ t.deepEqual(fn.ast.inParams, []);
84
+ t.deepEqual(fn.ast.tasks, [
85
+ { f: falpha, type: 'cb', a: [], out: ['c'], name: 'falpha' }
86
+ ]);
87
+ t.deepEqual(fn.ast.outTask, { a: [], type: 'finalcb' });
88
+ t.end();
89
+ });
90
+
78
91
  test('single task, err and out params', function (t) {
79
92
  var fn = chainDefine()
80
93
  .out('err', 'c')
package/test/fstr.test.js CHANGED
@@ -59,6 +59,18 @@ test('single task, single out params', function (t) {
59
59
  t.end();
60
60
  });
61
61
 
62
+ test('single task, err params', function (t) {
63
+ var r = fstrDefine('a, b', [
64
+ falpha, 'a, b -> err, c'
65
+ ], 'err');
66
+ t.deepEqual(r.ast.inParams, ['a', 'b']);
67
+ t.deepEqual(r.ast.tasks, [
68
+ { f: falpha, a: ['a', 'b'], out: ['c'], type: 'cb', name: 'falpha'}
69
+ ]);
70
+ t.deepEqual(r.ast.outTask, { a: [], type: 'finalcb' });
71
+ t.end();
72
+ });
73
+
62
74
  test('single task, err and out params', function (t) {
63
75
  var r = fstrDefine('a, b', [
64
76
  falpha, 'a, b -> err, c'
@@ -62,6 +62,20 @@ test('single task, single out params', function (t) {
62
62
  t.end();
63
63
  });
64
64
 
65
+ test('single task, single out params, cb(err)', function (t) {
66
+ var locals = { falpha: falpha };
67
+ var r = pcode('a, b', [
68
+ 'c := falpha(a, b)',
69
+ 'cb(err)'
70
+ ], locals);
71
+ t.deepEqual(r.ast.inParams, ['a', 'b']);
72
+ t.deepEqual(r.ast.tasks, [
73
+ { f: 'falpha', a: ['a', 'b'], out: ['c'], type: 'cb', name: 'falpha'}
74
+ ]);
75
+ t.deepEqual(r.ast.outTask, { a: [], type: 'finalcb' });
76
+ t.end();
77
+ });
78
+
65
79
  test('single task, err and out params', function (t) {
66
80
  var locals = { falpha: falpha };
67
81
  var r = pcode('a, b', [
@@ -290,3 +290,4 @@ test('missing or mispelled validation ignores literals', function (t) {
290
290
  t.deepEqual(validate(ast), []);
291
291
  t.end();
292
292
  });
293
+
@@ -1 +0,0 @@
1
- barczewskij@ELSSTLM-184670.local.99357