one.js 636 B

1234567891011121314151617181920212223242526272829
  1. 'use strict'
  2. module.exports = one
  3. var own = {}.hasOwnProperty
  4. var handlers = {}
  5. handlers.root = require('./all')
  6. handlers.text = require('./text')
  7. handlers.element = require('./element')
  8. handlers.doctype = require('./doctype')
  9. handlers.comment = require('./comment')
  10. handlers.raw = require('./raw')
  11. /* Stringify `node`. */
  12. function one(ctx, node, index, parent) {
  13. var type = node && node.type
  14. if (!type) {
  15. throw new Error('Expected node, not `' + node + '`')
  16. }
  17. if (!own.call(handlers, type)) {
  18. throw new Error('Cannot compile unknown node `' + type + '`')
  19. }
  20. return handlers[type](ctx, node, index, parent)
  21. }