combine-html-extensions.mjs 618 B

12345678910111213141516171819202122232425262728293031
  1. export default combineHtmlExtensions
  2. import own from '../constant/has-own-property.mjs'
  3. // Combine several HTML extensions into one.
  4. function combineHtmlExtensions(extensions) {
  5. var handlers = {}
  6. var index = -1
  7. while (++index < extensions.length) {
  8. extension(handlers, extensions[index])
  9. }
  10. return handlers
  11. }
  12. function extension(handlers, extension) {
  13. var hook
  14. var left
  15. var right
  16. var type
  17. for (hook in extension) {
  18. left = own.call(handlers, hook) ? handlers[hook] : (handlers[hook] = {})
  19. right = extension[hook]
  20. for (type in right) {
  21. left[type] = right[type]
  22. }
  23. }
  24. }