code: function processMultipartNode(node, options) {
      options = options || {};
  
      var data = (node.childNodes && node.childNodes.map(function(tree) {
          return createBodystructure(tree, options);
      }) || [[]]).
          concat([
              // body subtype
              options.upperCaseKeys ? node.multipart && node.multipart.toUpperCase() || null : node.multipart,
              // body parameter parenthesized list
              node.parsedHeader['content-type'] &&
                  node.parsedHeader['content-type'].hasParams &&
                  flatten(Object.keys(node.parsedHeader['content-type'].params).map(function(key) {
                      return [
                          options.upperCaseKeys ? key.toUpperCase() : key,
                          node.parsedHeader['content-type'].params[key]];
                  })) || null]);
  
      if (options.body) {
          return data;
      } else {
          return data.
              // skip body MD5 from extension fields
              concat(getExtensionFields(node, options).slice(1));
      }
  }
docs: Processes a node with content-type=multipart/*
  
  @param {Object} node A tree node of the parsed mime tree
  @param {Object} [options] Optional options object (see createBodystructure for details)
  @return {Array} BODYSTRUCTURE for a multipart part