UNPKG

sugar

Version:

A Javascript utility library for working with native objects.

37 lines (30 loc) 872 B
'use strict'; var simpleClone = require('./simpleClone'), defineAccessor = require('./defineAccessor'), coreUtilityAliases = require('../var/coreUtilityAliases'); var forEachProperty = coreUtilityAliases.forEachProperty; function defineOptionsAccessor(namespace, defaults) { var obj = simpleClone(defaults); function getOption(name) { return obj[name]; } function setOption(arg1, arg2) { var options; if (arguments.length === 1) { options = arg1; } else { options = {}; options[arg1] = arg2; } forEachProperty(options, function(val, name) { if (val === null) { val = defaults[name]; } obj[name] = val; }); } defineAccessor(namespace, 'getOption', getOption); defineAccessor(namespace, 'setOption', setOption); return getOption; } module.exports = defineOptionsAccessor;