code: function wrapper(my, flag) {
  
    var callback;
  
    if (flag) {
      if (my.header) {
        callback = function(req, res) {
  
          var t = res._headerSent === false || res.finished === false;
          return t === true ? my.callback(req, res, my.data) : null;
        };
      } else {
        callback = function(req, res) {
  
          my.callback(req, res, my.data);
        };
      }
  
    } else {
      var finale = function(req, res) {
  
        res.end();
        req.socket.destroy();
      };
      if (my.header) {
        callback = function(req, res) {
  
          var t = res._headerSent === false || res.finished === false;
          return t === true ? finale(req, res) : null;
        };
      } else {
        callback = function(req, res) {
  
          finale(req, res);
        };
      }
    }
  
    /**
     * set timeout as middleware with callback
     * 
     * @function timer
     * @param {Object} req - client request
     * @param {Object} res - response to client
     * @param {next} next - continue routes
     * @return {next}
     */
    return function timer(req, res, next) {
  
      req.timeout = setTimeout(callback.bind(this, req, res), my.milliseconds);
  
      // buff
      var destroy = req.socket.destroy;
      var end = res.end;
  
      // override
      req.socket.destroy = function() {
  
        clearTimeout(req.timeout);
        destroy.call(this);
      };
  
      res.end = function(chunk, encoding) {
  
        clearTimeout(req.timeout);
        end.call(this, chunk, encoding);
      };
  
      next();
    };
  }
docs: /*
  functions
   
  function wrapper for multiple require
  
  @function wrapper
  @param {Object} my - parsed options
  @param {Boolear} flag - flag for custom callback
  @return {Function}