Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rewrite with Promises #68

Merged
merged 4 commits into from
Aug 7, 2014
Merged

Rewrite with Promises #68

merged 4 commits into from
Aug 7, 2014

Conversation

ericf
Copy link
Owner

@ericf ericf commented Jul 30, 2014

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.
  • _renderTemplate() hook, supports Promises.

v1.0 Todos

This was referenced Aug 5, 2014
@ericf ericf merged commit f014870 into master Aug 7, 2014
@ericf ericf deleted the promises branch August 12, 2014 05:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant