UNPKG

737 BJavaScriptView Raw
1'use strict';
2
3var fs = require('fs'),
4 path = require('path');
5
6var glob = require('glob'),
7 yaml = require('js-yaml'),
8 deepMerge = require('deepmerge');
9
10function push(obj, key, data) {
11 var parts = key.split('.');
12
13 while (parts.length > 1) {
14 var prop = parts.shift();
15
16 obj = obj[prop] || (obj[prop] = {});
17 }
18
19 prop = parts.shift();
20
21 obj[prop] = deepMerge(obj[prop] || {}, data);
22}
23
24module.exports = function(from) {
25 var data = {};
26
27 glob
28 .sync(path.join(from, '**/*.yml'))
29 .forEach(function(file) {
30 var keypath = path.relative(from, file)
31 .replace(/[\\\/]/g, '.')
32 .replace('.yml', '');
33
34 push(data, keypath, yaml.load(fs.readFileSync(file)));
35 });
36
37 return data;
38};