+++ /dev/null
-'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;
-}