From 47c6af2d1392aded90090e76b60781f95be9ad43 Mon Sep 17 00:00:00 2001 From: tengattack Date: Mon, 21 Nov 2016 18:20:14 +0800 Subject: [PATCH] Add default config & readme --- README.md | 18 ++++++++++++++++++ hane.yml | 4 ++++ lib/index.js | 12 ++++++++++++ src/index.es | 10 ++++++++++ 4 files changed, 44 insertions(+) create mode 100644 README.md create mode 100644 hane.yml diff --git a/README.md b/README.md new file mode 100644 index 0000000..f2131b5 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# hane-config + +Config parser for hanejs. + +## Default + +default config ([`./hane.yml`](./hane.yml)): + +```yaml +render: + type: markdown + html: false + linkify: true +``` + +## LICENSE + +MIT diff --git a/hane.yml b/hane.yml new file mode 100644 index 0000000..443b7c5 --- /dev/null +++ b/hane.yml @@ -0,0 +1,4 @@ + +render: + type: markdown + html: true diff --git a/lib/index.js b/lib/index.js index 55a9428..9ffeeaf 100644 --- a/lib/index.js +++ b/lib/index.js @@ -4,6 +4,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + var _path = require('path'); var _path2 = _interopRequireDefault(_path); @@ -19,6 +21,12 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de const configValidFields = ['render', 'deployer']; class HaneConfig { + static getDefault() { + if (!HaneConfig.defaultConfig) { + const root = _path2.default.join(__dirname, '..'); + HaneConfig.defaultConfig = new HaneConfig(root).config; + } + } constructor(root) { let config; try { @@ -26,6 +34,7 @@ class HaneConfig { const data = fs.readFileSync(configPath, 'utf8'); config = _jsYaml2.default.safeLoad(data); config = (0, _lodash.pick)(config, configValidFields); + config = _extends({}, HaneConfig.defaultConfig, config); } catch (e) { config = {}; } @@ -36,5 +45,8 @@ class HaneConfig { } } +HaneConfig.defaultConfig = null; +HaneConfig.getDefault(); + exports.default = HaneConfig; diff --git a/src/index.es b/src/index.es index cf400c5..58efef0 100644 --- a/src/index.es +++ b/src/index.es @@ -6,6 +6,13 @@ import { pick } from 'lodash' const configValidFields = [ 'render', 'deployer' ] class HaneConfig { + static defaultConfig = null + static getDefault() { + if (!HaneConfig.defaultConfig) { + const root = path.join(__dirname, '..') + HaneConfig.defaultConfig = new HaneConfig(root).config + } + } constructor(root) { let config try { @@ -13,6 +20,7 @@ class HaneConfig { const data = fs.readFileSync(configPath, 'utf8') config = yaml.safeLoad(data) config = pick(config, configValidFields) + config = { ...HaneConfig.defaultConfig, ...config } } catch (e) { config = {} } @@ -23,4 +31,6 @@ class HaneConfig { } } +HaneConfig.getDefault() + export default HaneConfig