node package manager


Extend dustjs onLoad to accept rendering context

dustjs-onload-context extends dustjs to support dust.onLoad callbacks which accept the current rendering context as the second parameter. This can be useful when it's necessary to resolve templates based on state in the render context.

Build Status


'use strict';
var dust = require('dustjs-linkedin'),
    contextify = require('dustjs-onload-context');
var undo = contextify(dust);
dust.onLoad = function (name, context, cb) {
    var str;
    // context.get('foo'); 
    // do stuff ... 
    cb(null, str);

NOTE: The dustjs-linkedin module is required, but is not an explicit dependency of this module.


To enable support for the context argument, simply require dustjs-onload-context and invoke the exported function (which will decorate dustjs). Then, you can assign a function which accepts three arguments to the onLoad dust property. Functions assigned to onLoad which only accept 2 arguments are considered a noop and are treated the same as the original dust onLoad API.

To revert dust back to its original functional, this module returns a function once invoked. Invoking this function will revert dust and onLoad to their original behavior.

var contextify = require('dustjs-onload-context');
contextify(dust, [onload]); // See below for supported options 


  • dust (Object) the dustjs module to be decorated

  • onload (Function, optional) Provides an alternate onLoad implementation to use instead of dust.onLoad. This could be useful for scenarios in which one wants to intercept calls to the default onLoad behavior, modify context and delegate to the default onLoad defined elsewhere in the application.


$ npm test


$ npm run-script cover && open coverage/lcov-report/index.html