mirror of
https://github.com/marko-js/marko.git
synced 2025-12-08 19:26:05 +00:00
26 lines
698 B
JavaScript
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; |