create-renderer.js 658 B

1234567891011121314151617181920212223242526272829
  1. import RenderStream from './render-stream'
  2. import { render } from './render'
  3. export function createRenderer ({
  4. modules = [],
  5. directives = {},
  6. isUnaryTag = (() => false)
  7. } = {}) {
  8. function _render (component, write, done) {
  9. render(modules, directives, isUnaryTag)(component, write, done)
  10. }
  11. return {
  12. renderToString (component) {
  13. let result = ''
  14. _render(component, (str, next) => {
  15. result += str
  16. next && next()
  17. })
  18. return result
  19. },
  20. renderToStream (component) {
  21. return new RenderStream((write, done) => {
  22. _render(component, write, done)
  23. })
  24. },
  25. render: _render
  26. }
  27. }