function format( str ) {
	var args;
	var i;

	if ( !isString( str ) ) {
		throw new TypeError( format( 'invalid argument. First argument must be a string. Value: `%s`.', str ) );
	}
	args = [ tokenize( str ) ];
	for ( i = 1; i < arguments.length; i++ ) {
		args.push( arguments[ i ] );
	}
	return interpolate.apply( null, args );
}
Inserts supplied variable values into a format string.

@param {string} str - input string
@param {Array} ...args - variable values
@throws {TypeError} first argument must be a string
@throws {Error} invalid flags
@returns {string} formatted string

@example
var str = format( 'Hello %s!', 'world' );
// returns 'Hello world!'

@example
var str = format( 'Pi: ~%.2f', 3.141592653589793 );
// returns 'Pi: ~3.14'