var requirejs = require("requirejs");
requirejs.config({
nodeRequire: require
});
require = requirejs;
requirejs(["streamline/lib/callbacks/transform", "streamline/lib/callbacks/runtime"], function(transform, runtime) {
"use strict";
var __rt = runtime.runtime("test"),
__func = __rt.__func,
__cb = __rt.__cb,
__trap = __rt.__trap;
function streamline(js) {
var streamlinejs = transform.transform(js, {
noHelpers: true,
lines: "ignore"
});
return new Function("data", "resolvePartial", "resolveVariable", "callback", "__func", "__cb", "__trap", streamlinejs);
}
function resolvePartial(name, callback) {
var template = "";
template += "var res = '';\n";
template += "res += 'partial:" + name + "\n';\n";
template += "callback(null, res);\n";
var fn = streamline(template);
callback(null, fn);
}
function resolveVariable(name, callback) {
setTimeout(function() {
callback(null, 'variable:' + name + '\n');
}, 500);
}
var template = "";
template += "var res = '';\n";
template += "if (data.a && data.a > 0) {\n";
template += " setTimeout(_, 1000);\n";
template += " res += 'a > 0\n';\n";
template += " if (data.a === 1) {\n";
template += " res += 'a = 1\n';\n";
template += " }\n";
template += "} else {\n";
template += " res += 'a < 0\n';\n";
template += "}\n";
template += "res += resolvePartial('test', _)(data, resolvePartial, resolveVariable, _);\n";
template += "res += resolveVariable('test', _);\n";
template += "res += 'bye!'\n";
template += "callback(null, res);\n";
var fn = streamline(template);
var data = {a: 1};
fn(data, resolvePartial, resolveVariable, function(err, res) {
console.log("done:\n" + res);
}, __func, __cb, __trap);
});