whatsapp-web.js/docs/webCache_RemoteWebCache.js.html
2024-11-22 21:56:19 +00:00

93 lines
No EOL
3.5 KiB
HTML

<!doctype html>
<html>
<head>
<meta name="generator" content="JSDoc 3.6.11">
<meta charset="utf-8">
<title>whatsapp-web.js 1.26.1-alpha.3 &raquo; Source: webCache/RemoteWebCache.js</title>
<link rel="stylesheet" href="https://brick.a.ssl.fastly.net/Karla:400,400i,700,700i" type="text/css">
<link rel="stylesheet" href="https://brick.a.ssl.fastly.net/Noto+Serif:400,400i,700,700i" type="text/css">
<link rel="stylesheet" href="https://brick.a.ssl.fastly.net/Inconsolata:500" type="text/css">
<link href="css/baseline.css" rel="stylesheet">
</head>
<body onload="prettyPrint()">
<nav id="jsdoc-navbar" role="navigation" class="jsdoc-navbar">
<div id="jsdoc-navbar-container">
<div id="jsdoc-navbar-content">
<a href="index.html" class="jsdoc-navbar-package-name">whatsapp-web.<wbr>js 1.<wbr>26.<wbr>1-alpha.<wbr>3</a>
</div>
</div>
</nav>
<div id="jsdoc-body-container">
<div id="jsdoc-content">
<div id="jsdoc-content-container">
<div id="jsdoc-banner" role="banner">
</div>
<div id="jsdoc-main" role="main">
<header class="page-header">
<h1>Source: webCache/RemoteWebCache.js</h1>
</header>
<article>
<pre class="prettyprint linenums"><code>const fetch &#x3D; require(&#x27;node-fetch&#x27;);
const { WebCache, VersionResolveError } &#x3D; require(&#x27;./WebCache&#x27;);
/**
* RemoteWebCache - Fetches a WhatsApp Web version index from a remote server
* @param {object} options - options
* @param {string} options.remotePath - Endpoint that should be used to fetch the version index. Use {version} as a placeholder for the version number.
* @param {boolean} options.strict - If true, will throw an error if the requested version can&#x27;t be fetched. If false, will resolve to the latest version. Defaults to false.
*/
class RemoteWebCache extends WebCache {
constructor(options &#x3D; {}) {
super();
if (!options.remotePath) throw new Error(&#x27;webVersionCache.remotePath is required when using the remote cache&#x27;);
this.remotePath &#x3D; options.remotePath;
this.strict &#x3D; options.strict || false;
}
async resolve(version) {
const remotePath &#x3D; this.remotePath.replace(&#x27;{version}&#x27;, version);
try {
const cachedRes &#x3D; await fetch(remotePath);
if (cachedRes.ok) {
return cachedRes.text();
}
} catch (err) {
console.error(&#x60;Error fetching version ${version} from remote&#x60;, err);
}
if (this.strict) throw new VersionResolveError(&#x60;Couldn&#x27;t load version ${version} from the archive&#x60;);
return null;
}
async persist() {
// Nothing to do here
}
}
module.exports &#x3D; RemoteWebCache;</code></pre>
</article>
</div>
</div>
<nav id="jsdoc-toc-nav" role="navigation"></nav>
</div>
</div>
<footer id="jsdoc-footer" class="jsdoc-footer">
<div id="jsdoc-footer-container">
<p>
Generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc</a> 3.6.11 on November 22, 2024.
</p>
</div>
</footer>
<script src="scripts/jquery.min.js"></script>
<script src="scripts/tree.jquery.js"></script>
<script src="scripts/prettify.js"></script>
<script src="scripts/jsdoc-toc.js"></script>
<script src="scripts/linenumber.js"></script>
<script src="scripts/scrollanchor.js"></script>
</body>
</html>