UNPKG

lark

Version:

A node.js framework based on koa. Our goal is to build the best industrial node.js framework for high concurrency and high flow application.

38 lines (34 loc) 1.1 kB
/** * Autoloader middleware **/ 'use strict'; const assert = require('assert'); const LarkAutoLoader = require('lark-autoloader'); module.exports = async (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; } global[key][name] = {}; await autoload(global[key][name], directories[name]); } }; async function autoload(target, directory) { const autoloader = new LarkAutoLoader(target); try { await autoloader.load(directory); } catch (error) { throw new Error(`Can not load ${directory}: ${error.message}`); } }