readDescriptorWithMemo = async (memo, maybeRead, packageLocation) => {
  let promise = memo[packageLocation];
  if (promise !== undefined) {
    return promise;
  }
  promise = readDescriptor(maybeRead, packageLocation);
  memo[packageLocation] = promise;
  return promise;
}
@param {Record<string, object>} memo
@param {MaybeReadFn} maybeRead
@param {string} packageLocation
@returns {Promise<object>}