lib/smtp-transport.js
function assign( /* target, ... sources */ ) {
    var args = Array.prototype.slice.call(arguments);
    var target = args.shift() || {};

    args.forEach(function (source) {
        Object.keys(source || {}).forEach(function (key) {
            if (['tls', 'auth'].indexOf(key) >= 0 && source[key] && typeof source[key] === 'object') {
                // tls and auth are special keys that need to be enumerated separately
                // other objects are passed as is
                if (!target[key]) {
                    // esnure that target has this key
                    target[key] = {};
                }
                Object.keys(source[key]).forEach(function (subKey) {
                    target[key][subKey] = source[key][subKey];
                });
            } else {
                target[key] = source[key];
            }
        });
    });
    return target;
}
function assign( /* target, ... sources */ ) {
    var args = Array.prototype.slice.call(arguments);
    var target = args.shift() || {};

    args.forEach(function (source) {
        Object.keys(source || {}).forEach(function (key) {
            if (['tls', 'auth'].indexOf(key) >= 0 && source[key] && typeof source[key] === 'object') {
                // tls and auth are special keys that need to be enumerated separately
                // other objects are passed as is
                if (!target[key]) {
                    // esnure that target has this key
                    target[key] = {};
                }
                Object.keys(source[key]).forEach(function (subKey) {
                    target[key][subKey] = source[key][subKey];
                });
            } else {
                target[key] = source[key];
            }
        });
    });
    return target;
}
function assign ( /* target, ... sources */ ) { var args = Array . prototype . slice . call ( arguments ) ; var target = args . shift ( ) || { } ; args . forEach ( function ( source ) { Object . keys ( source || { } ) . forEach ( function ( key ) { if ( [ 'tls' , 'auth' ] . indexOf ( key ) >= 0 && source [ key ] && typeof source [ key ] === 'object' ) { // tls and auth are special keys that need to be enumerated separately // other objects are passed as is if ( ! target [ key ] ) { // esnure that target has this key target [ key ] = { } ; } Object . keys ( source [ key ] ) . forEach ( function ( subKey ) { target [ key ] [ subKey ] = source [ key ] [ subKey ] ; } ) ; } else { target [ key ] = source [ key ] ; } } ) ; } ) ; return target ; }
Copies properties from source objects to target objects
Copies properties from source objects to target objects