react 0.6.0 → 0.7.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.
- package/.travis.yml +5 -2
- package/README.md +16 -2
- package/browser-test/dist.html +1 -1
- package/browser-test/index.html +3 -3
- package/browser-test/min.html +1 -1
- package/dist/react.js +407 -557
- package/dist/react.min.js +22 -1
- package/doc/advanced.md +9 -1
- package/lib/base-task.js +16 -19
- package/lib/cb-task.js +5 -5
- package/lib/core.js +7 -7
- package/lib/dsl.js +29 -29
- package/lib/error.js +4 -4
- package/lib/event-collector.js +6 -6
- package/lib/event-manager.js +13 -6
- package/lib/eventemitter.js +3 -3
- package/lib/finalcb-first-task.js +4 -4
- package/lib/finalcb-task.js +4 -4
- package/lib/id.js +3 -3
- package/lib/input-parser.js +10 -10
- package/lib/log-events.js +23 -14
- package/lib/parse.js +3 -3
- package/lib/promise-resolve.js +4 -4
- package/lib/promise-task.js +4 -4
- package/lib/react.js +7 -7
- package/lib/ret-task.js +4 -4
- package/lib/sprintf.js +8 -8
- package/lib/status.js +3 -3
- package/lib/task.js +44 -47
- package/lib/track-tasks.js +4 -4
- package/lib/validate.js +8 -8
- package/lib/vcon.js +31 -8
- package/lib/when-task.js +7 -8
- package/package.json +7 -8
- package/test/ast.mocha.js +4 -4
- package/test/cb-task.mocha.js +17 -17
- package/test/core-deferred.mocha.js +8 -8
- package/test/core-when.mocha.js +7 -7
- package/test/core.mocha.js +52 -52
- package/test/dsl.mocha.js +45 -43
- package/test/event-manager.mocha.js +2 -2
- package/test/exec-options.mocha.js +4 -4
- package/test/finalcb-task.mocha.js +6 -6
- package/test/input-parser.mocha.js +1 -1
- package/test/log-events.mocha.js +88 -0
- package/test/module-use.mocha.js +24 -7
- package/test/promise-auto-resolve.mocha.js +4 -4
- package/test/ret-task.mocha.js +18 -18
- package/test/task.mocha.js +3 -3
- package/test/validate-cb-task.mocha.js +11 -11
- package/test/validate-ret-task.mocha.js +14 -14
- package/test/validate.mocha.js +57 -57
- package/test/vcon.mocha.js +13 -13
- package/vendor/chai/chai.js +3371 -1158
- package/vendor/requirejs/require.js +1447 -1455
- package/vendor/requirejs/require.min.js +31 -28
- package/vendor/mocha/mocha.css +0 -135
- package/vendor/mocha/mocha.js +0 -3589
package/lib/task.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
'use strict';
|
|
2
1
|
/*global define:true */
|
|
3
2
|
|
|
4
3
|
if (typeof define !== 'function') {
|
|
@@ -11,15 +10,16 @@ define(['util', './sprintf', 'ensure-array', './cb-task', './promise-task',
|
|
|
11
10
|
function (util, sprintf, array, CbTask, PromiseTask,
|
|
12
11
|
RetTask, WhenTask, FinalCbTask, FinalCbFirstSuccTask,
|
|
13
12
|
STATUS, error, VContext, EventManager) {
|
|
14
|
-
|
|
13
|
+
'use strict';
|
|
14
|
+
|
|
15
15
|
var TASK_TYPES = {
|
|
16
16
|
cb: CbTask,
|
|
17
17
|
ret: RetTask,
|
|
18
18
|
promise: PromiseTask,
|
|
19
19
|
when: WhenTask
|
|
20
|
-
|
|
20
|
+
};
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
var DEFAULT_TASK_NAME = 'task_%s'; // for unnamed tasks use task_idx, like task_0
|
|
23
23
|
|
|
24
24
|
function taskTypeKeys() { return Object.keys(TASK_TYPES); }
|
|
25
25
|
|
|
@@ -35,9 +35,6 @@ function (util, sprintf, array, CbTask, PromiseTask,
|
|
|
35
35
|
var TASK_TYPE_SHOULD_MATCH = 'task.type should match one of ' +
|
|
36
36
|
Object.keys(TASK_TYPES).join(', ');
|
|
37
37
|
|
|
38
|
-
var validateTaskType, validateTask, create;
|
|
39
|
-
|
|
40
|
-
|
|
41
38
|
function format_error(errmsg, obj) {
|
|
42
39
|
return sprintf('%s - %s', errmsg, util.inspect(obj));
|
|
43
40
|
}
|
|
@@ -49,13 +46,13 @@ function (util, sprintf, array, CbTask, PromiseTask,
|
|
|
49
46
|
*/
|
|
50
47
|
function setMissingType(taskDef) {
|
|
51
48
|
if (taskDef.type) return taskDef; //already set, return
|
|
52
|
-
taskDef.type = 'cb';
|
|
49
|
+
taskDef.type = 'cb';
|
|
53
50
|
return taskDef;
|
|
54
51
|
}
|
|
55
52
|
|
|
56
53
|
function setMissingOutTaskType(taskDef) {
|
|
57
54
|
if (!taskDef.type) taskDef.type = Object.keys(OUT_TASK_TYPES)[0]; //use first outTask type as default
|
|
58
|
-
}
|
|
55
|
+
}
|
|
59
56
|
|
|
60
57
|
function ensureAfterArrStrings(taskDef) { // convert any fn to str, and make sure is array
|
|
61
58
|
if (!taskDef.after) return;
|
|
@@ -68,14 +65,14 @@ function (util, sprintf, array, CbTask, PromiseTask,
|
|
|
68
65
|
@returns array of errors for taskDef, could be empty
|
|
69
66
|
*/
|
|
70
67
|
function validate(taskDef) {
|
|
71
|
-
if (!taskDef || typeof(taskDef) !== 'object') {
|
|
68
|
+
if (!taskDef || typeof(taskDef) !== 'object') {
|
|
72
69
|
return [format_error(TASKDEF_IS_OBJECT, taskDef)];
|
|
73
70
|
}
|
|
74
71
|
setMissingType(taskDef);
|
|
75
72
|
ensureAfterArrStrings(taskDef);
|
|
76
73
|
var errors = [];
|
|
77
74
|
errors = errors.concat(validateTaskType(taskDef));
|
|
78
|
-
errors = errors.concat(validateTask(taskDef));
|
|
75
|
+
errors = errors.concat(validateTask(taskDef));
|
|
79
76
|
return errors;
|
|
80
77
|
}
|
|
81
78
|
|
|
@@ -102,30 +99,30 @@ function (util, sprintf, array, CbTask, PromiseTask,
|
|
|
102
99
|
setMissingOutTaskType(taskDef);
|
|
103
100
|
var taskCons = OUT_TASK_TYPES[taskDef.type];
|
|
104
101
|
errors = errors.concat(taskCons.validate(taskDef));
|
|
105
|
-
return errors;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
}
|
|
102
|
+
return errors;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
function validateLocalFunctions(inParams, taskDefs, locals) {
|
|
107
|
+
var errors = [];
|
|
108
|
+
function foo() { } //used to mock args as fns for validation check
|
|
109
|
+
var mock_args = inParams.map(function (p) { return foo; }); //mock args with fns
|
|
110
|
+
var vCon = VContext.create(mock_args, inParams, locals);
|
|
111
|
+
var tasks = taskDefs.map(create);
|
|
112
|
+
var tasksWFunctions = tasks.filter(function (t) { return (t.type !== 'when'); }); // non-when tasks need f
|
|
113
|
+
tasksWFunctions.forEach(function (t, idx) {
|
|
114
|
+
if (!t.functionExists(vCon)) { // error if function doesnt exist AND
|
|
115
|
+
if (!t.isMethodCall()) errors.push(sprintf(LOCAL_FN_MISSING, t.f, idx)); // not method OR
|
|
116
|
+
else {
|
|
117
|
+
var obj = t.getMethodObj(vCon);
|
|
118
|
+
if (obj && obj !== foo) { // (has parent but not our mock)
|
|
119
|
+
errors.push(sprintf(LOCAL_FN_MISSING, t.f, idx));
|
|
124
120
|
}
|
|
125
121
|
}
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
return errors;
|
|
125
|
+
}
|
|
129
126
|
|
|
130
127
|
function fName(fn) {
|
|
131
128
|
if (typeof(fn) === 'function') {
|
|
@@ -155,7 +152,7 @@ function (util, sprintf, array, CbTask, PromiseTask,
|
|
|
155
152
|
name = sprintf('%s_%s', name, idx); //if empty or already used, postfix with _idx
|
|
156
153
|
}
|
|
157
154
|
t.name = name;
|
|
158
|
-
|
|
155
|
+
namesMap[name] = t;
|
|
159
156
|
}
|
|
160
157
|
});
|
|
161
158
|
return namesMap;
|
|
@@ -168,20 +165,20 @@ function (util, sprintf, array, CbTask, PromiseTask,
|
|
|
168
165
|
|
|
169
166
|
function createOutTask(taskDef, cbFunc, tasks, vCon, execOptions, env) {
|
|
170
167
|
setMissingOutTaskType(taskDef);
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
168
|
+
var outTaskOptions = {
|
|
169
|
+
taskDef: taskDef,
|
|
170
|
+
cbFunc: cbFunc,
|
|
171
|
+
tasks: tasks,
|
|
172
|
+
vCon: vCon,
|
|
173
|
+
execOptions: execOptions,
|
|
174
|
+
env: env,
|
|
175
|
+
TaskConstructor: OUT_TASK_TYPES[taskDef.type]
|
|
176
|
+
};
|
|
180
177
|
EventManager.global.emit(EventManager.TYPES.EXEC_OUTTASK_CREATE, outTaskOptions); // hook
|
|
181
178
|
var TaskConstructor = outTaskOptions.TaskConstructor; // hook could have changed
|
|
182
179
|
return new TaskConstructor(outTaskOptions);
|
|
183
180
|
}
|
|
184
|
-
|
|
181
|
+
|
|
185
182
|
function createErrorHandler(vCon, outTask) {
|
|
186
183
|
return function handleError(task, err) {
|
|
187
184
|
task.status = STATUS.ERRORED;
|
|
@@ -199,7 +196,7 @@ function (util, sprintf, array, CbTask, PromiseTask,
|
|
|
199
196
|
|
|
200
197
|
function execTasks(tasksReady, vCon, handleError, contExec) {
|
|
201
198
|
tasksReady.forEach(function (t) { t.status = STATUS.READY; }); //set ready first, no double exec
|
|
202
|
-
tasksReady.forEach(function (t) { t.exec(vCon, handleError, contExec); });
|
|
199
|
+
tasksReady.forEach(function (t) { t.exec(vCon, handleError, contExec); });
|
|
203
200
|
}
|
|
204
201
|
|
|
205
202
|
/**
|
|
@@ -230,7 +227,7 @@ function (util, sprintf, array, CbTask, PromiseTask,
|
|
|
230
227
|
|
|
231
228
|
function serializeTasks(tasks) { // conveniently set after for each task idx > 0
|
|
232
229
|
nameTasks(tasks);
|
|
233
|
-
tasks.forEach(function (t, idx, arr) { if (idx !== 0) t.after = [arr[idx - 1].name]; });
|
|
230
|
+
tasks.forEach(function (t, idx, arr) { if (idx !== 0) t.after = [arr[idx - 1].name]; });
|
|
234
231
|
return tasks;
|
|
235
232
|
}
|
|
236
233
|
|
|
@@ -251,4 +248,4 @@ function (util, sprintf, array, CbTask, PromiseTask,
|
|
|
251
248
|
findReadyAndExec: findReadyAndExec
|
|
252
249
|
};
|
|
253
250
|
|
|
254
|
-
});
|
|
251
|
+
});
|
package/lib/track-tasks.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
'use strict';
|
|
2
1
|
/*global define:true */
|
|
3
2
|
|
|
4
3
|
if (typeof define !== 'function') {
|
|
@@ -6,7 +5,8 @@ if (typeof define !== 'function') {
|
|
|
6
5
|
}
|
|
7
6
|
|
|
8
7
|
define([], function () {
|
|
9
|
-
|
|
8
|
+
'use strict';
|
|
9
|
+
|
|
10
10
|
/**
|
|
11
11
|
Track the tasks, start, complete, args, results, elapsed time
|
|
12
12
|
Emits events that can be monitored
|
|
@@ -69,6 +69,6 @@ define([], function () {
|
|
|
69
69
|
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
-
return trackTasks;
|
|
72
|
+
return trackTasks;
|
|
73
73
|
|
|
74
|
-
});
|
|
74
|
+
});
|
package/lib/validate.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
'use strict';
|
|
2
1
|
/*global define:true */
|
|
3
2
|
|
|
4
3
|
if (typeof define !== 'function') {
|
|
@@ -6,8 +5,9 @@ if (typeof define !== 'function') {
|
|
|
6
5
|
}
|
|
7
6
|
|
|
8
7
|
define(['util', './sprintf', 'ensure-array', './task'], function (util, sprintf, array, taskUtil) {
|
|
8
|
+
'use strict';
|
|
9
9
|
/*jshint latedef:false */
|
|
10
|
-
|
|
10
|
+
|
|
11
11
|
var AST_IS_OBJECT = 'ast must be an object with inParams, tasks, and outTask';
|
|
12
12
|
var INPARAMS_ARR_STR = 'ast.inParams must be an array of strings';
|
|
13
13
|
var TASKS_ARR = 'ast.tasks must be an array of tasks';
|
|
@@ -17,7 +17,7 @@ define(['util', './sprintf', 'ensure-array', './task'], function (util, sprintf,
|
|
|
17
17
|
var MISSING_INPUTS = 'missing or mispelled variable referenced in flow definition: %s';
|
|
18
18
|
|
|
19
19
|
// match any of our literals true, false, int, float, quoted strings, or is property (has dot), match vcon.js
|
|
20
|
-
var LITERAL_OR_PROP_RE = /^(true|false|this|null|\-?[0-9\.]+)$|'|"|\./i;
|
|
20
|
+
var LITERAL_OR_PROP_RE = /^(true|false|this|null|\-?[0-9\.]+)$|'|"|\./i;
|
|
21
21
|
|
|
22
22
|
function format_error(errmsg, obj) {
|
|
23
23
|
return sprintf('%s - %s', errmsg, util.inspect(obj));
|
|
@@ -73,11 +73,11 @@ define(['util', './sprintf', 'ensure-array', './task'], function (util, sprintf,
|
|
|
73
73
|
tasks.forEach(function (t) {
|
|
74
74
|
errors = errors.concat(taskUtil.validate(t));
|
|
75
75
|
});
|
|
76
|
-
|
|
76
|
+
return errors;
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
function validateTaskNamesUnique(tasks) {
|
|
80
|
-
|
|
80
|
+
if (!Array.isArray(tasks)) return [];
|
|
81
81
|
var errors = [];
|
|
82
82
|
var namedTasks = tasks.filter(function (t) { return (t.name); });
|
|
83
83
|
var names = namedTasks.map(function (t) { return t.name; });
|
|
@@ -85,7 +85,7 @@ define(['util', './sprintf', 'ensure-array', './task'], function (util, sprintf,
|
|
|
85
85
|
if (accum[name]) errors.push(sprintf('%s %s', NAMES_UNIQUE, name));
|
|
86
86
|
else accum[name] = true;
|
|
87
87
|
return accum;
|
|
88
|
-
}, {});
|
|
88
|
+
}, {});
|
|
89
89
|
return errors;
|
|
90
90
|
}
|
|
91
91
|
|
|
@@ -151,9 +151,9 @@ define(['util', './sprintf', 'ensure-array', './task'], function (util, sprintf,
|
|
|
151
151
|
if (!isLiteralOrProp(p) && !names[p]) accum.push(sprintf(MISSING_INPUTS, p)); // add error if missing
|
|
152
152
|
return accum;
|
|
153
153
|
}, errors);
|
|
154
|
-
return errors;
|
|
154
|
+
return errors;
|
|
155
155
|
}
|
|
156
156
|
|
|
157
157
|
return validate;
|
|
158
158
|
|
|
159
|
-
});
|
|
159
|
+
});
|
package/lib/vcon.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
'use strict';
|
|
2
1
|
/*global define:true */
|
|
3
2
|
|
|
4
3
|
if (typeof define !== 'function') {
|
|
@@ -6,7 +5,8 @@ if (typeof define !== 'function') {
|
|
|
6
5
|
}
|
|
7
6
|
|
|
8
7
|
define([], function () {
|
|
9
|
-
|
|
8
|
+
'use strict';
|
|
9
|
+
|
|
10
10
|
var LAST_RESULTS_KEY = ':LAST_RESULTS';
|
|
11
11
|
|
|
12
12
|
function VContext() {
|
|
@@ -29,10 +29,23 @@ define([], function () {
|
|
|
29
29
|
var m = /^("|')([^\1]*)\1$/.exec(name); //check for quoted string " or '
|
|
30
30
|
if (m) return m[2]; // if is quoted str, return inside of the quotes
|
|
31
31
|
var nameAndProps = name.split('.');
|
|
32
|
-
|
|
32
|
+
var result = this.resolveNameArr(nameAndProps);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
VContext.prototype.resolveNameArr = function (nameAndProps) {
|
|
37
|
+
var vConValues = this.values;
|
|
38
|
+
var result = nameAndProps.reduce(function (accObj, prop) {
|
|
33
39
|
if (accObj === undefined || accObj === null) return undefined; // prevent exception
|
|
34
40
|
return accObj[prop];
|
|
35
41
|
}, vConValues); // vCon['foo']['bar']
|
|
42
|
+
if (result === undefined && this.global !== undefined) { // see if matches any global
|
|
43
|
+
result = nameAndProps.reduce(function (accObj, prop) {
|
|
44
|
+
if (accObj === undefined || accObj === null) return undefined; // prevent exception
|
|
45
|
+
return accObj[prop];
|
|
46
|
+
}, this.global); // global['foo']['bar']
|
|
47
|
+
}
|
|
48
|
+
return result;
|
|
36
49
|
};
|
|
37
50
|
|
|
38
51
|
/**
|
|
@@ -49,9 +62,9 @@ define([], function () {
|
|
|
49
62
|
};
|
|
50
63
|
|
|
51
64
|
VContext.prototype.setVar = function (name, value) { //name might be simple or obj.prop
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
65
|
+
if (!name) return; // if name is undefined or null, then discard
|
|
66
|
+
var vConValues = this.values;
|
|
67
|
+
var nameAndProps = name.split('.');
|
|
55
68
|
var lastProp = nameAndProps.pop();
|
|
56
69
|
var obj = nameAndProps.reduce(function (accObj, prop) {
|
|
57
70
|
var o = accObj[prop];
|
|
@@ -62,7 +75,7 @@ define([], function () {
|
|
|
62
75
|
}, vConValues); // vCon['foo']['bar']
|
|
63
76
|
obj[lastProp] = value;
|
|
64
77
|
};
|
|
65
|
-
|
|
78
|
+
|
|
66
79
|
|
|
67
80
|
/**
|
|
68
81
|
Create Variable Context using arguments passed in.
|
|
@@ -72,6 +85,7 @@ define([], function () {
|
|
|
72
85
|
@param self used to pass 'this' context in
|
|
73
86
|
*/
|
|
74
87
|
VContext.create = function (args, inParams, locals, self) {
|
|
88
|
+
/*jshint validthis:true, evil:true */
|
|
75
89
|
var initValues = {};
|
|
76
90
|
if (self) initValues['this'] = self;
|
|
77
91
|
if (locals) Object.keys(locals).forEach(function (k) { initValues[k] = locals[k]; }); // copy over keys
|
|
@@ -81,10 +95,19 @@ define([], function () {
|
|
|
81
95
|
if (param) vcon[param] = (x !== undefined) ? x : null; // upgrade undefined to null
|
|
82
96
|
return vcon;
|
|
83
97
|
}, initValues);
|
|
98
|
+
|
|
99
|
+
// add in global
|
|
100
|
+
if (typeof global === 'object') { // node.js and modern browsers expose global
|
|
101
|
+
vContext.global = global;
|
|
102
|
+
} else { // try to access this using Function eval of this
|
|
103
|
+
// http://stackoverflow.com/questions/3277182/how-to-get-the-global-object-in-javascript
|
|
104
|
+
vContext.global = new Function('return this')();
|
|
105
|
+
}
|
|
106
|
+
|
|
84
107
|
return vContext;
|
|
85
108
|
};
|
|
86
109
|
|
|
87
110
|
|
|
88
111
|
return VContext;
|
|
89
112
|
|
|
90
|
-
});
|
|
113
|
+
});
|
package/lib/when-task.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
'use strict';
|
|
2
1
|
/*global define:true */
|
|
3
2
|
|
|
4
3
|
if (typeof define !== 'function') {
|
|
@@ -6,7 +5,8 @@ if (typeof define !== 'function') {
|
|
|
6
5
|
}
|
|
7
6
|
|
|
8
7
|
define(['util', './sprintf', './base-task'], function (util, sprintf, BaseTask) {
|
|
9
|
-
|
|
8
|
+
'use strict';
|
|
9
|
+
|
|
10
10
|
/**
|
|
11
11
|
When task which checks if is a promise (has a then method)
|
|
12
12
|
and waits for it to resolve.
|
|
@@ -30,19 +30,18 @@ define(['util', './sprintf', './base-task'], function (util, sprintf, BaseTask)
|
|
|
30
30
|
WhenTask.prototype = new BaseTask();
|
|
31
31
|
WhenTask.prototype.constructor = WhenTask;
|
|
32
32
|
|
|
33
|
-
WhenTask.prototype.f = function when() { // just here to keep validations happy
|
|
34
|
-
}
|
|
33
|
+
WhenTask.prototype.f = function when() { }; // just here to keep validations happy
|
|
35
34
|
|
|
36
35
|
WhenTask.validate = function (taskDef) {
|
|
37
36
|
var errors = [];
|
|
38
37
|
if (!taskDef.a || !taskDef.out) {
|
|
39
38
|
errors.push(format_error(REQ, taskDef));
|
|
40
39
|
} else {
|
|
41
|
-
if (! (Array.isArray(taskDef.a) && taskDef.a.length === 1 &&
|
|
40
|
+
if (! (Array.isArray(taskDef.a) && taskDef.a.length === 1 &&
|
|
42
41
|
taskDef.a.every(function (x) { return (typeof(x) === 'string'); }))) {
|
|
43
42
|
errors.push(format_error(A_REQ, taskDef));
|
|
44
43
|
}
|
|
45
|
-
if (! (Array.isArray(taskDef.out) && taskDef.out.length <= 1 &&
|
|
44
|
+
if (! (Array.isArray(taskDef.out) && taskDef.out.length <= 1 &&
|
|
46
45
|
taskDef.out.every(function (x) { return (typeof(x) === 'string'); }))) {
|
|
47
46
|
errors.push(format_error(OUT_REQ, taskDef));
|
|
48
47
|
}
|
|
@@ -77,9 +76,9 @@ define(['util', './sprintf', './base-task'], function (util, sprintf, BaseTask)
|
|
|
77
76
|
}
|
|
78
77
|
} catch (err) { //catch and handle the task error, calling final cb
|
|
79
78
|
handleError(this, err);
|
|
80
|
-
}
|
|
79
|
+
}
|
|
81
80
|
};
|
|
82
81
|
|
|
83
82
|
return WhenTask;
|
|
84
83
|
|
|
85
|
-
});
|
|
84
|
+
});
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react",
|
|
3
3
|
"description": "React is a javascript module implementing a lightweight rules engine 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.
|
|
4
|
+
"version": "0.7.0",
|
|
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" },
|
|
@@ -9,16 +9,15 @@
|
|
|
9
9
|
"main": "lib/react",
|
|
10
10
|
"engines": { "node": ">=0.6" },
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"amdefine": "~0.0.
|
|
13
|
-
"eventemitter2": "~0.4.
|
|
14
|
-
"sprint": "~0.3.0",
|
|
12
|
+
"amdefine": "~0.0.5",
|
|
13
|
+
"eventemitter2": "~0.4.11",
|
|
15
14
|
"ensure-array": "~0.0.5"
|
|
16
15
|
},
|
|
17
16
|
"devDependencies": {
|
|
18
|
-
"requirejs": "~1.
|
|
19
|
-
"mocha": "~
|
|
20
|
-
"chai": "~
|
|
21
|
-
"jake": "~0.
|
|
17
|
+
"requirejs": "~2.1.6",
|
|
18
|
+
"mocha": "~1.10.0",
|
|
19
|
+
"chai": "~1.6.0",
|
|
20
|
+
"jake": "~0.5.15",
|
|
22
21
|
"Deferred" : "~0.1.1"
|
|
23
22
|
},
|
|
24
23
|
"scripts": {
|
package/test/ast.mocha.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
'use strict';
|
|
2
1
|
/*global react:true */
|
|
3
2
|
|
|
4
3
|
if (typeof(chai) === 'undefined') {
|
|
@@ -10,6 +9,7 @@ if (typeof(react) === 'undefined') {
|
|
|
10
9
|
}
|
|
11
10
|
|
|
12
11
|
(function () {
|
|
12
|
+
'use strict';
|
|
13
13
|
|
|
14
14
|
var t = chai.assert;
|
|
15
15
|
|
|
@@ -57,7 +57,7 @@ if (typeof(react) === 'undefined') {
|
|
|
57
57
|
var fn = react();
|
|
58
58
|
var collector = react.createEventCollector();
|
|
59
59
|
collector.capture(fn, 'ast.*');
|
|
60
|
-
|
|
60
|
+
|
|
61
61
|
var errors = fn.setAndValidateAST({
|
|
62
62
|
inParams: ['res', 'prefstr', 'poststr'],
|
|
63
63
|
tasks: [
|
|
@@ -80,7 +80,7 @@ if (typeof(react) === 'undefined') {
|
|
|
80
80
|
|
|
81
81
|
test('ast.defined event is passed to process', function (done) {
|
|
82
82
|
// browser might not have this, so only if process is an eventemitter
|
|
83
|
-
if (process && process.once) {
|
|
83
|
+
if (typeof process !== 'undefined' && process && process.once) {
|
|
84
84
|
var fn = react();
|
|
85
85
|
process.once('ast.defined', function (ast) {
|
|
86
86
|
t.isObject(ast);
|
|
@@ -99,7 +99,7 @@ if (typeof(react) === 'undefined') {
|
|
|
99
99
|
{ f: postfix, a: ['plres', 'poststr'], out: ['plresp'] }
|
|
100
100
|
],
|
|
101
101
|
outTask: { a: ['plresp'] }
|
|
102
|
-
});
|
|
102
|
+
});
|
|
103
103
|
} else {
|
|
104
104
|
done(); //skipping in browser
|
|
105
105
|
}
|