code: function encode$1(text, Encoder, options) {
  	// Ensure that text is a string
  	text = "" + text;
  
  	var encoder = new Encoder(text, options);
  
  	// If the input is not valid for the encoder, throw error.
  	// If the valid callback option is set, call it instead of throwing error
  	if (!encoder.valid()) {
  		throw new InvalidInputException(encoder.constructor.name, text);
  	}
  
  	// Make a request for the binary data (and other infromation) that should be rendered
  	var encoded = encoder.encode();
  
  	// Encodings can be nestled like [[1-1, 1-2], 2, [3-1, 3-2]
  	// Convert to [1-1, 1-2, 2, 3-1, 3-2]
  	encoded = linearizeEncodings(encoded);
  
  	// Merge
  	for (var i = 0; i < encoded.length; i++) {
  		encoded[i].options = merge(options, encoded[i].options);
  	}
  
  	return encoded;
  }
docs: encode() handles the Encoder call and builds the binary string to be rendered