marko/compiler/taglib-loader/loadTaglibFromFile.js
2017-02-09 19:55:02 -08:00

26 lines
698 B
JavaScript

var jsonFileReader = require('./json-file-reader');
var types = require('./types');
var cache = require('./cache');
var loaders = require('./loaders');
var ok = require('assert').ok;
function loadFromFile(filePath) {
ok(filePath, '"filePath" is required');
var taglib = cache.get(filePath);
// Only load a taglib once by caching the loaded taglibs using the file
// system file path as the key
if (!taglib) {
taglib = new types.Taglib(filePath);
cache.put(filePath, taglib);
var taglibProps = jsonFileReader.readFileSync(filePath);
loaders.loadTaglibFromProps(taglib, taglibProps);
}
return taglib;
}
module.exports = loadFromFile;