nanoraf

Only call RAF when needed

Usage no npm install needed!

<script type="module">
  import nanoraf from 'https://cdn.skypack.dev/nanoraf';
</script>

README

nanoraf stability

npm version build status test coverage downloads js-standard-style

Only call RAF when needed.

Usage

var nanoraf = require('nanoraf')
var prev = null

var frame = nanoraf(function render (state) {
  console.log(state.now)
})

updateState({ now: date.now() })
updateState({ now: date.now() })
updateState({ now: date.now() })
updateState({ now: date.now() })

function updateState (state) {
  prev = prev || {}
  frame(state, prev)
  prev = state
}

API

frame = nanoraf(render, raf?)

Wrap a render function that is called on every raf tick. If no new state is available, it will not tick. Passes the last version of the state on every tick.

Optionally, provide an implementation of requestAnimationFrame via the raf parameter (for example, the one provided by the raf package). If omitted, raf defaults to window.requestAnimationFrame.

frame([arguments])

Pass arguments into the render function, to be called on a new tick.

Installation

$ npm install nanoraf

License

MIT