UNPKG

1.92 kBJavaScriptView Raw
1
2var lib = require('./src/lib');
3var env = require('./src/environment');
4var compiler = require('./src/compiler');
5var parser = require('./src/parser');
6var lexer = require('./src/lexer');
7var runtime = require('./src/runtime');
8var Loader = require('./src/loader');
9var loaders = require('./src/loaders');
10var precompile = require('./src/precompile');
11
12module.exports = {};
13module.exports.Environment = env.Environment;
14module.exports.Template = env.Template;
15
16module.exports.Loader = Loader;
17module.exports.FileSystemLoader = loaders.FileSystemLoader;
18module.exports.WebLoader = loaders.WebLoader;
19
20module.exports.compiler = compiler;
21module.exports.parser = parser;
22module.exports.lexer = lexer;
23module.exports.runtime = runtime;
24
25// A single instance of an environment, since this is so commonly used
26
27var e;
28module.exports.configure = function(templatesPath, opts) {
29 opts = opts || {};
30 if(lib.isObject(templatesPath)) {
31 opts = templatesPath;
32 templatesPath = null;
33 }
34
35 var noWatch = 'watch' in opts ? !opts.watch : false;
36 var loader = loaders.FileSystemLoader || loaders.WebLoader;
37 e = new env.Environment(new loader(templatesPath, noWatch), opts);
38
39 if(opts && opts.express) {
40 e.express(opts.express);
41 }
42
43 return e;
44};
45
46module.exports.compile = function(src, env, path, eagerCompile) {
47 if(!e) {
48 module.exports.configure();
49 }
50 return new module.exports.Template(src, env, path, eagerCompile);
51};
52
53module.exports.render = function(name, ctx, cb) {
54 if(!e) {
55 module.exports.configure();
56 }
57
58 return e.render(name, ctx, cb);
59};
60
61module.exports.renderString = function(src, ctx, cb) {
62 if(!e) {
63 module.exports.configure();
64 }
65
66 return e.renderString(src, ctx, cb);
67};
68
69if(precompile) {
70 module.exports.precompile = precompile.precompile;
71 module.exports.precompileString = precompile.precompileString;
72}