module.exports = function (TAPIC, _getJSON) {
  /**
  * Checks if "user" is following "channel". This is an asynchronous function and requires a callback.
  * @param  {string} user     The user id to check.
  * @param  {string} channel  The channel id to check.
  * @param  {function} callback The function that's called when the check is complete. Callback is given an object with isFollowing (boolean) and dateFollowed (string).
  * @function isFollowing
  */
  TAPIC.isFollowing = function (user, channel, callback) {
    // https://api.twitch.tv/kraken/users/skhmt/follows/channels/food
    if (typeof user != 'string' || typeof channel != 'string' || typeof callback != 'function') {
      return console.error('Invalid parameters. Usage: TAPIC.isFollowing(user_id, channel_id, callback);');
    }
    const url = 'https://api.twitch.tv/kraken/users/' + encodeURIComponent(user) + '/follows/channels/' + encodeURIComponent(channel);
    _getJSON(
      url,
      function (res) {
        if (res.error) callback({
          isFollowing: false
        });
        else callback({
          isFollowing: true,
          dateFollowed: (new Date(res.created_at).toLocaleString())
        });
      }
    );
  };
};

@@ -591,16 +591,17 @@
 %0A    if 
+(
 (typeof 
@@ -621,40 +621,118 @@
 ng' 
-%7C%7C typeof channel != 'string' %7C%7C
+&& typeof user != 'number') %7C%7C %0A        (typeof channel != 'string' && typeof channel != 'number) %7C%7C %0A        
  typ
@@ -1078,79 +1078,19 @@
 res.
-error) callback(%7B%0A          isFollowing: false%0A        %7D);%0A        else
+created_at)
  cal
@@ -1206,16 +1206,81 @@
     %7D);%0A
+        else callback(%7B%0A          isFollowing: false%0A        %7D);%0A
       %7D%0A

Update tapic.fn.isFollowing.js