base64url.js 736 B

1234567891011121314151617181920
  1. import { Buffer } from 'buffer';
  2. import { decoder } from '../lib/buffer_utils.js';
  3. let encode;
  4. function normalize(input) {
  5. let encoded = input;
  6. if (encoded instanceof Uint8Array) {
  7. encoded = decoder.decode(encoded);
  8. }
  9. return encoded;
  10. }
  11. if (Buffer.isEncoding('base64url')) {
  12. encode = (input) => Buffer.from(input).toString('base64url');
  13. }
  14. else {
  15. encode = (input) => Buffer.from(input).toString('base64').replace(/=/g, '').replace(/\+/g, '-').replace(/\//g, '_');
  16. }
  17. export const decodeBase64 = (input) => Buffer.from(input, 'base64');
  18. export const encodeBase64 = (input) => Buffer.from(input).toString('base64');
  19. export { encode };
  20. export const decode = (input) => Buffer.from(normalize(input), 'base64');