You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							103 lines
						
					
					
						
							2.3 KiB
						
					
					
				
			
		
		
	
	
							103 lines
						
					
					
						
							2.3 KiB
						
					
					
				| 'use strict';
 | |
| 
 | |
| var lib = require('./src/lib');
 | |
| 
 | |
| var _require = require('./src/environment'),
 | |
|     Environment = _require.Environment,
 | |
|     Template = _require.Template;
 | |
| 
 | |
| var Loader = require('./src/loader');
 | |
| 
 | |
| var loaders = require('./src/loaders');
 | |
| 
 | |
| var precompile = require('./src/precompile');
 | |
| 
 | |
| var compiler = require('./src/compiler');
 | |
| 
 | |
| var parser = require('./src/parser');
 | |
| 
 | |
| var lexer = require('./src/lexer');
 | |
| 
 | |
| var runtime = require('./src/runtime');
 | |
| 
 | |
| var nodes = require('./src/nodes');
 | |
| 
 | |
| var installJinjaCompat = require('./src/jinja-compat'); // A single instance of an environment, since this is so commonly used
 | |
| 
 | |
| 
 | |
| var e;
 | |
| 
 | |
| function configure(templatesPath, opts) {
 | |
|   opts = opts || {};
 | |
| 
 | |
|   if (lib.isObject(templatesPath)) {
 | |
|     opts = templatesPath;
 | |
|     templatesPath = null;
 | |
|   }
 | |
| 
 | |
|   var TemplateLoader;
 | |
| 
 | |
|   if (loaders.FileSystemLoader) {
 | |
|     TemplateLoader = new loaders.FileSystemLoader(templatesPath, {
 | |
|       watch: opts.watch,
 | |
|       noCache: opts.noCache
 | |
|     });
 | |
|   } else if (loaders.WebLoader) {
 | |
|     TemplateLoader = new loaders.WebLoader(templatesPath, {
 | |
|       useCache: opts.web && opts.web.useCache,
 | |
|       async: opts.web && opts.web.async
 | |
|     });
 | |
|   }
 | |
| 
 | |
|   e = new Environment(TemplateLoader, opts);
 | |
| 
 | |
|   if (opts && opts.express) {
 | |
|     e.express(opts.express);
 | |
|   }
 | |
| 
 | |
|   return e;
 | |
| }
 | |
| 
 | |
| module.exports = {
 | |
|   Environment: Environment,
 | |
|   Template: Template,
 | |
|   Loader: Loader,
 | |
|   FileSystemLoader: loaders.FileSystemLoader,
 | |
|   NodeResolveLoader: loaders.NodeResolveLoader,
 | |
|   PrecompiledLoader: loaders.PrecompiledLoader,
 | |
|   WebLoader: loaders.WebLoader,
 | |
|   compiler: compiler,
 | |
|   parser: parser,
 | |
|   lexer: lexer,
 | |
|   runtime: runtime,
 | |
|   lib: lib,
 | |
|   nodes: nodes,
 | |
|   installJinjaCompat: installJinjaCompat,
 | |
|   configure: configure,
 | |
|   reset: function reset() {
 | |
|     e = undefined;
 | |
|   },
 | |
|   compile: function compile(src, env, path, eagerCompile) {
 | |
|     if (!e) {
 | |
|       configure();
 | |
|     }
 | |
| 
 | |
|     return new Template(src, env, path, eagerCompile);
 | |
|   },
 | |
|   render: function render(name, ctx, cb) {
 | |
|     if (!e) {
 | |
|       configure();
 | |
|     }
 | |
| 
 | |
|     return e.render(name, ctx, cb);
 | |
|   },
 | |
|   renderString: function renderString(src, ctx, cb) {
 | |
|     if (!e) {
 | |
|       configure();
 | |
|     }
 | |
| 
 | |
|     return e.renderString(src, ctx, cb);
 | |
|   },
 | |
|   precompile: precompile ? precompile.precompile : undefined,
 | |
|   precompileString: precompile ? precompile.precompileString : undefined
 | |
| }; |