zapier/formatic — pull request #13 by jdeal (2014-11-10 05:48:55+00:00)
Title: Simplify moar

Big bag o stuff here.

- Tried immutable objects but ended up being painful.
- Went back to mutable objects and ripped out a lot of unnecessary stuff. Now relying more on React components.
- Pretty textarea working better now in Chrome and Firefox. Still needs some finesse though.
- Added lots of comments. Some annotated source docs now at http://zapier.github.io/formatic/. Look at table of contents: __Formatic plugin core__ and under __default__ and __core__. Will keep adding more.
- Tests were disabled while refactoring but now adding them back in.
- Types and components are now connected via routes. See http://zapier.github.io/formatic/default/field-router.html and http://zapier.github.io/formatic/default/field-routes.html.
- Introduced "prop modifier" concept which is how the bootstrap plugin now works. Instead of simple configuration, prop modifiers can intercept props going to a component and modify them. See http://zapier.github.io/formatic/default/component.html and http://zapier.github.io/formatic/plugins/bootstrap.html.
- Plugin system now gets out of ordering problems, because plugin selection and configuration is all passed in as a single options object when creating the formatic instance. The plugin system also better supports plugins using other plugins. See http://zapier.github.io/formatic/formatic.html.
- Field evaluation and metadata loading pretty solid now I think. Found a pretty reasonable JSON-based syntax I think. (http://zapier.github.io/formatic/default/eval.html) By adding in functions (http://zapier.github.io/formatic/default/eval-functions.html) and using compilers, can build on this and do some interesting things. Basically can have high level declarative properties that compile down to these expressions.