A utility to inject a prototype chain, fully generic and adaptable.
This largely exists for performance. Injecting a single prototype with many properties on it has been historically faster than adding those properties to an existing instance.
var http = require('http')
var proto = require('extend-proto')
var proto = Proto({
req: http.IncomingMessage,
res: http.ServerResponse
})
proto.req.defineProperty('kittens', { value: 'the best' })
http.createServer(function(req, res) {
proto(req, res)
req.kittens // the best
})