skinjs

0.0.1-1 • Public • Published

README

Summary

Light weight aspect oriented library which enable validating functions based on contracts. the library also enables to define pre and post activities before function. or use your a predefined skin ( or more than one) which will be activated before and after the function body. By proactively providing contract based API for your public API, you enable a reliable dependency to and from your packages.

Installation

To use with node:

$ npm install  skinjs

Documentation

add the required library in your code:

var AV = require('skinjs').aspect;
var AB = AV.aspectBuilder;
var C = require('skinjs').contracts;

Then you can provide a contract to your function and attach before and after functions:

 const aspect = AV.aspectBuilder();
const log = (x) => console.log("before:", x);
this.x = "yooo";
const func = aspect.before(function () {
    this.start = new Date();
    return R.slice(0, Infinity, arguments);
}).after(function (result) {
    assert.equal(this.x, "yooo");
}).bind(this)
    .validate(C.integer32, C.string)
    .for((y) => y + '');
                

you can also provide a skin ( or more then one) that will be activated before and after the function:

const aspect = AV.aspectBuilder();
 
function long(y){
    for (let i=0;i<1000000;i++) {}
    return "done";
}
 
 const perfSkin = function (filename) {
        const atom = {};
        atom.context = atom;
        atom.before = function () {
            this.start = new Date();
        };
        atom.after = function () {
            console.log(( filename || '') +': function ' + atom.__funcName + ' took  ' +
                (new Date().getTime() - this.start.getTime() ) + ' ms to generate ' + arguments[0] );
        };
        return atom;
    };
const func = aspect.use(perfSkin(__filename)).validate(C.integer32, C.string)
    .for(long);
 

Running The Test Suite

Console:

To run the test suite from the console, you need to have mocha installed:

$ npm install -g mocha

Then from the root of the project, you can just call

$ mocha

Alternately, if you've installed the dependencies, via:

$ npm install

then you can run the tests (and get detailed output) by running:

$ gulp test

Package Sidebar

Install

npm i skinjs

Weekly Downloads

6

Version

0.0.1-1

License

MIT

Last publish

Collaborators

  • kobi.sasson