convert.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import { convert } from "../converters/index.js";
  2. function normalizeTextEncoding(encoding) {
  3. return encoding === "ascii" ? "binary" : encoding;
  4. }
  5. export class Convert {
  6. static DEFAULT_UTF8_ENCODING = "utf8";
  7. static isHex(data) {
  8. return convert.isHex(data);
  9. }
  10. static isBase64(data) {
  11. return convert.isBase64(data);
  12. }
  13. static isBase64Url(data) {
  14. return convert.isBase64Url(data);
  15. }
  16. static ToString(buffer, enc = "utf8") {
  17. return convert.toString(buffer, enc);
  18. }
  19. static FromString(str, enc = "utf8") {
  20. if (!str) {
  21. return new ArrayBuffer(0);
  22. }
  23. return convert.fromString(str, enc);
  24. }
  25. static ToBase64(buffer) {
  26. return convert.toBase64(buffer);
  27. }
  28. static FromBase64(base64) {
  29. return convert.fromBase64(base64);
  30. }
  31. static FromBase64Url(base64url) {
  32. return convert.fromBase64Url(base64url);
  33. }
  34. static ToBase64Url(data) {
  35. return convert.toBase64Url(data);
  36. }
  37. static FromUtf8String(text, encoding = Convert.DEFAULT_UTF8_ENCODING) {
  38. return convert.fromString(text, normalizeTextEncoding(encoding));
  39. }
  40. static ToUtf8String(buffer, encoding = Convert.DEFAULT_UTF8_ENCODING) {
  41. return convert.toString(buffer, normalizeTextEncoding(encoding));
  42. }
  43. static FromBinary(text) {
  44. return convert.fromBinary(text);
  45. }
  46. static ToBinary(buffer) {
  47. return convert.toBinary(buffer);
  48. }
  49. static ToHex(buffer) {
  50. return convert.toHex(buffer);
  51. }
  52. static FromHex(hexString) {
  53. return convert.fromHex(hexString);
  54. }
  55. static ToUtf16String(buffer, littleEndian = false) {
  56. return convert.toUtf16String(buffer, littleEndian);
  57. }
  58. static FromUtf16String(text, littleEndian = false) {
  59. return convert.fromUtf16String(text, littleEndian);
  60. }
  61. static Base64Padding(base64) {
  62. const padCount = 4 - (base64.length % 4);
  63. return padCount < 4 ? base64 + "=".repeat(padCount) : base64;
  64. }
  65. static formatString(data) {
  66. return convert.formatString(data);
  67. }
  68. }