UNPKG

1.09 kBJavaScriptView Raw
1/**
2 * Create a directory module index.
3 * @function apemanmodule
4 * @param {string} dirname - Directory path which contains locale messages.
5 * @param {object} [options] - Optional settings.
6 * @returns {object} modules
7 */
8
9"use strict";
10
11const argx = require('argx'),
12 extend = require('extend'),
13 print = require('./print'),
14 _datasource = require('./_datasource');
15
16/** @lends apemanmodule */
17function apemanmodule(dirname, options) {
18 let args = argx(arguments);
19 options = args.pop('object') || {};
20 dirname = args.shift('string');
21
22 let datasource = _datasource(dirname);
23
24 function modules(name) {
25 return datasource[name];
26 }
27
28 modules.__proto__ = new Function();
29 modules.__proto__.print = function printModules(name){
30 print(modules, name);
31 };
32
33 Object.keys(datasource).forEach((key) => {
34 Object.defineProperty(modules, key, {
35 get: function () {
36 return datasource[key];
37 },
38 enumerable: true
39 })
40 });
41
42 return modules;
43}
44
45module.exports = apemanmodule;
\No newline at end of file