mirror of https://github.com/ColorlibHQ/gentelella
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.
37 lines
961 B
37 lines
961 B
'use strict';
|
|
|
|
var utils = require('./utils');
|
|
|
|
/**
|
|
* An object to write any content to an Uint8Array.
|
|
* @constructor
|
|
* @param {number} length The length of the array.
|
|
*/
|
|
var Uint8ArrayWriter = function(length) {
|
|
this.data = new Uint8Array(length);
|
|
this.index = 0;
|
|
};
|
|
Uint8ArrayWriter.prototype = {
|
|
/**
|
|
* Append any content to the current array.
|
|
* @param {Object} input the content to add.
|
|
*/
|
|
append: function(input) {
|
|
if (input.length !== 0) {
|
|
// with an empty Uint8Array, Opera fails with a "Offset larger than array size"
|
|
input = utils.transformTo("uint8array", input);
|
|
this.data.set(input, this.index);
|
|
this.index += input.length;
|
|
}
|
|
},
|
|
/**
|
|
* Finalize the construction an return the result.
|
|
* @return {Uint8Array} the generated array.
|
|
*/
|
|
finalize: function() {
|
|
return this.data;
|
|
}
|
|
};
|
|
|
|
module.exports = Uint8ArrayWriter;
|