UNPKG

1.06 kBJavaScriptView Raw
1//
2// # Helper Loader
3//
4// Loads helpers from the target directory.
5//
6// * **dir**, directory to load from.
7// * **fn**, function called with each helper.
8// * **callback**, called when done or on error.
9//
10var fs = require('fs');
11var path = require('path');
12var HelperLoader = function (dir, fn, callback) {
13 fs.readdir(dir, function (err, files) {
14 if (err) {
15 callback(err);
16 return;
17 }
18
19 for (var i = 0, len = files.length; i < len; i++) {
20 if (files[i].indexOf('.js') === -1) continue;
21 var name = path.basename(files[i], '.js');
22 var source = path.join(dir, name);
23 var helper = require(source);
24
25 // Helpers that take arguments are not helpers that are supposed to be
26 // instaniated. Instead they are small helper functions. Those are just
27 // added as is to the helper list.
28 if (typeof helper !== 'function' || helper.length > 0) {
29 fn(name, helper);
30 }
31 else {
32 fn(name, new helper());
33 }
34 }
35
36 callback();
37 });
38};
39
40module.exports = HelperLoader;
41