Get unlimited public & private packages + team-based management with npm Teams.Learn more »

override-fn

1.0.10 • Public • Published

override-fn

util function to override any other function

Quick start

Several quick start options are available:

  • Download the latest release
  • Clone the repo: git clone https://github.com/massive-angular/override-fn.git
  • Install with bower: bower install override-fn
  • Install with npm: npm install override-fn

Examples

Use original parameters

var overrideFn = require('override-fn');
 
var context = {
    fn: function (a, b, c) {
        console.log('hello from fn: ', a, b, c);
    }
};
 
var originalFn = overrideFn(context, 'fn', function (baseFn) {
    console.log('hello from override-fn');
    baseFn();
});
 
context.fn(1, 2, 3);
// output:
// hello from override-fn
// hello from fn: 1, 2, 3
 
originalFn(1, 2, 3);
// output:
// hello from fn: 1, 2, 3

Use custom parameters

var overrideFn = require('override-fn');
 
var context = {
    fn: function (a, b, c) {
        console.log('hello from fn: ', a, b, c);
    }
};
 
var originalFn = overrideFn(context, 'fn', function (baseFn, a, b, c) {
    console.log('hello from override-fn');
    baseFn(+ 1, b + 1, c + 1);
});
 
context.fn(1, 2, 3);
// output:
// hello from override-fn
// hello from fn: 2, 3, 4
 
originalFn(1, 2, 3);
// output:
// hello from fn: 1, 2, 3

Override class

var overrideFn = require('override-fn');
 
var originalDate = overrideFn(global, 'Date', function (baseFn) {
    console.log('hello from override-fn');
    return baseFn(); // important to return created instance
});
 
var date = new Date();
console.log(date);
console.log(date instanceof Date);
console.log(date instanceof originalDate);
// output:
// hello from override-fn
// Tue May 24 2016 16:00:54 GMT+0300 (EEST)
// false
// true

Creators

Slava Matvienco

Alexandr Dascal

License

Code released under the MIT license.

Install

npm i override-fn

DownloadsWeekly Downloads

165

Version

1.0.10

License

MIT

Last publish

Collaborators

  • avatar