This repository has been archived by the owner on Apr 13, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
/
mod.js
82 lines (72 loc) · 1.86 KB
/
mod.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/// <reference types="./mod.d.ts" />
import * as lib from "./src/lib.js";
import { Environment, Template } from "./src/environment.js";
import Loader from "./src/loader.js";
import * as loaders from "./src/loaders.js";
import precompile from "./src/precompile.js";
import compiler from "./src/compiler.js";
import parser from "./src/parser.js";
import lexer from "./src/lexer.js";
import * as runtime from "./src/runtime.js";
import nodes from "./src/nodes.js";
import installJinjaCompat from "./src/jinja_compat.js";
// A single instance of an environment, since this is so commonly used
let e;
function configure(templatesPath, opts) {
opts = opts || {};
if (lib.isObject(templatesPath)) {
opts = templatesPath;
templatesPath = null;
}
let TemplateLoader;
if (loaders.FileSystemLoader) {
TemplateLoader = new loaders.FileSystemLoader(templatesPath, {
watch: opts.watch,
noCache: opts.noCache,
});
}
e = new Environment(TemplateLoader, opts);
if (opts && opts.express) {
e.express(opts.express);
}
return e;
}
export default {
Environment,
Template,
Loader,
FileSystemLoader: loaders.FileSystemLoader,
NodeResolveLoader: loaders.NodeResolveLoader,
PrecompiledLoader: loaders.PrecompiledLoader,
compiler,
parser,
lexer,
runtime,
lib,
nodes,
installJinjaCompat,
configure,
reset() {
e = undefined;
},
compile(src, env, path, eagerCompile) {
if (!e) {
configure();
}
return new Template(src, env, path, eagerCompile);
},
render(name, ctx, cb) {
if (!e) {
configure();
}
return e.render(name, ctx, cb);
},
renderString(src, ctx, cb) {
if (!e) {
configure();
}
return e.renderString(src, ctx, cb);
},
precompile: (precompile) ? precompile.precompile : undefined,
precompileString: (precompile) ? precompile.precompileString : undefined,
};