UNPKG

1.01 kBJavaScriptView Raw
1var readFileSync = require('fs').readFileSync
2var parse = require('./parse')
3var path = require('path')
4var resolve = require('resolve')
5
6var getRelativePath = require('path').relative
7
8module.exports = load
9
10var globalCache = {}
11
12function load(file, opts){
13
14 var cache = globalCache
15 if (opts && opts.cache === false){
16 cache = {}
17 } else if (opts && opts.cache instanceof Object){
18 cache = opts.cache
19 }
20
21 var dir = path.dirname(file)
22
23 if (!cache[file]){
24 cache[file] = parse(readFileSync(file, 'utf8'))
25 var views = cache[file].views = cache[file].views || {}
26 var requires = cache[file].requires
27 requires&&Object.keys(requires).forEach(function(key){
28 if (!views[key]){
29 var ext = path.extname(requires[key])
30 var subFile = resolve.sync(requires[key], {basedir: dir})
31 if (ext == '.html'){
32 views[key] = load(subFile, {cache: cache})
33 } else {
34 views[key] = {require: subFile}
35 }
36 }
37 })
38
39 }
40 return cache[file]
41}
\No newline at end of file