60 lines
1.2 KiB
JavaScript
60 lines
1.2 KiB
JavaScript
/**
|
|
@overview
|
|
@author Michael Mathews <micmath@gmail.com>
|
|
@license Apache License 2.0 - See file 'LICENSE.md' in this project.
|
|
*/
|
|
|
|
/**
|
|
@module jsdoc/config
|
|
*/
|
|
'use strict';
|
|
|
|
function mergeRecurse(target, source) {
|
|
Object.keys(source).forEach(function(p) {
|
|
if ( source[p].constructor === Object ) {
|
|
if ( !target[p] ) { target[p] = {}; }
|
|
mergeRecurse(target[p], source[p]);
|
|
}
|
|
else {
|
|
target[p] = source[p];
|
|
}
|
|
});
|
|
|
|
return target;
|
|
}
|
|
|
|
// required config values, override these defaults in your config.json if necessary
|
|
var defaults = {
|
|
tags: {
|
|
allowUnknownTags: true
|
|
},
|
|
templates: {
|
|
monospaceLinks: false,
|
|
cleverLinks: false
|
|
},
|
|
source: {
|
|
includePattern: '.+\\.js(doc)?$',
|
|
excludePattern: ''
|
|
},
|
|
plugins: []
|
|
};
|
|
|
|
/**
|
|
@class
|
|
@classdesc Represents a JSDoc application configuration.
|
|
@param {string} [json] - The contents of config.json.
|
|
*/
|
|
function Config(json) {
|
|
json = JSON.parse( (json || '{}') );
|
|
this._config = mergeRecurse(defaults, json);
|
|
}
|
|
|
|
module.exports = Config;
|
|
|
|
/**
|
|
Get the merged configuration values.
|
|
*/
|
|
Config.prototype.get = function() {
|
|
return this._config;
|
|
};
|