Getting this package finally ready for v1.0, I've decided to rewrite it using Promises instead of using callbacks and the async lib. This reduce both the SLOC and complexity of this code, while also creating an easier to use API that's more composable with other async tasks.
Changes
Upgrade all dependencies.
Rewrite to use Promises for async.
Reduce complexity of cache code.
Update examples to each have a package.json.
Update render(file, context, options) API to better align with Handlebars.
Switch to graceful-fs to support large #s of files to avoid EMFILE errors.
Public API Changes
The refactoring changes above have lead to some pre-v1.0 API breakage, both in terms of method names and return values. I'm favoring a clean, breaking removal over deprecating APIs; please comment if you feel sternly otherwise.
loadPartials() --> getPartials(), returns a Promise.
loadTemplate() --> getTemplate(), returns a Promise.
loadTemplates() --> getTemplates(), returns a Promise.
render() now returns a Promise.
New Features
Promises!
Better perf. (Promises are showing to be faster than async in this package).
Support for Handlebars' data channel, via options.data.
compileTemplate() hook for pre/post compile process, supports Promises.
Getting this package finally ready for v1.0, I've decided to rewrite it using Promises instead of using callbacks and the
async
lib. This reduce both the SLOC and complexity of this code, while also creating an easier to use API that's more composable with other async tasks.Changes
package.json
.render(file, context, options)
API to better align with Handlebars.graceful-fs
to support large #s of files to avoidEMFILE
errors.Public API Changes
The refactoring changes above have lead to some pre-v1.0 API breakage, both in terms of method names and return values. I'm favoring a clean, breaking removal over deprecating APIs; please comment if you feel sternly otherwise.
loadPartials()
-->getPartials()
, returns a Promise.loadTemplate()
-->getTemplate()
, returns a Promise.loadTemplates()
-->getTemplates()
, returns a Promise.render()
now returns a Promise.New Features
async
in this package).data
channel, viaoptions.data
.compileTemplate()
hook for pre/post compile process, supports Promises._renderTemplate()
hook, supports Promises.v1.0 Todos