In https://github.com/jaredhanson/passport-local/blob/master/lib/index.js there is a construct as below:
/**
* Module dependencies.
*/
var Strategy = require('./strategy');
/**
* Expose `Strategy` directly from package.
*/
exports = module.exports = Strategy;
/**
* Export constructors.
*/
exports.Strategy = Strategy;
It looks like Strategy is exported twice - directly and through the property Strategy - i.e. require('passport-local') and require('passport-local').Strategy both point to the same type. What is the purpose of such a construct?