writeArchive = async (
  write,
  readPowers,
  archiveLocation,
  moduleLocation,
  options = {},
) => {
  const {
    dev,
    tags,
    conditions = tags,
    strict = false,
    commonDependencies,
    policy,
    parserForLanguage,
    languages,
    languageForExtension,
    commonjsLanguageForExtension,
    moduleLanguageForExtension,
    workspaceLanguageForExtension,
    workspaceCommonjsLanguageForExtension,
    workspaceModuleLanguageForExtension,
    ...otherOptions
  } = assignParserForLanguage(options);
  const compartmentMap = await mapNodeModules(readPowers, moduleLocation, {
    dev,
    strict,
    conditions,
    commonDependencies,
    policy,
    languageForExtension,
    commonjsLanguageForExtension,
    moduleLanguageForExtension,
    workspaceLanguageForExtension,
    workspaceCommonjsLanguageForExtension,
    workspaceModuleLanguageForExtension,
    languages,
  });
  return writeArchiveFromMap(
    write,
    readPowers,
    archiveLocation,
    compartmentMap,
    { policy, parserForLanguage, ...otherOptions },
  );
}
@param {WriteFn} write
@param {ReadFn | ReadPowers} readPowers
@param {string} archiveLocation
@param {string} moduleLocation
@param {ArchiveOptions} [options]