12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- 'use strict'
- var xtend = require('xtend')
- var escapes = require('markdown-escapes')
- var defaults = require('./defaults')
- module.exports = setOptions
- 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
- }
|