# helper-cache [![NPM version](https://badge.fury.io/js/helper-cache.svg)](http://badge.fury.io/js/helper-cache) [![Build Status](https://travis-ci.org/jonschlinkert/helper-cache.svg)](https://travis-ci.org/jonschlinkert/helper-cache) > Easily register and get helper functions to be passed to any template engine or node.js application. Methods for both sync and async helpers. ## Install with [npm](npmjs.org) ```bash npm i helper-cache --save ``` ## Usage ### [HelperCache](index.js#L27) Create an instance of `HelperCache`, optionally passing default `options`. * `options` **{Object}**: Default options to use. - `bind` **{Boolean}**: Bind functions to `this`. Defaults to `false`. - `thisArg` **{Boolean}**: The context to use. ```js var HelperCache = require('helper-cache'); var helpers = new HelperCache(); ``` ### [.addHelper](index.js#L53) Register a helper. * `name` **{String}**: The name of the helper. * `fn` **{Function}**: Helper function. * `returns` **{Object}**: Return `this` to enable chaining ```js helpers.addHelper('lower', function(str) { return str.toLowerCase(); }); ``` ### [.addAsyncHelper](index.js#L106) Register an async helper. * `key` **{String}**: The name of the helper. * `fn` **{Function}**: Helper function. * `returns` **{Object}**: Return `this` to enable chaining ```js helpers.addAsyncHelper('foo', function (str, callback) { callback(null, str + ' foo'); }); ``` ### [.addHelpers](index.js#L165) Load an object of helpers. * `key` **{String}**: The name of the helper. * `fn` **{Function}**: Helper function. * `returns` **{Object}**: Return `this` to enable chaining. ```js helpers.addHelpers({ a: function() {}, b: function() {}, c: function() {}, }); ``` ### [.addAsyncHelpers](index.js#L202) Load an object of async helpers. * `key` **{String}**: The name of the helper. * `fn` **{Function}**: Helper function. * `returns` **{Object}**: Return `this` to enable chaining ```js helpers.addAsyncHelpers({ a: function() {}, b: function() {}, c: function() {}, }); ``` ### [.getHelper](index.js#L234) Get a registered helper. * `key` **{String}**: The helper to get. * `returns` **{Object}**: The specified helper. If no `key` is passed, the entire cache is returned. ```js helpers.getHelper('foo'); ``` ## Related projects * [engine-cache](https://github.com/jonschlinkert/engine-cache): express.js inspired template-engine manager. * [handlebars-helpers](https://github.com/assemble/handlebars-helpers): 120+ Handlebars helpers in ~20 categories, for Assemble, YUI, Ghost… [more](https://github.com/assemble/handlebars-helpers) * [template-helpers](https://github.com/jonschlinkert/template-helpers): Generic JavaScript helpers that can be used with any template… [more](https://github.com/jonschlinkert/template-helpers) * [template](https://github.com/jonschlinkert/template): Render templates from any engine. Make custom template types, use… [more](https://github.com/jonschlinkert/template) ## Running tests Install dev dependencies: ```bash npm i -d && npm test ``` ## Contributing Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/helper-cache/issues) ## Author **Jon Schlinkert** + [github/jonschlinkert](https://github.com/jonschlinkert) + [twitter/jonschlinkert](http://twitter.com/jonschlinkert) ## License Copyright (c) 2014-2015 Jon Schlinkert Released under the MIT license *** _This file was generated by [verb-cli](https://github.com/assemble/verb-cli) on April 23, 2015._ [load-helpers]: https://github.com/assemble/load-helpers