defaults.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import { base64, base64url, binary, hex, utf8, utf16 } from "../encoding/index.js";
  2. import { pemConverter } from "../pem/index.js";
  3. export { pemConverter } from "../pem/index.js";
  4. import { createConverterRegistry } from "./registry.js";
  5. export const binaryConverter = {
  6. name: "binary",
  7. aliases: ["latin1"],
  8. encode: binary.encode,
  9. decode: binary.decode,
  10. is: binary.is,
  11. };
  12. export const hexConverter = {
  13. name: "hex",
  14. encode: hex.encode,
  15. decode: hex.decode,
  16. format: hex.format,
  17. is: hex.is,
  18. normalize: hex.normalize,
  19. parse: hex.parse,
  20. };
  21. export const base64Converter = {
  22. name: "base64",
  23. aliases: ["b64"],
  24. encode: base64.encode,
  25. decode: base64.decode,
  26. is: base64.is,
  27. normalize: base64.normalize,
  28. };
  29. export const base64urlConverter = {
  30. name: "base64url",
  31. aliases: ["base64-url", "b64url"],
  32. encode: base64url.encode,
  33. decode: base64url.decode,
  34. is: base64url.is,
  35. normalize: base64url.normalize,
  36. };
  37. export const utf8Converter = {
  38. name: "utf8",
  39. aliases: ["utf-8"],
  40. encode: (data) => utf8.decode(data),
  41. decode: (text) => utf8.encode(text),
  42. is: (text) => typeof text === "string",
  43. };
  44. export const utf16beConverter = {
  45. name: "utf16be",
  46. aliases: ["utf16", "utf-16", "utf-16be"],
  47. encode: (data) => utf16.decode(data),
  48. decode: (text) => utf16.encode(text),
  49. is: (text) => typeof text === "string",
  50. };
  51. export const utf16leConverter = {
  52. name: "utf16le",
  53. aliases: ["utf-16le", "ucs2", "usc2"],
  54. encode: (data) => utf16.decode(data, { littleEndian: true }),
  55. decode: (text) => utf16.encode(text, { littleEndian: true }),
  56. is: (text) => typeof text === "string",
  57. };
  58. export const defaultConverters = [
  59. binaryConverter,
  60. hexConverter,
  61. base64Converter,
  62. base64urlConverter,
  63. utf8Converter,
  64. utf16beConverter,
  65. utf16leConverter,
  66. pemConverter,
  67. ];
  68. export const defaultConverterRegistry = createConverterRegistry(defaultConverters);