Skip to content
Refinable Functions Constructor for Aspect and Feature Modularity
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Build Status

refinable.js is JavaScript library for object-oriented function refinement to implement cross-cutting and feature modularity by extension, mutation, and inheritance of function.

  • 📝  Function as Classes refinable.js frammes function as class to enable flexible modification of functions and method just like how we refine classes and objects

  • 📦  Refinable Functions refinable functions allows to implement cross-cutting and feature modularity using extension, mutation, and inheritance of function

  •   Safe, Manageable Refinements Typed refinable functions uses type systems for detect potential composition error everytime when changes are occured.

  • ⚡  Natively Supported for Web You can design and implement many modularity techniques without limits runtime environment or depends on special tooling and compilers. Perfect for developing web and constrained sensors devices.



npm install hiun/refinable

Note : Currently the library is experienmental and possibly unstable.

Prerequisite : Node.js 7.6 or higher (OR 6.5 or higher with --harmony flag for async await)

Simplist Example

API Server

var Behavior = require('self');
var DBQuery = new Behavior.add(inputScaffolding).add(authCheck);
var ReadDBQuery =;
var WriteDBQuery =;

var LoadArticle =;
var CreateArticle =;


//using traits
var publicApiTraits = {authCheck: null};
var publicLoadArticle =;

Refinable functions aspire motivation of many lasting modularity research like aspect-oriented programming and feature-oriented programming by attempting research’s theoretical benefits into pragmatic practices of rising script languages like JavaScript with dependency free implementation mechanism.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.