12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- '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
- };
|