Fixed config merge
This commit is contained in:
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "gitblog.md",
|
"name": "gitblog.md",
|
||||||
"version": "1.1.2",
|
"version": "1.1.3",
|
||||||
"description": "A static blog using Markdown pulled from your git repository.",
|
"description": "A static blog using Markdown pulled from your git repository.",
|
||||||
"main": "src/server.js",
|
"main": "src/server.js",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|||||||
@@ -10,6 +10,10 @@ const fs = require('fs');
|
|||||||
const merge = (ref, src) => {
|
const merge = (ref, src) => {
|
||||||
if (typeof ref !== typeof src) {
|
if (typeof ref !== typeof src) {
|
||||||
return ref;
|
return ref;
|
||||||
|
} else if (ref.length && !src.length) {
|
||||||
|
return ref;
|
||||||
|
} else if (ref.length && src.length) {
|
||||||
|
return src;
|
||||||
} else if (typeof ref === 'object') {
|
} else if (typeof ref === 'object') {
|
||||||
const out = {};
|
const out = {};
|
||||||
Object.keys(ref).forEach((key) => out[key] = merge(ref[key], src[key]));
|
Object.keys(ref).forEach((key) => out[key] = merge(ref[key], src[key]));
|
||||||
|
|||||||
@@ -64,4 +64,18 @@ test('wrong config fixed', () => {
|
|||||||
expect(config).toBeDefined();
|
expect(config).toBeDefined();
|
||||||
expect(config['node_port']).toBe(3000);
|
expect(config['node_port']).toBe(3000);
|
||||||
expect(config['data_dir']).toBe('data2');
|
expect(config['data_dir']).toBe('data2');
|
||||||
|
});
|
||||||
|
|
||||||
|
test('array parsing', () => {
|
||||||
|
fs.writeFileSync(configFile, '{"home":{"hidden":["item1","item2"]}}');
|
||||||
|
const config = require('../src/config')();
|
||||||
|
expect(config).toBeDefined();
|
||||||
|
expect(config['home']['hidden']).toEqual(['item1', 'item2']);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('array fix', () => {
|
||||||
|
fs.writeFileSync(configFile, '{"home":{"hidden":{}}}');
|
||||||
|
const config = require('../src/config')();
|
||||||
|
expect(config).toBeDefined();
|
||||||
|
expect(config['home']['hidden']).toEqual(['.ejs']);
|
||||||
});
|
});
|
||||||
Reference in New Issue
Block a user