react 0.2.3 → 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 +15 -13
- package/{lib → dsl}/chain.js +5 -3
- package/{lib → dsl}/fstr.js +17 -6
- package/{lib → dsl}/pcode.js +19 -8
- 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 +36 -12
- package/lib/dsl.js +16 -5
- package/lib/event-manager.js +16 -4
- 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 +14 -5
- package/lib/vcon.js +8 -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 +70 -5
- package/test/{chain.test.js → dsl/chain.test.js} +84 -1
- package/test/{fstr.test.js → dsl/fstr.test.js} +13 -1
- package/test/{pcode.test.js → dsl/pcode.test.js} +136 -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 +30 -1
- 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
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
|
-
|
package/oldExamples/example15.js
DELETED
|
@@ -1,75 +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
|
-
|
|
50
|
-
//local vars used
|
|
51
|
-
var filedata = R.var();
|
|
52
|
-
var outDirName = R.var();
|
|
53
|
-
var dircreated = R.var();
|
|
54
|
-
var emailmd = R.var();
|
|
55
|
-
var emailHtml = R.var();
|
|
56
|
-
var custEmailHtml = R.var();
|
|
57
|
-
var deliveredEmail = R.var();
|
|
58
|
-
var err = R.var();
|
|
59
|
-
var user = R.var();
|
|
60
|
-
var html = R.var();
|
|
61
|
-
var bytesWritten = R.var();
|
|
62
|
-
|
|
63
|
-
R.out(err, html, user, bytesWritten)
|
|
64
|
-
.async(loadUser, uid).cb(err, user)
|
|
65
|
-
.async(loadFile, filename).cb(err, filedata)
|
|
66
|
-
.sync(markdown, filedata).returns(filedata)
|
|
67
|
-
.async(prepareDirectory, outDirName).cb(dircreated)
|
|
68
|
-
.async(writeOutput, html, user).cb(err, bytesWritten).after(prepareDirectory)
|
|
69
|
-
.async(loadEmailTemplate).cb(err, emailmd)
|
|
70
|
-
.sync(markdown, emailmd).returns(emailHtml)
|
|
71
|
-
.sync(customizeEmail, user, emailHtml).returns(custEmailHtml)
|
|
72
|
-
.sync(deliverEmail, custEmailHtml).returns(deliveredEmail).after(writeOutput);
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
Example setting the AST directly without using define
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
var reactMod = require(__dirname+'/../lib/react.js');
|
|
8
|
-
reactMod.reactOptions.debugOutput = true;
|
|
9
|
-
var react = reactMod.react;
|
|
10
|
-
|
|
11
|
-
function loadUser(uid, cb){ setTimeout(cb, 100, null, "User"+uid); }
|
|
12
|
-
function loadFile(filename, cb){ setTimeout(cb, 100, null, 'Filedata'+filename); }
|
|
13
|
-
function markdown(filedata) { return 'html'+filedata; }
|
|
14
|
-
function prepareDirectory(outDirname, cb){ setTimeout(cb, 200, null, 'dircreated-'+outDirname); }
|
|
15
|
-
function writeOutput(html, user, cb){ setTimeout(cb, 300, null, html+'_bytesWritten'); }
|
|
16
|
-
function loadEmailTemplate(cb) { setTimeout(cb, 50, null, 'emailmd'); }
|
|
17
|
-
function customizeEmail(user, emailHtml, cb) { return 'cust-'+user+emailHtml; }
|
|
18
|
-
function deliverEmail(custEmailHtml, cb) { setTimeout(cb, 100, null, 'delivered-'+custEmailHtml); }
|
|
19
|
-
|
|
20
|
-
function useHtml(err, html, user, bytesWritten) {
|
|
21
|
-
if(err) {
|
|
22
|
-
console.log('***Error: %s', err);
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
console.log('final result: %s, user: %s, written:%s', html, user, bytesWritten);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
var r = reactMod.react();
|
|
29
|
-
r.ast.inputNames = ['filename', 'uid', 'outDirname', 'cb'];
|
|
30
|
-
r.ast.taskDefs = [
|
|
31
|
-
{ f:loadUser, a:['uid'], cb:['user'] },
|
|
32
|
-
{ f:loadFile, a:['filename'], cb:['filedata'] },
|
|
33
|
-
{ f:markdown, a:['filedata'], ret:['html'] },
|
|
34
|
-
{ f:prepareDirectory, a:['outDirname'], cb:['dircreated'] },
|
|
35
|
-
{ f:writeOutput, a:['html', 'user'], cb:['bytesWritten'], after:['prepareDirectory'] },
|
|
36
|
-
{ f:loadEmailTemplate, a:[], cb:['emailmd'] },
|
|
37
|
-
{ f:markdown, a:['emailmd'], ret:['emailHtml'] },
|
|
38
|
-
{ f:customizeEmail, a:['user', 'emailHtml'], ret:['custEmailHtml'] },
|
|
39
|
-
{ f:deliverEmail, a:['custEmailHtml'], cb:['deliveredEmail'], after:['writeOutput'] }
|
|
40
|
-
];
|
|
41
|
-
r.ast.finalOutputNames = ['html', 'user', 'bytesWritten'];
|
|
42
|
-
|
|
43
|
-
r.exec("hello.txt", 100, 'outHello', useHtml);
|
|
44
|
-
r.exec("small.txt", 200, 'outSmall', useHtml);
|
|
45
|
-
r.exec("world.txt", 300, 'outWorld', useHtml);
|
|
46
|
-
|
|
47
|
-
|