• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

ringcentral / ringcentral-js-widgets / 5607299609

pending completion
5607299609

push

github

web-flow
sync features and bugfixs from dd3f20d7 (#1730)

8800 of 15728 branches covered (55.95%)

Branch coverage included in aggregate %.

881 of 1290 new or added lines in 248 files covered. (68.29%)

13 existing lines in 7 files now uncovered.

14708 of 22609 relevant lines covered (65.05%)

142084.43 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

21.21
/packages/utils/src/utils/base64Handler.ts
1
const REGEXP_BASE64_DATA_URL =
2
  /^(data:\w+\/[a-zA-Z+\-.]+;base64,)?(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/i;
228✔
3

4
export function isBase64DataUrl(value: string) {
5
  return REGEXP_BASE64_DATA_URL.test(value);
6✔
6
}
7

8
export function decodeBase64DataUrl(dataURL: string) {
9
  if (isBase64DataUrl(dataURL)) {
3!
10
    return atob(dataURL.split('base64,')[1]);
3✔
11
  }
12

13
  return '';
×
14
}
15

16
export const fileToBase64 = (file: File | Blob) => {
228✔
NEW
17
  return new Promise<string>((resolve, reject) => {
×
NEW
18
    const reader = new FileReader();
×
NEW
19
    reader.onload = (e) => {
×
NEW
20
      resolve(e.target!.result as string);
×
21
    };
22

NEW
23
    reader.onerror = (err) => {
×
NEW
24
      reject(err);
×
25
    };
26

NEW
27
    reader.readAsDataURL(file);
×
28
  });
29
};
30

31
export const fileToBinary = (file: File | Blob) => {
228✔
NEW
32
  return new Promise<string>((resolve, reject) => {
×
NEW
33
    const reader = new FileReader();
×
NEW
34
    reader.onload = (e) => {
×
NEW
35
      resolve(e.target!.result as string);
×
36
    };
37

NEW
38
    reader.onerror = (err) => {
×
NEW
39
      reject(err);
×
40
    };
41

NEW
42
    reader.readAsBinaryString(file);
×
43
  });
44
};
45

46
export function base64ToBlob(base64Image: string) {
NEW
47
  const split = base64Image.split(',');
×
NEW
48
  const type = split[0].replace('data:', '').replace(';base64', '');
×
NEW
49
  const byteString = atob(split[1]);
×
NEW
50
  const ab = new ArrayBuffer(byteString.length);
×
NEW
51
  const ia = new Uint8Array(ab);
×
NEW
52
  for (let i = 0; i < byteString.length; i += 1) {
×
NEW
53
    ia[i] = byteString.charCodeAt(i);
×
54
  }
NEW
55
  return new Blob([ab], { type });
×
56
}
57

58
export function base64ToFile(base64Image: string, filename: string) {
NEW
59
  const blob = base64ToBlob(base64Image);
×
60

NEW
61
  return new File([blob], filename);
×
62
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc