MrZenW / monkeyify

Monkey patch factory

Home Page:https://www.npmjs.com/package/monkeyify

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

monkeyify

Monkey patch factory

API

// demo: By monkeyify the atob function let atob support base64 url
window.atob = monkeyify(window.atob, {

// bind a caller, the default is the caller when the monkeyify function is called
  caller: window,

  // true(To monkeyify a monkeyifyed function is allowed)
  // 'return old monkey'(Return the first monkeyifyed function when you want to monkeyify a monkeyifyed function)
  allowMonkeyInMonkey: 'return old monkey';

  // monkey patch function. caller, args array and the original function
  monkey: function (caller, args, original) {
    var base64url = args[0];
    var d = 4 - base64url.length % 4;
    while (d-->0) {
      base64url += '=';
    }
    args[0] = base64url
      .replace(/\-/g, "+")
      .replace(/_/g, "/");
    return original.apply(caller, args);
  }
});
// or
window.atob = monkeyify(window.atob, function () {
// your code
});

About

Monkey patch factory

https://www.npmjs.com/package/monkeyify

License:MIT License


Languages

Language:JavaScript 100.0%