UNPKG

1.01 kBJavaScriptView Raw
1/**
2 * @function _datasource
3 */
4
5"use strict";
6
7const fs = require('fs'),
8 path = require('path'),
9 arrayfilter = require('arrayfilter'),
10 stringcase = require('stringcase'),
11 _isModule = require('./_is_module');
12
13/** @lends _datasource */
14function _datasource(dirname) {
15 let datasource = {};
16 fs.readdirSync(dirname)
17 .filter(arrayfilter.patternReject(/^index\./))
18 .filter(arrayfilter.patternReject(/^\./))
19 .filter(arrayfilter.patternReject(/^\_/))
20 .map((filename) => {
21 return path.resolve(dirname, filename);
22 })
23 .filter(_isModule)
24 .forEach((filename) => {
25 let name = path.basename(filename, path.extname(filename));
26 Object.defineProperty(datasource, stringcase.camelcase(name), {
27 get: function () {
28 return require(filename);
29 },
30 enumerable: true
31 })
32 });
33 return datasource;
34}
35
36module.exports = _datasource;