index.js
function use(name) {
  if (name === undefined) {
    if (queue.length === 0) {
      throw new Error('No algorithm installed.');
    }
    name = queue[queue.length - 1];
  } else if (typeof name !== 'string' || name === '') {
    throw new TypeError('The algorithm name must be an non-empty string.');
  }

  const hashFunc = funcs[name];

  if (!hashFunc) {
    throw new TypeError(`The ${name} algorithm is not installed`);
  }

  return hashFunc;
}
function use(name) {
  if (name === undefined) {
    if (queue.length === 0) {
      throw new Error('No algorithm installed.');
    }
    name = queue[queue.length - 1];
  } else if (typeof name !== 'string' || name === '') {
    throw new TypeError('The algorithm name must be an non-empty string.');
  }

  const hashFunc = funcs[name];

  if (!hashFunc) {
    throw new TypeError(`The ${name} algorithm is not installed`);
  }

  return hashFunc;
}
Selects manually which password hashing function to use.
You can call hash and verify on the object returned.
@public
@param {string|undefined} name The name of the algorithm to use.
@return {Object} The password hashing function object.