Synchronous wrapper around the Fetch API. Uses node-fetch.
For a package using version of fetch built into Node.js, see sync-fetch-undici.
npm install sync-fetch
In the browser, a browserify bundle can be loaded from CDNs like unpkg.com.
<script src="https://unpkg.com/sync-fetch"></script>
<script src="https://unpkg.com/sync-fetch@VERSION"></script>const fetch = require('sync-fetch')
const metadata = fetch('https://doi.org/10.7717/peerj-cs.214', {
headers: {
Accept: 'application/vnd.citationstyles.csl+json'
}
}).json()
// arrayBuffer(), blob(), buffer(), json(), and text() supported- Does not support
StreamorBlobas input body since they cannot be read or serialized synchronously - Does not support
FormDataas input body yet as it can contain aBlob - Does not support
signalas it cannot be implemented synchronously - Does not support the non-spec
agentoption as its value cannot be serialized - Does not support non-standard
textConverted()method onSyncResponseandSyncRequest
- Does not support most options, since
XMLHttpRequestis pretty limited. Supported are:methodbodyheaderscredentials(but notomit)- (Non-spec)
timeout
- The non-standard
buffer()andtextConverted()methods are not supported - CORS limitations apply, of course (note they may be stricter for synchronous requests)