diff options
Diffstat (limited to 'tools/node_modules/eslint/node_modules/remark-parse/lib/set-options.js')
-rw-r--r-- | tools/node_modules/eslint/node_modules/remark-parse/lib/set-options.js | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/tools/node_modules/eslint/node_modules/remark-parse/lib/set-options.js b/tools/node_modules/eslint/node_modules/remark-parse/lib/set-options.js new file mode 100644 index 0000000000..3f9abad7c4 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/remark-parse/lib/set-options.js @@ -0,0 +1,59 @@ +/** + * @author Titus Wormer + * @copyright 2015 Titus Wormer + * @license MIT + * @module remark:parse + * @fileoverview Markdown parser. + */ + +'use strict'; + +var xtend = require('xtend'); +var escapes = require('markdown-escapes'); +var defaults = require('./defaults'); + +module.exports = setOptions; + +/* Set options. */ +function setOptions(options) { + var self = this; + var current = self.options; + var key; + var value; + + if (options == null) { + options = {}; + } else if (typeof options === 'object') { + options = xtend(options); + } else { + throw new Error( + 'Invalid value `' + options + '` ' + + 'for setting `options`' + ); + } + + for (key in defaults) { + value = options[key]; + + if (value == null) { + value = current[key]; + } + + if ( + (key !== 'blocks' && typeof value !== 'boolean') || + (key === 'blocks' && typeof value !== 'object') + ) { + throw new Error( + 'Invalid value `' + value + '` ' + + 'for setting `options.' + key + '`' + ); + } + + options[key] = value; + } + + self.options = options; + self.escape = escapes(options); + + return self; +} |