Turbine
Relay-like REST-friendly Immutable-based React data library
[Work in progress]
Getting started
npm install turbine
Usage
Turbine's usage with components is similar to Relay.
const AssetsView = React
Warning: Format of the query may be changed in a future release.
<album_id>
is a query parameter that can be resolved from props
passed by the parent component: <AssetsView album_id="abc" />
.
Query params
You can also have query params that are owned by of the component itself.
For example, if your component renders a list of items, the number of items
can be updated when user scrolls. Use queryParams
and setQueryParams
:
var AssetsView = React moduleexports = Turbine
Models
assets
in the graph query above is a bit of magic. Turbine translates the name to Asset
,
and for things to work, you need to register the Asset
model with Turbine. You'd typically
do this in your entry module:
Turbine
Turbine expects each model to have query
, find
, create
, update
, delete
/remove
methods.
It's recommended to use Immutable records as your models:
Immutable // define methods static { return ... }
Development
- Fork the repo
git clone git@github.com:[yourname]/turbine && cd turbine && npm i
- Work your magic...
- Be sure you have no linting warnings/errors and tests pass.
- Push and open a pull request.
Linting
npm run lint
Note: It's recommended to install eslint plugin into your code editor.
Testing
npm test
or continuously
npm i -g karma-clikarma start
License
(c) 2015 Chute Corporation. Released under the terms of the MIT license.