pull-hyperscript

0.2.2 • Public • Published

pull-hyperscript

Create HyperText a la hyperscript, but return the html as a pull-stream.

This allows streaming the view to the browser as it continues to render.

const h = require('pull-hyperscript')
const pull = require('pull-stream')

pull(
  h('div', {class: 'i'}, [
    h('div', {}, [
      h('p', {}, 'yes!')
    ])
  ]),
  pull.concat((err, html) => {
    if (err) throw err
    t.equal(html, '<div class="i"><div><p>yes!</p></div></div>', 'renders html')
    t.end()
  })
)

pull(
  h('div', {class: 'i'}, pull(
    pull.values(['yes', null, 'non']),
    pull.filter(Boolean),
    map(val => h('p', val)),
    flatten()                        // NB: flatten turns a stream of streams into a single stream
  )),
  pull.concat((err, html) => {
    if (err) throw err
    var expected = '<div class="i"><p>yes</p><p>non</p></div>'
    t.equal(html, expected, 'renders html')
    t.end()
  })
)

TODO

  • Should support some kind of automatic text escaping.
  • props should generate the the same html as hyperscript. Should probably rip some code out of html-element.
  • ES5 compat? Discuss if this module should work in older (non-serverside) JS runtimes. How should we go about supporting this?

Package Sidebar

Install

npm i pull-hyperscript

Weekly Downloads

3

Version

0.2.2

License

MIT

Last publish

Collaborators

  • mixmix
  • mmckegg