Skip to content

Simple tool for declarative binding applications to HTML nodes.

License

Notifications You must be signed in to change notification settings

seedofjoy/bazooka

Repository files navigation

bazooka build status

Simple tool for declarative binding applications to HTML nodes.

Installation

$ npm install bazooka

Browser Support

Bazooka uses MutationObserver to watch for DOM updates. If you want to use Baz.watch() and need to support browsers without MutationObserver, you'll need any MutationObserver polyfill (we recommend this one)

Also, Bazooka can initiate components asynchriously (when component's node comes into viewport, via data-baz-async="viewport" HTML attribute). For that, Bazooka uses IntersectionObserver. In browsers without IntersectionObserver support, falls back to the equivalent of setTimeout(bazFunc, 1, node)

Examples

To view the examples, clone the bazooka repo, install the dependencies and compile examples:

$ git clone git://github.com/seedofjoy/bazooka.git
$ cd bazooka
$ npm install
$ npm run examples

Then run whichever example you want by opening index.html in /examples/ subdirectories:

$ cd examples
  • complex — universal component to work with and without bazooka
  • react-basic — bazooka + react
  • gifflix — bazooka + frp (via kefir.js)

Tests

To run the test suite, first install the dependencies, then run npm test:

$ npm install
$ npm test

Lint

Bazooka uses prettier linter. To conform with it, just run before creating a commit:

$ npm run fmt

License

MIT

About

Simple tool for declarative binding applications to HTML nodes.

Resources

License

Stars

Watchers

Forks

Packages

No packages published