6074fc0523891906499d3ee15fe5880e871b1d4a1b0019726c4885d4b89ab07efd4b228c21455d7365021bac9f7258ec64c1d2b455b860d349f85e7a6e574f 830 B

12345678910111213141516171819202122232425262728293031323334353637
  1. /* @flow */
  2. import { createWriteFunction } from './write'
  3. import { createRenderFunction } from './render'
  4. import type { RenderOptions } from './create-renderer'
  5. export function createBasicRenderer ({
  6. modules = [],
  7. directives = {},
  8. isUnaryTag = (() => false),
  9. cache
  10. }: RenderOptions = {}) {
  11. const render = createRenderFunction(modules, directives, isUnaryTag, cache)
  12. return function renderToString (
  13. component: Component,
  14. context: any,
  15. done: any
  16. ): void {
  17. if (typeof context === 'function') {
  18. done = context
  19. context = {}
  20. }
  21. let result = ''
  22. const write = createWriteFunction(text => {
  23. result += text
  24. return false
  25. }, done)
  26. try {
  27. render(component, write, context, () => {
  28. done(null, result)
  29. })
  30. } catch (e) {
  31. done(e)
  32. }
  33. }
  34. }