UNPKG

931 BJavaScriptView Raw
1/**
2 * Create a template resolver.
3 * @function tmplResolver
4 * @param {string} basedir - Base directory path.
5 * @returns {object} - Resolver object.
6 */
7
8"use strict";
9
10var path = require('path'),
11 fs = require('fs');
12
13function tmplResolver(basedir) {
14 var resolver = new TmplResolver(basedir);
15 var resolve = resolver.resolve.bind(resolver);
16 resolve.resolve = resolve;
17 return resolve;
18}
19
20function TmplResolver(basedir) {
21 var s = this;
22 s.basedir = basedir;
23}
24
25TmplResolver.prototype = {
26 resolve: function (filename) {
27 var s = this;
28 var resolved = path.resolve(s.basedir, filename);
29 var exists = fs.existsSync(resolved);
30 if (!exists) {
31 throw new Error('Template not found: ' + filename);
32 }
33 return resolved;
34 },
35 bindResolve: function () {
36 var s = this;
37 return s.resolve.bind(s);
38 }
39};
40
41module.exports = tmplResolver;
\No newline at end of file