makeReadNowPowers = ({
  fs,
  url = undefined,
  crypto = undefined,
  path = undefined,
}) => {
  const powers = makeReadPowersSloppy({ fs, url, crypto, path });
  const fileURLToPath = powers.fileURLToPath || fakeFileURLToPath;
  const isAbsolute = powers.isAbsolute || fakeIsAbsolute;

  /**
   * @type {MaybeReadNowFn}
   */
  const maybeReadNow = location => {
    const filePath = fileURLToPath(location);
    try {
      return fs.readFileSync(filePath);
    } catch (error) {
      if (
        'code' in error &&
        (error.code === 'ENOENT' || error.code === 'EISDIR')
      ) {
        return undefined;
      }
      throw error;
    }
  };

  return {
    ...powers,
    maybeReadNow,
    fileURLToPath,
    isAbsolute,
  };
}
Creates {@link ReadPowers} for dynamic module support

@param {object} args
@param {FsInterface} args.fs
@param {UrlInterface} [args.url]
@param {CryptoInterface} [args.crypto]
@param {PathInterface} [args.path]
@returns {MaybeReadPowers & ReadNowPowers}