You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					29 lines
				
				904 B
			
		
		
			
		
	
	
					29 lines
				
				904 B
			| 
											2 years ago
										 | "use strict"; | ||
|  | 
 | ||
|  | var utils = require("../utils"); | ||
|  | var support = require("../support"); | ||
|  | var ArrayReader = require("./ArrayReader"); | ||
|  | var StringReader = require("./StringReader"); | ||
|  | var NodeBufferReader = require("./NodeBufferReader"); | ||
|  | var Uint8ArrayReader = require("./Uint8ArrayReader"); | ||
|  | 
 | ||
|  | /** | ||
|  |  * Create a reader adapted to the data. | ||
|  |  * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data to read. | ||
|  |  * @return {DataReader} the data reader. | ||
|  |  */ | ||
|  | module.exports = function (data) { | ||
|  |     var type = utils.getTypeOf(data); | ||
|  |     utils.checkSupport(type); | ||
|  |     if (type === "string" && !support.uint8array) { | ||
|  |         return new StringReader(data); | ||
|  |     } | ||
|  |     if (type === "nodebuffer") { | ||
|  |         return new NodeBufferReader(data); | ||
|  |     } | ||
|  |     if (support.uint8array) { | ||
|  |         return new Uint8ArrayReader(utils.transformTo("uint8array", data)); | ||
|  |     } | ||
|  |     return new ArrayReader(utils.transformTo("array", data)); | ||
|  | }; |