All files / middlewares autoloader.js

100% Statements 17/17
100% Branches 12/12
100% Functions 1/1
100% Lines 17/17
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32          1x 1x   1x 7x 3x   4x 4x 4x 4x 1x   3x 3x 7x 1x   6x 6x     1x        
/**
 * Autoloader middleware
 **/
'use strict';
 
const assert          = require('assert');
const LarkAutoLoader  = require('lark-autoloader');
 
module.exports = (app) => {
    if (!app.config.has('autoloader')) {
        return;
    }
    const key = app.config.has('autoloader/name') ? app.config.get('autoloader/name') : '$';
    assert(app.config.has('autoloader/directory'), 'No auto loading directory');
    const directories = app.config.get('autoloader/directory');
    if (!(directories instanceof Object) || Object.keys(directories).length <= 0) {
        return;
    }
    global[key] = global[key] || {};
    for (const name in directories) {
        if (global[key].hasOwnProperty(name)) {
            continue;
        }
        try {
            global[key][name] = new LarkAutoLoader(directories[name]);
        }
        catch (e) {
            global[key][name] = {};
        }
    }
};