Assemble is now able to directly take a generator function as a task function. This removes the need for a callback when running synchronous code inside tasks.
From
app.task('load', function(cb) {
app.layouts(['src/layouts/**/*.hbs']);
app.partials(['src/partials/**/*.hbs']);
app.pages(['src/pages/**/*.hbs']);
cb();
});
To
app.task('load', function* () {
app.layouts(['src/layouts/**/*.hbs']);
app.partials(['src/partials/**/*.hbs']);
app.pages(['src/pages/**/*.hbs']);
});
This also allows using generator features like yield
.
assemblefile.js
'use strict';
var assemble = require('assemble');
var thunk = require('thunkify');
var fs = require('fs');
var app = assemble();
var readFile = thunk(fs.readFile);
app.task('read', function* () {
var contents = yield readFile('./package.json', 'utf8');
console.log(contents);
});
app.task('default', ['read']);
module.exports = app;
output