UNPKG

912 BJavaScriptView Raw
1'use strict';
2
3var merge = require('merge-deep');
4var condense = require('../condense');
5var utils = require('../utils');
6
7module.exports = function(app) {
8 return function(val, key, config, schema) {
9 // ensure `val` is an object before normalizing
10 val = normalize(val, key, config);
11
12 if (typeof val === 'undefined') {
13 return;
14 }
15
16 utils.define(config, '_origConfig', val);
17
18 // get the package.json config object
19 var pkg = utils.extend({}, app.pkg.data);
20 var pkgConfig = pkg[app._name] || {};
21
22 var merged = merge({}, pkgConfig, val);
23 return condense(app, merged, pkgConfig);
24 };
25};
26
27function normalize(val, key, config) {
28 if (typeof val === 'undefined') {
29 return;
30 }
31
32 if (typeof val === 'string') {
33 var obj = {};
34 obj[val] = true;
35 val = config[key] = obj;
36 return val;
37 }
38
39 if (val === true) {
40 return { show: true };
41 }
42 return val;
43}