--- /dev/null
+/*!
+ * Connect - methodOverride
+ * Copyright(c) 2010 Sencha Inc.
+ * Copyright(c) 2011 TJ Holowaychuk
+ * MIT Licensed
+ */
+
+/**
+ * Module dependencies.
+ */
+
+var deprecate = require('depd')('connect');
+var methodOverride = require('method-override');
+
+/**
+ * Method Override:
+ *
+ * See [method-override](https://github.com/expressjs/method-override)
+ *
+ * @param {String} key
+ * @return {Function}
+ * @api public
+ */
+
+module.exports = function(key){
+ // this is a shim to keep the interface working with method-override@2
+ var opts = { methods: null };
+ var prop = key || '_method';
+ var _headerOverride = methodOverride('X-HTTP-Method-Override', opts);
+ var _bodyOverride = methodOverride(function(req){
+ if (req.body && typeof req.body === 'object' && prop in req.body) {
+ var method = req.body[prop];
+ delete req.body[prop];
+ return method;
+ }
+ }, opts);
+
+ return function(req, res, next){
+ _bodyOverride(req, res, function(err){
+ if (err) return next(err);
+ _headerOverride(req, res, next);
+ });
+ };
+};
+
+module.exports = deprecate.function(module.exports,
+ 'methodOverride: use method-override npm module instead');