Webux Lab

By Studio Webux

Typescript Helper Functions for Browser

TG
Tommy Gingras Studio Webux 2023-06-30

Typescript Helper Function for the Browser

This is a bunch of functions that I use very often in my different projects.


SHA256

export async function sha256(text: string): Promise<string> {
  const hash = await crypto.subtle.digest(
    "SHA-256",
    new TextEncoder().encode(text)
  );

  return Array.from(new Uint8Array(hash))
    .map((b) => b.toString(16).padStart(2, "0"))
    .join("");
}

Convert a base64 to Array Buffer

Source: Stack Overflow

export function base64ToArrayBuffer(base64: string): ArrayBuffer {
  if (!base64) throw new Error("Received an empty base64");
  var binaryString = atob(base64);
  var bytes = new Uint8Array(binaryString.length);
  for (var i = 0; i < binaryString.length; i++) {
    bytes[i] = binaryString.charCodeAt(i);
  }
  return bytes.buffer;
}

Set timeout with async/await

export function waitForIt(ms = 2000) {
  return new Promise((resolve) => setTimeout(resolve, ms));
}

Deep Copy

export function deepCopy(obj: Object): any {
  return JSON.parse(JSON.stringify(obj));
}

Split by Chunk

export function splitChunk(input: any[], size: number = 2) {
  let local = [...input];
  let btnSections = [];
  while (local.length > 0) {
    btnSections.push(local.splice(0, size));
  }
  return btnSections;
}

Search