mirror of
https://github.com/JuanCanham/HackMyResume.git
synced 2024-11-21 16:00:11 +00:00
feat: improve custom theme helper registration
This commit is contained in:
parent
9c096541ce
commit
1dbb78c53f
23
dist/helpers/handlebars-helpers.js
vendored
23
dist/helpers/handlebars-helpers.js
vendored
@ -27,7 +27,7 @@ Template helper definitions for Handlebars.
|
||||
*/
|
||||
|
||||
module.exports = function(theme, opts) {
|
||||
var curGlob, ex, glob, wrappedHelpers;
|
||||
var curGlob, ex, glob, slash, wrappedHelpers;
|
||||
helpers.theme = theme;
|
||||
helpers.opts = opts;
|
||||
helpers.type = 'handlebars';
|
||||
@ -50,18 +50,25 @@ Template helper definitions for Handlebars.
|
||||
}
|
||||
if (_.isArray(theme.helpers)) {
|
||||
glob = require('glob');
|
||||
slash = require('slash');
|
||||
curGlob = null;
|
||||
try {
|
||||
_.each(theme.helpers, function(fGlob) {
|
||||
var files;
|
||||
curGlob = fGlob;
|
||||
fGlob = path.join(theme.folder, fGlob);
|
||||
glob(fGlob, {}, function(er, files) {
|
||||
if (er === null && files.length > 0) {
|
||||
_.each(files, function(f) {
|
||||
HANDLEBARS.registerHelper(require(f));
|
||||
});
|
||||
}
|
||||
});
|
||||
files = glob.sync(slash(fGlob));
|
||||
if (files.length > 0) {
|
||||
_.each(files, function(f) {
|
||||
HANDLEBARS.registerHelper(require(f));
|
||||
});
|
||||
} else {
|
||||
throw {
|
||||
fluenterror: HMS.themeHelperLoad,
|
||||
inner: er,
|
||||
glob: fGlob
|
||||
};
|
||||
}
|
||||
});
|
||||
} catch (_error) {
|
||||
ex = _error;
|
||||
|
@ -43,24 +43,24 @@ module.exports = ( theme, opts ) ->
|
||||
|
||||
if _.isArray theme.helpers
|
||||
glob = require 'glob'
|
||||
slash = require 'slash'
|
||||
curGlob = null
|
||||
try
|
||||
_.each theme.helpers, (fGlob) -> # foreach theme.helpers entry
|
||||
curGlob = fGlob # cache in case of exception
|
||||
fGlob = path.join theme.folder, fGlob # make relative to theme
|
||||
glob fGlob, { }, (er, files) -> # expand the glob to paths
|
||||
if er is null and files.length > 0 # guard against the error
|
||||
_.each files, (f) -> # loop over concrete paths
|
||||
HANDLEBARS.registerHelper require f # register the path
|
||||
return
|
||||
# else if er # glob error occurred
|
||||
# throw fluenterror: HMS.themeHelperLoad, inner: er, glob: fGlob
|
||||
# else if files.length < 1 # glob returned no results
|
||||
# throw fluenterror: HMS.themeHelperLoad
|
||||
return
|
||||
curGlob = fGlob # ..cache in case of exception
|
||||
fGlob = path.join theme.folder, fGlob # ..make relative to theme
|
||||
files = glob.sync slash fGlob # ..expand the glob
|
||||
if files.length > 0 # ..guard against empty glob
|
||||
_.each files, (f) -> # ..loop over concrete paths
|
||||
HANDLEBARS.registerHelper require f # ..register the path
|
||||
return
|
||||
else
|
||||
throw fluenterror: HMS.themeHelperLoad, inner: er, glob: fGlob
|
||||
return
|
||||
return
|
||||
catch ex
|
||||
# If a non-path is passed to glob() it will throw an error
|
||||
throw fluenterror: HMS.themeHelperLoad, inner: ex, glob: curGlob, exit: true
|
||||
throw
|
||||
fluenterror: HMS.themeHelperLoad
|
||||
inner: ex
|
||||
glob: curGlob, exit: true
|
||||
return
|
||||
|
Loading…
Reference in New Issue
Block a user