b64 icon indicating copy to clipboard operation
b64 copied to clipboard

Add typings

Open matthieusieben opened this issue 2 years ago • 0 comments

I am currently using the following to type @hapi/b64. It would be nice if this module exported its own types. I d'ont have the time or resources to make a PR. Sorry about that.

declare module '@hapi/b64' {
  import { Transform } from 'node:stream'

  export class Decoder extends Transform {
    constructor()
  }
  export class Encoder extends Transform {
    constructor()
  }

  /**
   * @param buffer - A buffer containing the base64 encoded string
   * @returns A buffer containing the decoded bytes
   */
  export function decode(buffer: Buffer): Buffer

  /**
   * @params buffer - Buffer of bytes to encode
   * @returns A buffer containing a base64 encoded string
   */
  export function encode(buffer: Buffer): Buffer

  /**
   * Base64url (RFC 4648) encode
   */
  export function base64urlEncode(value: string | Buffer, encoding?: BufferEncoding): string

  /**
   * Base64url (RFC 4648) decode
   * @param encoding - defaults to 'binary'
   */
  export function base64urlDecode(value: string, encoding: 'buffer'): Buffer
  export function base64urlDecode(value: string, encoding?: BufferEncoding): string
}

matthieusieben avatar Jun 07 '23 10:06 matthieusieben