Skip to content

Support Uin8Array directly in update() #15

Description

@webmaster128

Uin8Array is emerging as the standard type for binary data in JavaScript, independent of Node.js's Buffer type. It would be very cool if a user could use Uin8Array input data directly in update() without wrapping it in a Buffer.

Right now this is prevented by an exception

function throwIfNotStringOrBuffer (val, prefix) {
  if (!Buffer.isBuffer(val) && typeof val !== 'string') {
    throw new TypeError(prefix + ' must be a string or a buffer')
  }
}

// ..

HashBase.prototype.update = function (data, encoding) {
  throwIfNotStringOrBuffer(data, 'Data')
  if (this._finalized) throw new Error('Digest already called')
  if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)

Here is an Uint8Array type checker for inspiration: https://github.com/iov-one/iov-core/blob/v2.2.4/packages/iov-encoding/src/typechecks.ts#L1-L26

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions