UNPKG

2.31 kBJavaScriptView Raw
1'use strict';
2
3var lib = require('./src/lib');
4var _require = require('./src/environment'),
5 Environment = _require.Environment,
6 Template = _require.Template;
7var Loader = require('./src/loader');
8var loaders = require('./src/loaders');
9var precompile = require('./src/precompile');
10var compiler = require('./src/compiler');
11var parser = require('./src/parser');
12var lexer = require('./src/lexer');
13var runtime = require('./src/runtime');
14var nodes = require('./src/nodes');
15var installJinjaCompat = require('./src/jinja-compat');
16
17// A single instance of an environment, since this is so commonly used
18var e;
19function configure(templatesPath, opts) {
20 opts = opts || {};
21 if (lib.isObject(templatesPath)) {
22 opts = templatesPath;
23 templatesPath = null;
24 }
25 var TemplateLoader;
26 if (loaders.FileSystemLoader) {
27 TemplateLoader = new loaders.FileSystemLoader(templatesPath, {
28 watch: opts.watch,
29 noCache: opts.noCache
30 });
31 } else if (loaders.WebLoader) {
32 TemplateLoader = new loaders.WebLoader(templatesPath, {
33 useCache: opts.web && opts.web.useCache,
34 async: opts.web && opts.web.async
35 });
36 }
37 e = new Environment(TemplateLoader, opts);
38 if (opts && opts.express) {
39 e.express(opts.express);
40 }
41 return e;
42}
43module.exports = {
44 Environment: Environment,
45 Template: Template,
46 Loader: Loader,
47 FileSystemLoader: loaders.FileSystemLoader,
48 NodeResolveLoader: loaders.NodeResolveLoader,
49 PrecompiledLoader: loaders.PrecompiledLoader,
50 WebLoader: loaders.WebLoader,
51 compiler: compiler,
52 parser: parser,
53 lexer: lexer,
54 runtime: runtime,
55 lib: lib,
56 nodes: nodes,
57 installJinjaCompat: installJinjaCompat,
58 configure: configure,
59 reset: function reset() {
60 e = undefined;
61 },
62 compile: function compile(src, env, path, eagerCompile) {
63 if (!e) {
64 configure();
65 }
66 return new Template(src, env, path, eagerCompile);
67 },
68 render: function render(name, ctx, cb) {
69 if (!e) {
70 configure();
71 }
72 return e.render(name, ctx, cb);
73 },
74 renderString: function renderString(src, ctx, cb) {
75 if (!e) {
76 configure();
77 }
78 return e.renderString(src, ctx, cb);
79 },
80 precompile: precompile ? precompile.precompile : undefined,
81 precompileString: precompile ? precompile.precompileString : undefined
82};
\No newline at end of file