configure.js 635 B

123456789101112131415161718192021222324252627
  1. module.exports = configure
  2. function configure(base, extension) {
  3. var index = -1
  4. var key
  5. // First do subextensions.
  6. if (extension.extensions) {
  7. while (++index < extension.extensions.length) {
  8. configure(base, extension.extensions[index])
  9. }
  10. }
  11. for (key in extension) {
  12. if (key === 'extensions') {
  13. // Empty.
  14. } else if (key === 'unsafe' || key === 'join') {
  15. base[key] = base[key].concat(extension[key] || [])
  16. } else if (key === 'handlers') {
  17. base[key] = Object.assign(base[key], extension[key] || {})
  18. } else {
  19. base.options[key] = extension[key]
  20. }
  21. }
  22. return base
  23. }