UNPKG

hbs-helpers-sync

Version:

sync Handlebars helpers between server and client

74 lines (54 loc) 1.3 kB
(function(window){ var root = window; var exclude, include, helpers, Handlebars; function HHS(){ } HHS.VERSION = "0.1.6"; if (typeof exports !== 'undefined') { if (typeof module !== 'undefined' && module.exports) { exports = module.exports = HHS; } exports = HHS; }else{ root.HHS = HHS; } function check(funcname, val){ if(typeof val === "string"){ if(funcname == val){ return true; } }else if(val.length > 0){ return val.indexOf(funcname) !== -1; } return false; } function register(funcname){ Handlebars.registerHelper(funcname, helpers[funcname]); } HHS.sync = function(params){ params = params || {}; Handlebars = params.Handlebars || root.Handlebars; params.helpers = params.helpers; params.exclude = params.exclude || ""; params.include = params.include || ""; if(!Handlebars){ throw new Error("please provide a Handlebars reference"); } if(!params.helpers){ throw new Error("please provide an object with helper functions"); } for(var funcname in helpers){ if(include){ if(check(funcname, include)){ register(funcname); } }else if(exclude){ if(!check(funcname, exclude)){ register(funcname); } }else{ register(funcname); } } }; }.call(this, window));