Categories
JavaScript Answers Nodejs

How to decode base64 to hexadecimal string with JavaScript and Node.js?

Sometimes, we want to decode base64 to hexadecimal string with JavaScript and Node.js.

In this article, we’ll look at how to decode base64 to hexadecimal string with JavaScript and Node.js.

How to decode base64 to hexadecimal string with JavaScript and Node.js?

To decode base64 to hexadecimal string with JavaScript and Node.js, we can use the Buffer.from method to convert the base64 string to a buffer.

Then we can call the buffer’s toString method with 'hex' to convert it to a hex string.

For instance, we write:

const rawData = 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=='
const buffer = Buffer.from(rawData, 'base64');
const bufString = buffer.toString('hex');
console.log(bufString)

to call Buffer.from with the rawData base64 string and 'base64' to convert the rawData base64 string to a buffer.

Then we call buffer.toString with 'hex' to convert the buffer to a hex string.

As a result, we get that bufString is '75ab5a8a66a07bfa6781b6ac7bae22541391c3428682800000035252111480000001400000014201800000235bc9b940000007125110550235d8fe3fffcff0dfc1880170c804a1340c7c609633410003bd4d72f4638387c0000000125153912b909820'.

Conclusion

To decode base64 to hexadecimal string with JavaScript and Node.js, we can use the Buffer.from method to convert the base64 string to a buffer.

Then we can call the buffer’s toString method with 'hex' to convert it to a hex string.

Categories
JavaScript Answers

How to convert file size to MB in JavaScript?

Sometimes, we want to convert file size to MB in JavaScript.

In this article, we’ll look at how to convert file size to MB in JavaScript.

How to convert file size to MB in JavaScript?

To convert file size to MB in JavaScript, we can divide the number of bytes by 1024 raise to the power of 2.

For instance, we write:

const bytesToMegaBytes = bytes => bytes / (1024 ** 2);
console.log(bytesToMegaBytes(4675758))

to define the bytesToMegaBytes function that divide bytes by 1024 ** 2.

Therefore, we get 4.459150314331055 logged as a result.

Conclusion

To convert file size to MB in JavaScript, we can divide the number of bytes by 1024 raise to the power of 2.

Categories
JavaScript Answers

How to get the week number of the month of a given date with JavaScript?

Sometimes, we want to get the week number of the month of a given date with JavaScript.

In this article, we’ll look at how to get the week number of the month of a given date with JavaScript.

How to get the week number of the month of a given date with JavaScript?

To get the week number of the month of a given date with JavaScript, we can calculate it by getting the first date of the month of the given date.

Then we add the day of the month of the given date plus the first day of the month minus 1, divide everything by 7 and take the ceiling of the whole expression.

For instance, we write:

const getWeekNumOfMonthOfDate = (d) => {
  const firstDay = new Date(d.getFullYear(), d.getMonth(), 1).getDay();
  return Math.ceil((d.getDate() + (firstDay - 1)) / 7);
}

const weekNumOfDate = getWeekNumOfMonthOfDate(new Date(2022, 1, 20))
console.log(weekNumOfDate)

to define the getWeekNumOfMonthOfDate function to do the calculation.

We get the first day of the month which is given by date d with:

const firstDay = new Date(d.getFullYear(), d.getMonth(), 1).getDay()

Then we add the date of the month with (d.getDate() + (firstDay - 1)).

And then we get the week number by dividing by 7.

Finally, we take the ceiling of the with Math.ceil to round that up to a whole number.

Therefore, the console log should log 3 since Feb 20, 2022 is in the 3rd week of February, 2022.

Conclusion

To get the week number of the month of a given date with JavaScript, we can calculate it by getting the first date of the month of the given date.

Then we add the day of the month of the given date plus the first day of the month minus 1, divide everything by 7 and take the ceiling of the whole expression.

Categories
JavaScript Answers

How to use Promise.race() with JavaScript?

Sometimes, we want to use Promise.race() with JavaScript.

In this article, we’ll look at how to use Promise.race() with JavaScript.

How to use Promise.race() with JavaScript?

To use Promise.race() with JavaScript, we can call it with an array of promises.

For instance, we write:

const p1 = new Promise((resolve, reject) => {
  setTimeout(resolve, 500, 'one');
});
const p2 = new Promise((resolve, reject) => {
  setTimeout(resolve, 100, 'two');
});

(async () => {
  const value = await Promise.race([p1, p2])
  console.log(value);
})()

We call Promise.race with [p1, p2] which will return the promise that is settled first.

Therefore, value should be 'two' since the setTimeout callback is run in 100 seconds after the callback is queued for running.

Conclusion

To use Promise.race() with JavaScript, we can call it with an array of promises.

Categories
JavaScript Answers

How to reset a GIF animation with JavaScript?

Sometimes, we want to reset a GIF animation with JavaScript.

In this article, we’ll look at how to reset a GIF animation with JavaScript.

How to reset a GIF animation with JavaScript?

To reset a GIF animation with JavaScript, we can add a random query string to the end of the image URL.

For instance, we write:

<img src='https://media4.giphy.com/avatars/JulietGlock/S2TkRZ9GyF91.GIF' style='height: 100px'>

to add an animate GIF img element.

Then we write:

const img = document.querySelector('img')
setTimeout(() => {
  img.src = `${img.src.replace(/\?.*$/,"")}?x=${Math.random()}`;
}, 2000)

to select the img element with querySelector.

Then we set the img.src property to the img.src plus a new query string that had the x parameter set to a random number.

We have that in the setTimeout callback so src will be changed with a delay.

The animated GIF will start from the beginning when src is changed.

Conclusion

To reset a GIF animation with JavaScript, we can add a random query string to the end of the image URL.