GPF Library
A multi-purpose JavaScript library created and maintained by Arnaud Buchholz.
Features
- Provides a common scripting layer for several hosts (cscript/wscript, NodeJS, Rhino, Nashorn, PhantomJS, most recent browsers)
- Namespace and class system
- Interface based
- Asynchronous streams
- Modularization helper
- Attributes
- Almost 100% coverage
This library is developed in conjunction with a blog where the concepts and algorithms are documented and explained.
Metrics
This part is automatically updated upon a successful build:
- Code coverage is computed by executing all hosts, ignored parts are documented
- The maintainability is based on plato evaluation
SME stands for source minimal expectation.
Metric name | average | total | SME | comment |
---|---|---|---|---|
Statements coverage | 100% | 90% | 0.32% ignored | |
Branches coverage | 100% | 90% | 0.68% ignored | |
Functions coverage | 100% | 90% | 0.6% ignored | |
Maintainability | 83.64 | 70 | ||
Number of tests | 1109 | pending: 0, duration: 879ms | ||
Number of sources | 144 | |||
Lines of code | 93 | 13443 |
Setup
- Clone repository
- install grunt:
npm install -g grunt-cli
- at the root of the cloned repository:
npm install
, thengrunt
Testing
See Library testing
Documentation
The documentation is extracted from the sources using jsdoc syntax with grunt-jsdoc and the template from ink-docstrap
Versions
Date | Version | Label | Release | Debug | Flavors |
---|---|---|---|---|---|
2019-10-30 | 1.0.0 | First productive version | lib / test | lib / test | node / require |
2019-03-12 | 0.2.9 | ES6 Support | lib / test | lib / test | node / require |
2018-12-03 | 0.2.8 | Serialization attributes | lib / test | lib / test | require |
2018-08-04 | 0.2.7 | Quality and XML | lib / test | lib / test | require |
2018-05-03 | 0.2.6 | gpf.require.js | lib / test | lib / test | require |
2018-04-03 | 0.2.5 | Flavors | lib / test | lib / test | |
2018-02-28 | 0.2.4 | Attributes | lib / test | lib / test | |
2017-12-20 | 0.2.3 | Streams and Pipes | lib / test | lib / test | |
2017-11-01 | 0.2.2 | gpf.require | lib / test | lib / test | |
2017-06-06 | 0.2.1 | Side project support | lib / test | lib / test | |
2017-04-29 | 0.1.9 | Records files | lib / test | lib / test | |
2017-03-26 | 0.1.8 | Interfaces | lib / test | lib / test | |
2017-03-02 | 0.1.7 | Securing gpf.define | lib / test | lib / test | |
2017-02-05 | 0.1.6 | gpf.define | lib / test | lib / test | |
2016-12-05 | 0.1.5 | The new core | lib / test | lib / test |
Credits
- Code rewriting based on esprima and escodegen
- Markdown specification inspired from wikipedia
- UTF-8 encode/decode based on webtoolkit
- Promise/A+ implementation based on promise-polyfill
- atob/btoa implementation based on base64-js
- mocha test suite
- istanbul code coverage tool
- JavaScript task runner: Grunt
- Icons from Hawcons
- WScript simulated environment inspired from excellent WScript project from Mischa Rodermond
- Awesome dependency wheel from Francois Zaninotto