function typedarray2json( arr ) {
	var data;
	var out;
	var i;

	if ( isTypedArray( arr ) ) {
		data = arr;
	} else if ( isComplexTypedArray( arr ) ) {
		if ( arr.BYTES_PER_ELEMENT === 8 ) {
			data = reinterpret64( arr, 0 );
		} else { // arr.BYTES_PER_ELEMENT === 16
			data = reinterpret128( arr, 0 );
		}
	} else if ( isBooleanArray( arr ) ) {
		data = reinterpretBoolean( arr, 0 );
	} else {
		throw new TypeError( format( 'invalid argument. Must provide a typed array. Value: `%s`.', arr ) );
	}
	out = {
		'type': typeName( arr ),
		'data': []
	};
	for ( i = 0; i < data.length; i++ ) {
		out.data.push( data[ i ] );
	}
	return out;
}
Returns a JSON representation of a typed array.

## Notes

-   We build a JSON object representing a typed array similar to how Node.js `Buffer` objects are represented. See [Buffer][1].

[1]: https://nodejs.org/api/buffer.html#buffer_buf_tojson

@param {TypedArray} arr - typed array to serialize
@throws {TypeError} first argument must be a typed array
@returns {Object} JSON representation

@example
var Float64Array = require( '@stdlib/array/float64' );

var arr = new Float64Array( [ 5.0, 3.0 ] );
var json = typedarray2json( arr );
// returns { 'type': 'Float64Array', 'data': [ 5.0, 3.0 ] }