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.
		
		
		
		
		
			
		
			
				
					58 lines
				
				1.8 KiB
			
		
		
			
		
	
	
					58 lines
				
				1.8 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								"use strict";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports = {
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * True if this is running in Nodejs, will be undefined in a browser.
							 | 
						||
| 
								 | 
							
								     * In a browser, browserify won't include this file and the whole module
							 | 
						||
| 
								 | 
							
								     * will be resolved an empty object.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    isNode : typeof Buffer !== "undefined",
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Create a new nodejs Buffer from an existing content.
							 | 
						||
| 
								 | 
							
								     * @param {Object} data the data to pass to the constructor.
							 | 
						||
| 
								 | 
							
								     * @param {String} encoding the encoding to use.
							 | 
						||
| 
								 | 
							
								     * @return {Buffer} a new Buffer.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    newBufferFrom: function(data, encoding) {
							 | 
						||
| 
								 | 
							
								        if (Buffer.from && Buffer.from !== Uint8Array.from) {
							 | 
						||
| 
								 | 
							
								            return Buffer.from(data, encoding);
							 | 
						||
| 
								 | 
							
								        } else {
							 | 
						||
| 
								 | 
							
								            if (typeof data === "number") {
							 | 
						||
| 
								 | 
							
								                // Safeguard for old Node.js versions. On newer versions,
							 | 
						||
| 
								 | 
							
								                // Buffer.from(number) / Buffer(number, encoding) already throw.
							 | 
						||
| 
								 | 
							
								                throw new Error("The \"data\" argument must not be a number");
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            return new Buffer(data, encoding);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Create a new nodejs Buffer with the specified size.
							 | 
						||
| 
								 | 
							
								     * @param {Integer} size the size of the buffer.
							 | 
						||
| 
								 | 
							
								     * @return {Buffer} a new Buffer.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    allocBuffer: function (size) {
							 | 
						||
| 
								 | 
							
								        if (Buffer.alloc) {
							 | 
						||
| 
								 | 
							
								            return Buffer.alloc(size);
							 | 
						||
| 
								 | 
							
								        } else {
							 | 
						||
| 
								 | 
							
								            var buf = new Buffer(size);
							 | 
						||
| 
								 | 
							
								            buf.fill(0);
							 | 
						||
| 
								 | 
							
								            return buf;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Find out if an object is a Buffer.
							 | 
						||
| 
								 | 
							
								     * @param {Object} b the object to test.
							 | 
						||
| 
								 | 
							
								     * @return {Boolean} true if the object is a Buffer, false otherwise.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    isBuffer : function(b){
							 | 
						||
| 
								 | 
							
								        return Buffer.isBuffer(b);
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    isStream : function (obj) {
							 | 
						||
| 
								 | 
							
								        return obj &&
							 | 
						||
| 
								 | 
							
								            typeof obj.on === "function" &&
							 | 
						||
| 
								 | 
							
								            typeof obj.pause === "function" &&
							 | 
						||
| 
								 | 
							
								            typeof obj.resume === "function";
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								};
							 |