utilsxo
Version:
A small, portable library full of utilities, functions, and neat tricks for your project/application
115 lines (114 loc) • 3.71 kB
JavaScript
/**
* Created by Curtis Gervais on 4/16/2017.
* License: MIT
*
* @desc Conversion tools for Utils X module
*/
module.exports = {
/* Convert Data types such as String, Byte */
asString: function(data, cb) {
var tmpData;
if(typeof(cb) !== "function") {
// no callback
tmpData = data;
tmpData = tmpData.toString();
return tmpData;
}
else {
tmpData = data;
tmpData = tmpData.toString();
cb(tmpData);
}
},
asByte: function(data, cb) {
var tmpData, code, bytes=[],bytesv2=[];
if(typeof(cb) !== "function") {
tmpData = data;
code = '';
for(var i = 0; i < tmpData.length; ++i) {
code = tmpData.charCodeAt(i);
bytes = bytes.concat([code]);
bytesv2 = bytesv2.concat([code & 0xff, code / 256 >>> 0]);
}
return {
bytes: bytes,
extended: bytesv2
};
}
else {
tmpData = data;
code = '';
for(var i = 0; i < tmpData.length; ++i) {
code = tmpData.charCodeAt(i);
bytes = bytes.concat([code]);
bytesv2 = bytesv2.concat([code & 0xff, code / 256 >>> 0]);
}
cb({
bytes: bytes,
extended: bytesv2
})
}
},
/* End asString&asByte */
/* Conversion of data to number/int */
toNum: function(data) {
return parseInt(data);
},
toNumber: function(data) {
return parseInt(data);
},
toInt: function(data) {
return parseInt(data);
},
/* end conversion of int/num */
/* Number Formatting */
number_format: function(number, decimals, decPoint, thousandsSep) {
number = (number + '').replace(/[^0-9+\-Ee.]/g, '');
var n = !isFinite(+number) ? 0 : +number;
var prec = !isFinite(+decimals) ? 0 : Math.abs(decimals);
var sep = (typeof(thousandsSep) === 'undefined') ? ',' : thousandsSep;
var dec = (typeof(decPoint) === 'undefined') ? '.' : decPoint;
var s = '';
var toFixedForm = function(n, prec) {
var k = Math.pow(10, prec);
return '' + (Math.round(n * k) / k).toFixed(prec);
};
s = (prec ? toFixedForm(n, prec) : '' + Math.round(n)).split('.');
if(s[0].length > 3) {
s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
}
if((s[1] || '').length < prec) {
s[1] = s[1] || '';
s[1] += new Array(prec - s[1].length + 1).join('0');
}
return s.join(dec);
},
/* End */
/* Begin Conversions of String=>Array, Array=>String, JSON=>Array, Array=>JSON */
strToArray: function(string) {
var tmpArray = JSON.parse("[\"" + string + "\"]");
// check to ensure conversion
if(typeof(tmpArray) === "array") {
return tmpArray;
}
else {
return tmpArray;
}
},
arrayToStr: function(array, breakpoint_sep) {
var tmpString;
tmpString = array.join(breakpoint_sep);
return tmpString;
},
jsonToArray: function(JSONData) {
var tmpArray;
tmpArray = JSON.parse(JSONData);
return tmpArray;
},
arrayToJson: function(arrayData) {
var tmpJSON;
tmpJSON = JSON.stringify(arrayData);
return tmpJSON;
}
/* end conversions of string/array/json */
};