UNPKG

@luminati-io/mountebank

Version:

Over the wire test doubles

29 lines (24 loc) 774 B
'use strict'; /** @module */ /** * Crockford-style prototypical inheritance, which basically allows me to completely * avoid the new and this operators, which I have an unnatural aversion to * @param {Object} proto - the object to inherit from * @param {Object} [obj] - properties to merge into the newly created object as own properties * @returns {Object} */ function from (proto, obj) { // allow either inherit.from(EventEmitter) or inherit.from({key: 'value'}) if (typeof proto === 'function') { proto = new proto(); } obj = obj || {}; function F () {} F.prototype = proto; const result = new F(); Object.keys(obj).forEach(key => { result[key] = obj[key]; }); return result; } module.exports = { from };