Solv is a collection of AMD JavaScript modules built for object-oriented application development. Solv is very API focused. Solv reduces boilerplate code by handling lots of the plumbing involved in building class APIs (methods, events and properties). Solv is for the browser and for Node.js. It contains tools for:
The two easiest ways to install solv are npm and bower. Solv can also be installed by downloading or cloning from github. Solv is a modular library and doesn't offer a concatenated file for distribution. Once Solv is installed each of it's modules can be pulled in when and where needed.
npm install solv
bower install solv
git clone https://github.com/bob-gray/solv.git
The browsers and platforms represented below are those that are tested as part of Solv's build.
Solv strives to be as simple and robust in its implementation as possible. Code quality is important. Clean, obvious code is valued over clever, obfuscated code accompanied by verbose comments. Comments are only present in Solv when all attempts to refactor for clarity have failed. Developer productivity is valued over premature optimization. Solv's API is designed to be easy and fun to use.
Solv augments native prototypes to provide the best possible API. There are risks when altering native prototypes. Native prototypes are global and collision with other code or future native APIs is possible. On the other hand, member functions enhance the clarity of many operations. This makes augmenting native prototypes very attractive.
Solv has a fairly extensive test suite that is continuing to grow. To run tests Node.js and npm must be installed and a couple sets of commands need to be run.
npm install -g grunt-cli
to install grunt command line interfacenpm install
to install test dependenciesgrunt test
to execute testSee Gruntfile for more test and analysis options.
npm install -g bower
to install bower bower install
to install test dependenciestests/index.html
in the browser of your choiceSolv is being developed in conjunction with
meta-json and
api-meta, projects advocating the use
of meta data declared as JSON. This meta data can then drive runtime behavior and be
parsed statically for documentation generation. Solv includes a meta
runtime
implementation that is meta-json compliant and many of the methods contained
in Solv accept options objects comforming to api-meta. Building application with Solv and
declaring options with meta
means documenations is tied directly to
implementation. meta-json and api-meta are still works in progress as is Solv.
Stay tuned...