react 0.2.6 → 0.3.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/README.md +8 -7
- package/{lib → dsl}/chain.js +5 -3
- package/{lib → dsl}/fstr.js +7 -5
- package/{lib → dsl}/pcode.js +8 -6
- package/examples/chain-events1.js +3 -3
- package/examples/chain1.js +2 -2
- package/examples/default-events1.js +2 -2
- package/examples/fstr-events1.js +4 -3
- package/examples/fstr1.js +3 -2
- package/examples/pcode1.js +2 -2
- package/lib/base-task.js +1 -0
- package/lib/cb-task.js +14 -1
- package/lib/core.js +33 -9
- package/lib/dsl.js +14 -6
- package/lib/event-manager.js +16 -5
- package/lib/finalcb-first-task.js +9 -6
- package/lib/finalcb-task.js +9 -6
- package/lib/input-parser.js +7 -3
- package/lib/parse.js +6 -3
- package/lib/promise-task.js +89 -0
- package/lib/ret-task.js +1 -1
- package/lib/task.js +23 -19
- package/lib/validate.js +3 -3
- package/lib/vcon.js +6 -3
- package/lib/when-task.js +81 -0
- package/package.json +4 -2
- package/promise-resolve.js +35 -0
- package/react.js +0 -4
- package/test/core-deferred.test.js +134 -0
- package/test/core-promised.test.js +132 -0
- package/test/core-when.test.js +84 -0
- package/test/core.test.js +63 -4
- package/test/dsl.test.js +58 -6
- package/test/{chain.test.js → dsl/chain.test.js} +71 -1
- package/test/{fstr.test.js → dsl/fstr.test.js} +1 -1
- package/test/{pcode.test.js → dsl/pcode.test.js} +122 -1
- package/test/exec-options.test.js +2 -1
- package/test/finalcb-task.test.js +6 -5
- package/test/input-parser.test.js +10 -6
- package/test/module-use.test.js +2 -190
- package/test/promise-auto-resolve.test.js +51 -0
- package/test/validate.test.js +4 -2
- package/test/vcon.test.js +13 -0
- package/oldExamples/analyze.js +0 -29
- package/oldExamples/analyze2.js +0 -29
- package/oldExamples/example10-dsl.js +0 -63
- package/oldExamples/example11.js +0 -62
- package/oldExamples/example12.js +0 -63
- package/oldExamples/example13.js +0 -63
- package/oldExamples/example14.js +0 -63
- package/oldExamples/example15.js +0 -75
- package/oldExamples/example6-ast.js +0 -47
- package/oldExamples/example6-dsl.js +0 -49
- package/oldExamples/example8-ast.js +0 -55
- package/oldExamples/example8-dsl.js +0 -53
- package/oldExamples/example9-ast.js +0 -58
- package/oldExamples/example9-dsl.js +0 -57
- package/oldExamples/function-str-ex1.js +0 -33
- package/oldExamples/function-str-ex2.js +0 -67
- package/oldExamples/trait1.js +0 -41
- package/oldExamples/trait2.js +0 -44
|
@@ -0,0 +1,51 @@
|
|
|
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
|
+
});
|
package/test/validate.test.js
CHANGED
|
@@ -282,8 +282,10 @@ test('missing or mispelled validation ignores literals', function (t) {
|
|
|
282
282
|
var ast = {
|
|
283
283
|
inParams: [],
|
|
284
284
|
tasks: [
|
|
285
|
-
{ f: foo, a: ['true', 'false', '123', '123.1'], out: [] },
|
|
286
|
-
{ f: bar, a: ['-123', '-123.4', '"wow"', "'hey'"], out: [] }
|
|
285
|
+
{ f: foo, a: ['true', 'false', '123', '123.1', 'null'], out: [] },
|
|
286
|
+
{ f: bar, a: ['-123', '-123.4', '"wow"', "'hey'"], out: [] },
|
|
287
|
+
{ f: foo, a: ['"two-words"', "'also-two'", '"two.words"', "'also.two'"], out: [] },
|
|
288
|
+
{ f: foo, a: ['this'], out: [] }
|
|
287
289
|
],
|
|
288
290
|
outTask: { a: [] }
|
|
289
291
|
};
|
package/test/vcon.test.js
CHANGED
|
@@ -67,12 +67,25 @@ test('simple getVar returns existing value', function (t) {
|
|
|
67
67
|
test('getVar on literals returns the literal', function (t) {
|
|
68
68
|
t.equal(VContext.create([], []).getVar(true), true);
|
|
69
69
|
t.equal(VContext.create([], []).getVar(false), false);
|
|
70
|
+
t.equal(VContext.create([], []).getVar(null), null);
|
|
71
|
+
t.equal(VContext.create([], []).getVar('true'), true);
|
|
72
|
+
t.equal(VContext.create([], []).getVar('false'), false);
|
|
73
|
+
t.equal(VContext.create([], []).getVar('null'), null);
|
|
70
74
|
t.equal(VContext.create([], []).getVar(-100), -100);
|
|
71
75
|
t.equal(VContext.create([], []).getVar(100), 100);
|
|
72
76
|
t.equal(VContext.create([], []).getVar(123.4), 123.4);
|
|
73
77
|
t.equal(VContext.create([], []).getVar(-987.6), -987.6);
|
|
78
|
+
t.equal(VContext.create([], []).getVar('-100'), -100);
|
|
79
|
+
t.equal(VContext.create([], []).getVar('100'), 100);
|
|
80
|
+
t.equal(VContext.create([], []).getVar('123.4'), 123.4);
|
|
81
|
+
t.equal(VContext.create([], []).getVar('-987.6'), -987.6);
|
|
74
82
|
t.equal(VContext.create([], []).getVar('"foo"'), 'foo');
|
|
75
83
|
t.equal(VContext.create([], []).getVar("'foo'"), 'foo');
|
|
84
|
+
t.equal(VContext.create([], []).getVar("'foo.bar'"), 'foo.bar');
|
|
85
|
+
t.equal(VContext.create([], []).getVar("'foo-bar'"), 'foo-bar');
|
|
86
|
+
t.equal(VContext.create([], []).getVar("'foo-bar.json'"), 'foo-bar.json');
|
|
87
|
+
t.equal(VContext.create([], []).getVar('"foo-bar.json"'), 'foo-bar.json');
|
|
88
|
+
t.deepEqual(VContext.create([], [], null, { a: 1}).getVar('this'), { a: 1});
|
|
76
89
|
t.end();
|
|
77
90
|
});
|
|
78
91
|
|
package/oldExamples/analyze.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
function loadUser(uid, cb) { setTimeout(cb, 100, null, "User" + uid); }
|
|
4
|
-
function loadFile(filename, cb) { setTimeout(cb, 100, null, 'Filedata' + filename); }
|
|
5
|
-
function markdown(filedata) { return 'html' + filedata; }
|
|
6
|
-
function prepareDirectory(outDirname, cb) { setTimeout(cb, 200, null, 'dircreated-' + outDirname); }
|
|
7
|
-
function writeOutput(html, user, cb) { setTimeout(cb, 300, null, html + '_bytesWritten'); }
|
|
8
|
-
function loadEmailTemplate(cb) { setTimeout(cb, 50, null, 'emailmd'); }
|
|
9
|
-
function customizeEmail(user, emailHtml, cb) { return 'cust-' + user + emailHtml; }
|
|
10
|
-
function deliverEmail(custEmailHtml, cb) { setTimeout(cb, 100, null, 'delivered-' + custEmailHtml); }
|
|
11
|
-
|
|
12
|
-
function analyze(fn) {
|
|
13
|
-
console.log(fn.toString());
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
var fn = analyze(function loadAndSend(filename, uid, outDirname, cb,
|
|
17
|
-
R, filedata, outDirName, dircreated, emailmd, emailHtml,
|
|
18
|
-
custEmailHtml, deliveredEmail, err, user, html, bytesWritten) {
|
|
19
|
-
R.async(loadUser, uid).cb(err, user)
|
|
20
|
-
.async(loadFile, filename).cb(err, filedata)
|
|
21
|
-
.sync(markdown, filedata).returns(filedata)
|
|
22
|
-
.async(prepareDirectory, outDirName).cb(dircreated)
|
|
23
|
-
.async(writeOutput, html, user).cb(err, bytesWritten).after(prepareDirectory)
|
|
24
|
-
.async(loadEmailTemplate).cb(err, emailmd)
|
|
25
|
-
.sync(markdown, emailmd).returns(emailHtml)
|
|
26
|
-
.sync(customizeEmail, user, emailHtml).returns(custEmailHtml)
|
|
27
|
-
.sync(deliverEmail, custEmailHtml).returns(deliveredEmail).after(writeOutput)
|
|
28
|
-
.finalCb(err, html, user, bytesWritten);
|
|
29
|
-
});
|
package/oldExamples/analyze2.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
function loadUser(uid, cb) { setTimeout(cb, 100, null, "User" + uid); }
|
|
4
|
-
function loadFile(filename, cb) { setTimeout(cb, 100, null, 'Filedata' + filename); }
|
|
5
|
-
function markdown(filedata) { return 'html' + filedata; }
|
|
6
|
-
function prepareDirectory(outDirname, cb) { setTimeout(cb, 200, null, 'dircreated-' + outDirname); }
|
|
7
|
-
function writeOutput(html, user, cb) { setTimeout(cb, 300, null, html + '_bytesWritten'); }
|
|
8
|
-
function loadEmailTemplate(cb) { setTimeout(cb, 50, null, 'emailmd'); }
|
|
9
|
-
function customizeEmail(user, emailHtml, cb) { return 'cust-' + user + emailHtml; }
|
|
10
|
-
function deliverEmail(custEmailHtml, cb) { setTimeout(cb, 100, null, 'delivered-' + custEmailHtml); }
|
|
11
|
-
|
|
12
|
-
function react(fn) {
|
|
13
|
-
console.log(fn.toString());
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
var fn = react(function (R, filename, uid, outDirname, cb) {
|
|
17
|
-
var filedata, outDirName, dircreated, emailmd, emailHtml,
|
|
18
|
-
custEmailHtml, deliveredEmail, err, user, html, bytesWritten;
|
|
19
|
-
R.async(loadUser).in(uid).out(err, user)
|
|
20
|
-
.async(loadFile).in(filename).out(err, filedata)
|
|
21
|
-
.sync(markdown, filedata).out(filedata)
|
|
22
|
-
.async(prepareDirectory, outDirName).out(dircreated)
|
|
23
|
-
.async(writeOutput, html, user).out(err, bytesWritten).after(prepareDirectory)
|
|
24
|
-
.async(loadEmailTemplate).out(err, emailmd)
|
|
25
|
-
.sync(markdown, emailmd).out(emailHtml)
|
|
26
|
-
.sync(customizeEmail, user, emailHtml).out(custEmailHtml)
|
|
27
|
-
.sync(deliverEmail, custEmailHtml).out(deliveredEmail).after(writeOutput)
|
|
28
|
-
.cb(err, html, user, bytesWritten);
|
|
29
|
-
});
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var reactMod = require(__dirname+'/../lib/react.js');
|
|
4
|
-
var react = reactMod.react;
|
|
5
|
-
|
|
6
|
-
var r = react('allStart, titlesFile, numQueries, numFactors, cb').define(
|
|
7
|
-
openTitlesStream, 'titlesFile -> err, fileStream', { tasks: [
|
|
8
|
-
split, 'fileStream -> err, lineStream',
|
|
9
|
-
filterLines, 'lineStream, numQueries -> err, filteredLineStream',
|
|
10
|
-
trimLines, 'filteredLineStream -> err, trimmedLineStream',
|
|
11
|
-
recordTime, ' -> returns qStart', { after: trimLines },
|
|
12
|
-
runQuery, 'trimmedLineStream, numFactors -> err, qResults', { after: recordTime },
|
|
13
|
-
calcTime, 'qStart -> returns qTime', { after: runQuery },
|
|
14
|
-
sumTotal, 'qTime -> returns qTotal', { reduce: true }
|
|
15
|
-
], cb:'-> err, qTotal' },
|
|
16
|
-
calcTime, 'allStart -> returns allElapsed', { after: openTitlesStream }
|
|
17
|
-
).callbackDef('allElapsed, qTotal, numQueries, numFactors');
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
//new simpler syntax
|
|
22
|
-
|
|
23
|
-
var react = require('react');
|
|
24
|
-
|
|
25
|
-
var loadAndSave = react('allStart, titlesFile, numQueries, numFactors, cb',
|
|
26
|
-
foo, 'bar -> err, baz',
|
|
27
|
-
cat, 'baz -> err, zoo',
|
|
28
|
-
'-> err, allElapse, qTotal');
|
|
29
|
-
|
|
30
|
-
var loadAndSave = react('allStart, titlesFile, numQueries, numFactors, cb', [
|
|
31
|
-
foo, 'bar -> err, baz',
|
|
32
|
-
cat, 'baz -> returns zoo'
|
|
33
|
-
], 'err, allElapse, qTotal');
|
|
34
|
-
|
|
35
|
-
var loadAndSave = react('allStart, titlesFile, numQueries, numFactors, cb', [
|
|
36
|
-
foo, 'bar => err, baz',
|
|
37
|
-
cat, 'baz -> returns zoo'
|
|
38
|
-
], 'err, allElapse, qTotal');
|
|
39
|
-
|
|
40
|
-
var loadAndSave = react('allStart, titlesFile, numQueries, numFactors, cb', [
|
|
41
|
-
foo, 'bar -> err, baz',
|
|
42
|
-
'zoo <- ', cat, 'baz',
|
|
43
|
-
], 'err, allElapse, qTotal');
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
var loadAndSave = react('allStart, titlesFile, numQueries, numFactors, cb -> err, allElapse, qTotal',
|
|
48
|
-
foo, 'bar -> err, baz',
|
|
49
|
-
cat, 'baz -> err, zoo');
|
|
50
|
-
loadAndSave(1, 2, 3, cb);
|
|
51
|
-
|
|
52
|
-
OR using AST
|
|
53
|
-
|
|
54
|
-
var loadAndSave = react();
|
|
55
|
-
loadAndSave.ast.inputs(['one', 'two'])
|
|
56
|
-
.tasks({ })
|
|
57
|
-
.outTask({ });
|
|
58
|
-
|
|
59
|
-
loadAndSave(1,2,cb);
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
package/oldExamples/example11.js
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var react = require('react');
|
|
4
|
-
|
|
5
|
-
function loadUser(uid, cb) { setTimeout(cb, 100, null, "User" + uid); }
|
|
6
|
-
function loadFile(filename, cb) { setTimeout(cb, 100, null, 'Filedata' + filename); }
|
|
7
|
-
function markdown(filedata) { return 'html' + filedata; }
|
|
8
|
-
function prepareDirectory(outDirname, cb) { setTimeout(cb, 200, null, 'dircreated-' + outDirname); }
|
|
9
|
-
function writeOutput(html, user, cb) { setTimeout(cb, 300, null, html + '_bytesWritten'); }
|
|
10
|
-
function loadEmailTemplate(cb) { setTimeout(cb, 50, null, 'emailmd'); }
|
|
11
|
-
function customizeEmail(user, emailHtml, cb) { return 'cust-' + user + emailHtml; }
|
|
12
|
-
function deliverEmail(custEmailHtml, cb) { setTimeout(cb, 100, null, 'delivered-' + custEmailHtml); }
|
|
13
|
-
|
|
14
|
-
function useHtml(err, html, user, bytesWritten) {
|
|
15
|
-
if (err) {
|
|
16
|
-
console.log('***Error: %s', err);
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
console.log('final result: %s, user: %s, written:%s', html, user, bytesWritten);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
var fn = react(function (r, filename, uid, outDirname, cb) {
|
|
25
|
-
var err, user, html, bytesWritten;
|
|
26
|
-
r.sync(loadUser).in(uid).out(err, user)
|
|
27
|
-
.cb(err, html, user, bytesWritten);
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
/*
|
|
32
|
-
var r = react();
|
|
33
|
-
r.ast.inputNames = ['filename', 'uid', 'outDirname', 'cb'];
|
|
34
|
-
r.ast.taskDefs = [
|
|
35
|
-
{ f:loadUser, a:['uid'], cb:['user'] },
|
|
36
|
-
{ f:loadFile, a:['filename'], cb:['filedata'] },
|
|
37
|
-
{ f:markdown, a:['filedata'], ret:['html'] },
|
|
38
|
-
{ f:prepareDirectory, a:['outDirname'], cb:['dircreated'] },
|
|
39
|
-
{ f:writeOutput, a:['html', 'user'], cb:['bytesWritten'], after:['prepareDirectory'] },
|
|
40
|
-
{ f:loadEmailTemplate, a:[], cb:['emailmd'] },
|
|
41
|
-
{ f:markdown, a:['emailmd'], ret:['emailHtml'] },
|
|
42
|
-
{ f:customizeEmail, a:['user', 'emailHtml'], ret:['custEmailHtml'] },
|
|
43
|
-
{ f:deliverEmail, a:['custEmailHtml'], cb:['deliveredEmail'], after:['writeOutput'] }
|
|
44
|
-
];
|
|
45
|
-
r.ast.finalOutputNames = ['html', 'user', 'bytesWritten'];
|
|
46
|
-
*/
|
|
47
|
-
|
|
48
|
-
var fn = react(function (r, filename, uid, outDirname, cb) {
|
|
49
|
-
var filedata, outDirName, dircreated, emailmd, emailHtml, custEmailHtml, deliveredEmail;
|
|
50
|
-
var err, user, html, bytesWritten;
|
|
51
|
-
|
|
52
|
-
r.async(loadUser).in(uid).out(err, user)
|
|
53
|
-
.async(loadFile).in(filename).out(filedata)
|
|
54
|
-
.sync(markdown).in(filedata).out(html)
|
|
55
|
-
.async(prepareDirectory).in(outDirName).out(dircreated)
|
|
56
|
-
.async(writeOutput).in(html, user).out(bytesWritten).after(prepareDirectory)
|
|
57
|
-
.async(loadEmailTemplate).out(emailmd)
|
|
58
|
-
.sync(markdown).in(emailmd).out(emailHtml)
|
|
59
|
-
.sync(customizeEmail).in(user, emailHtml).out(custEmailHtml)
|
|
60
|
-
.async(deliveredEmail).in(custEmailHtml).out(deliveredEmail).after(writeOutput)
|
|
61
|
-
.cb(err, html, user, bytesWritten);
|
|
62
|
-
});
|
package/oldExamples/example12.js
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var react = require('react');
|
|
4
|
-
|
|
5
|
-
function loadUser(uid, cb) { setTimeout(cb, 100, null, "User" + uid); }
|
|
6
|
-
function loadFile(filename, cb) { setTimeout(cb, 100, null, 'Filedata' + filename); }
|
|
7
|
-
function markdown(filedata) { return 'html' + filedata; }
|
|
8
|
-
function prepareDirectory(outDirname, cb) { setTimeout(cb, 200, null, 'dircreated-' + outDirname); }
|
|
9
|
-
function writeOutput(html, user, cb) { setTimeout(cb, 300, null, html + '_bytesWritten'); }
|
|
10
|
-
function loadEmailTemplate(cb) { setTimeout(cb, 50, null, 'emailmd'); }
|
|
11
|
-
function customizeEmail(user, emailHtml, cb) { return 'cust-' + user + emailHtml; }
|
|
12
|
-
function deliverEmail(custEmailHtml, cb) { setTimeout(cb, 100, null, 'delivered-' + custEmailHtml); }
|
|
13
|
-
|
|
14
|
-
function useHtml(err, html, user, bytesWritten) {
|
|
15
|
-
if (err) {
|
|
16
|
-
console.log('***Error: %s', err);
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
console.log('final result: %s, user: %s, written:%s', html, user, bytesWritten);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
var fn = react(function (r, filename, uid, outDirname, cb) {
|
|
25
|
-
var err, user, html, bytesWritten;
|
|
26
|
-
r.sync(loadUser).in(uid).out(err, user)
|
|
27
|
-
.cb(err, html, user, bytesWritten);
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
/*
|
|
32
|
-
var r = react();
|
|
33
|
-
r.ast.inputNames = ['filename', 'uid', 'outDirname', 'cb'];
|
|
34
|
-
r.ast.taskDefs = [
|
|
35
|
-
{ f:loadUser, a:['uid'], cb:['user'] },
|
|
36
|
-
{ f:loadFile, a:['filename'], cb:['filedata'] },
|
|
37
|
-
{ f:markdown, a:['filedata'], ret:['html'] },
|
|
38
|
-
{ f:prepareDirectory, a:['outDirname'], cb:['dircreated'] },
|
|
39
|
-
{ f:writeOutput, a:['html', 'user'], cb:['bytesWritten'], after:['prepareDirectory'] },
|
|
40
|
-
{ f:loadEmailTemplate, a:[], cb:['emailmd'] },
|
|
41
|
-
{ f:markdown, a:['emailmd'], ret:['emailHtml'] },
|
|
42
|
-
{ f:customizeEmail, a:['user', 'emailHtml'], ret:['custEmailHtml'] },
|
|
43
|
-
{ f:deliverEmail, a:['custEmailHtml'], cb:['deliveredEmail'], after:['writeOutput'] }
|
|
44
|
-
];
|
|
45
|
-
r.ast.finalOutputNames = ['html', 'user', 'bytesWritten'];
|
|
46
|
-
*/
|
|
47
|
-
|
|
48
|
-
var fn = react(function (r, filename, uid, outDirname, cb,
|
|
49
|
-
filedata, outDirName, dircreated, emailmd, emailHtml,
|
|
50
|
-
custEmailHtml, deliveredEmail,
|
|
51
|
-
err, user, html, bytesWritten) {
|
|
52
|
-
|
|
53
|
-
r.async(loadUser, [uid], [err, user])
|
|
54
|
-
.async(loadFile, [filename], [filedata])
|
|
55
|
-
.sync(markdown, [filedata], filedata)
|
|
56
|
-
.async(prepareDirectory, [outDirName], [dircreated])
|
|
57
|
-
.async(writeOutput, [html, user], [err, bytesWritten], { after: prepareDirectory })
|
|
58
|
-
.async(loadEmailTemplate, [], [emailmd])
|
|
59
|
-
.sync(markdown, [emailmd], emailHtml)
|
|
60
|
-
.sync(customizeEmail, [user, emailHtml], custEmailHtml)
|
|
61
|
-
.sync(deliverEmail, [custEmailHtml], [deliveredEmail], { after: writeOutput })
|
|
62
|
-
.cb(err, html, user, bytesWritten);
|
|
63
|
-
});
|
package/oldExamples/example13.js
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var react = require('react');
|
|
4
|
-
|
|
5
|
-
function loadUser(uid, cb) { setTimeout(cb, 100, null, "User" + uid); }
|
|
6
|
-
function loadFile(filename, cb) { setTimeout(cb, 100, null, 'Filedata' + filename); }
|
|
7
|
-
function markdown(filedata) { return 'html' + filedata; }
|
|
8
|
-
function prepareDirectory(outDirname, cb) { setTimeout(cb, 200, null, 'dircreated-' + outDirname); }
|
|
9
|
-
function writeOutput(html, user, cb) { setTimeout(cb, 300, null, html + '_bytesWritten'); }
|
|
10
|
-
function loadEmailTemplate(cb) { setTimeout(cb, 50, null, 'emailmd'); }
|
|
11
|
-
function customizeEmail(user, emailHtml, cb) { return 'cust-' + user + emailHtml; }
|
|
12
|
-
function deliverEmail(custEmailHtml, cb) { setTimeout(cb, 100, null, 'delivered-' + custEmailHtml); }
|
|
13
|
-
|
|
14
|
-
function useHtml(err, html, user, bytesWritten) {
|
|
15
|
-
if (err) {
|
|
16
|
-
console.log('***Error: %s', err);
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
console.log('final result: %s, user: %s, written:%s', html, user, bytesWritten);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
var fn = react(function (r, filename, uid, outDirname, cb) {
|
|
25
|
-
var err, user, html, bytesWritten;
|
|
26
|
-
r.sync(loadUser).in(uid).out(err, user)
|
|
27
|
-
.cb(err, html, user, bytesWritten);
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
/*
|
|
32
|
-
var r = react();
|
|
33
|
-
r.ast.inputNames = ['filename', 'uid', 'outDirname', 'cb'];
|
|
34
|
-
r.ast.taskDefs = [
|
|
35
|
-
{ f:loadUser, a:['uid'], cb:['user'] },
|
|
36
|
-
{ f:loadFile, a:['filename'], cb:['filedata'] },
|
|
37
|
-
{ f:markdown, a:['filedata'], ret:['html'] },
|
|
38
|
-
{ f:prepareDirectory, a:['outDirname'], cb:['dircreated'] },
|
|
39
|
-
{ f:writeOutput, a:['html', 'user'], cb:['bytesWritten'], after:['prepareDirectory'] },
|
|
40
|
-
{ f:loadEmailTemplate, a:[], cb:['emailmd'] },
|
|
41
|
-
{ f:markdown, a:['emailmd'], ret:['emailHtml'] },
|
|
42
|
-
{ f:customizeEmail, a:['user', 'emailHtml'], ret:['custEmailHtml'] },
|
|
43
|
-
{ f:deliverEmail, a:['custEmailHtml'], cb:['deliveredEmail'], after:['writeOutput'] }
|
|
44
|
-
];
|
|
45
|
-
r.ast.finalOutputNames = ['html', 'user', 'bytesWritten'];
|
|
46
|
-
*/
|
|
47
|
-
|
|
48
|
-
var fn = react(function (r, filename, uid, outDirname, cb,
|
|
49
|
-
filedata, outDirName, dircreated, emailmd, emailHtml,
|
|
50
|
-
custEmailHtml, deliveredEmail,
|
|
51
|
-
err, user, html, bytesWritten) {
|
|
52
|
-
|
|
53
|
-
r.async(loadUser, uid).cb(err, user)
|
|
54
|
-
.async(loadFile, filename).cb(err, filedata)
|
|
55
|
-
.sync(markdown, filedata).returns(filedata)
|
|
56
|
-
.async(prepareDirectory, outDirName).cb(dircreated)
|
|
57
|
-
.async(writeOutput, html, user).cb(err, bytesWritten).after(prepareDirectory)
|
|
58
|
-
.async(loadEmailTemplate).cb(err, emailmd)
|
|
59
|
-
.sync(markdown, emailmd).returns(emailHtml)
|
|
60
|
-
.sync(customizeEmail, user, emailHtml).returns(custEmailHtml)
|
|
61
|
-
.sync(deliverEmail, custEmailHtml).returns(deliveredEmail).after(writeOutput)
|
|
62
|
-
.finalCb(err, html, user, bytesWritten);
|
|
63
|
-
});
|
package/oldExamples/example14.js
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var react = require('react');
|
|
4
|
-
|
|
5
|
-
function loadUser(uid, cb) { setTimeout(cb, 100, null, "User" + uid); }
|
|
6
|
-
function loadFile(filename, cb) { setTimeout(cb, 100, null, 'Filedata' + filename); }
|
|
7
|
-
function markdown(filedata) { return 'html' + filedata; }
|
|
8
|
-
function prepareDirectory(outDirname, cb) { setTimeout(cb, 200, null, 'dircreated-' + outDirname); }
|
|
9
|
-
function writeOutput(html, user, cb) { setTimeout(cb, 300, null, html + '_bytesWritten'); }
|
|
10
|
-
function loadEmailTemplate(cb) { setTimeout(cb, 50, null, 'emailmd'); }
|
|
11
|
-
function customizeEmail(user, emailHtml, cb) { return 'cust-' + user + emailHtml; }
|
|
12
|
-
function deliverEmail(custEmailHtml, cb) { setTimeout(cb, 100, null, 'delivered-' + custEmailHtml); }
|
|
13
|
-
|
|
14
|
-
function useHtml(err, html, user, bytesWritten) {
|
|
15
|
-
if (err) {
|
|
16
|
-
console.log('***Error: %s', err);
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
console.log('final result: %s, user: %s, written:%s', html, user, bytesWritten);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
var fn = react(function (r, filename, uid, outDirname, cb) {
|
|
25
|
-
var err, user, html, bytesWritten;
|
|
26
|
-
r.sync(loadUser).in(uid).out(err, user)
|
|
27
|
-
.cb(err, html, user, bytesWritten);
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
/*
|
|
32
|
-
var r = react();
|
|
33
|
-
r.ast.inputNames = ['filename', 'uid', 'outDirname', 'cb'];
|
|
34
|
-
r.ast.taskDefs = [
|
|
35
|
-
{ f:loadUser, a:['uid'], cb:['user'] },
|
|
36
|
-
{ f:loadFile, a:['filename'], cb:['filedata'] },
|
|
37
|
-
{ f:markdown, a:['filedata'], ret:['html'] },
|
|
38
|
-
{ f:prepareDirectory, a:['outDirname'], cb:['dircreated'] },
|
|
39
|
-
{ f:writeOutput, a:['html', 'user'], cb:['bytesWritten'], after:['prepareDirectory'] },
|
|
40
|
-
{ f:loadEmailTemplate, a:[], cb:['emailmd'] },
|
|
41
|
-
{ f:markdown, a:['emailmd'], ret:['emailHtml'] },
|
|
42
|
-
{ f:customizeEmail, a:['user', 'emailHtml'], ret:['custEmailHtml'] },
|
|
43
|
-
{ f:deliverEmail, a:['custEmailHtml'], cb:['deliveredEmail'], after:['writeOutput'] }
|
|
44
|
-
];
|
|
45
|
-
r.ast.finalOutputNames = ['html', 'user', 'bytesWritten'];
|
|
46
|
-
*/
|
|
47
|
-
|
|
48
|
-
var fn = react(function (filename, uid, outDirname, cb,
|
|
49
|
-
R, filedata, outDirName, dircreated, emailmd, emailHtml,
|
|
50
|
-
custEmailHtml, deliveredEmail, err, user, html, bytesWritten) {
|
|
51
|
-
R.async(loadUser, uid).cb(err, user)
|
|
52
|
-
.async(loadFile, filename).cb(err, filedata)
|
|
53
|
-
.sync(markdown, filedata).returns(filedata)
|
|
54
|
-
.async(prepareDirectory, outDirName).cb(dircreated)
|
|
55
|
-
.async(writeOutput, html, user).cb(err, bytesWritten).after(prepareDirectory)
|
|
56
|
-
.async(loadEmailTemplate).cb(err, emailmd)
|
|
57
|
-
.sync(markdown, emailmd).returns(emailHtml)
|
|
58
|
-
.sync(customizeEmail, user, emailHtml).returns(custEmailHtml)
|
|
59
|
-
.sync(deliverEmail, custEmailHtml).returns(deliveredEmail).after(writeOutput)
|
|
60
|
-
.finalCb(err, html, user, bytesWritten);
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
|