# Workbox

A set of React components used internally at Komorebi Works.

## Development

* Simply clone [this](https://github.com/komorebi-works/workbox) workbox.
* `npm install` to install dependencies.
* `npm run storybook` to see a list of component at `localhost:9001`.
* `lib/index.js` in your entry point.
* Then publish to npm via `npm publish`.

## Linting

* ESLINT support is added to the project.
* It's configured for ES2015 and inherited configurations from [graphql/graphql-js](https://github.com/graphql/graphql-js).
* Use `npm run lint` to lint your code and `npm run lintfix` to fix common issues.

## Testing

* You can write test under `__test__` directory anywhere inside `lib` including sub-directories.
* Then run `npm test` to test your code. (It'll lint your code as well).
* You can also run `npm run testonly` to run tests without linting.

## ES2015 Setup

* ES2015 support is added with babel6.
* This project uses ES2015 and some of the upcoming features like `async await`.
* You can change them with adding and removing [presets](http://jamesknelson.com/the-six-things-you-need-to-know-about-babel-6/).
* All the polyfills you use are taken from the local `babel-runtime` package. So, this package won't add any global polyfills and pollute the global namespace.

## Kudos

* Kadira and arunoda for npm-base.
* Babel6 and the team behind it.
* Facebook's [graphql-js](https://github.com/graphql/graphql-js) authors for ESLint configurations and for the directory structure.
