32 lines
1007 B
JavaScript
32 lines
1007 B
JavaScript
var generator = require("./generation/generator");
|
|
var util = require("./util");
|
|
var File = require("./file");
|
|
var t = require("./types");
|
|
var _ = require("lodash");
|
|
|
|
module.exports = function (namespace) {
|
|
namespace = t.identifier(namespace || "to5Runtime");
|
|
|
|
var body = [];
|
|
var container = t.functionExpression(null, [], t.blockStatement(body));
|
|
var tree = t.program([t.expressionStatement(t.callExpression(container, []))]);
|
|
|
|
body.push(util.template("self-global", true));
|
|
|
|
body.push(t.variableDeclaration("var", [
|
|
t.variableDeclarator(
|
|
namespace,
|
|
t.assignmentExpression("=", t.memberExpression(t.identifier("self"), namespace), t.objectExpression([]))
|
|
)
|
|
]));
|
|
|
|
_.each(File.declarations, function (name) {
|
|
var key = t.identifier(t.toIdentifier(name));
|
|
body.push(t.expressionStatement(
|
|
t.assignmentExpression("=", t.memberExpression(namespace, key), util.template(name))
|
|
));
|
|
});
|
|
|
|
return generator(tree).code;
|
|
};
|