Attributes
Includes Deno configuration
Repository
Current version released
a year ago
exFetch (Deno)
Releases | Latest () | Pre () |
---|---|---|
π Description
A Deno module to extend fetch
.
This project is inspired from:
- Deno - Standard Library - Async
- jhermsmeier/node-http-link-header
- node-fetch/node-fetch
- octokit/plugin-paginate-rest.js
π Feature
- Build in random retry delay.
- Build in retry request.
- Build in simplify paginate requests.
π Documentation (Excerpt)
For the full documentation, please visit the GitHub Repository Wiki.
Getting Started
- Deno >= v1.35.0
allow-net
(Allow Network Addresses): Resources Domain
/* Either */
import { ... } from "<URL>";// Named Import
import * as exFetch from "<URL>";// Namespace Import
import exFetch from "<URL>";// Default Import (Function `exFetch`)
Domain / Registry | URL |
---|---|
Deno Land | https://deno.land/x/exfetch[@<Tag>]/mod.ts |
DenoPKG | https://denopkg.com/hugoalh-studio/exfetch-deno[@<Tag>]/mod.ts |
GitHub Raw * | https://raw.githubusercontent.com/hugoalh-studio/exfetch-deno/<Tag>/mod.ts |
Pax | https://pax.deno.dev/hugoalh-studio/exfetch-deno[@<Tag>]/mod.ts |
*: Must provide a tag.
API
Class
ExFetch
Function
exFetch
exFetchPaginate
Interface / Type
ExFetchEventName
ExFetchEventOnRetryPayload
ExFetchOptions
ExFetchPaginateOptions
ExFetchRetryOptions
Example
let responses: Response[] = await exFetchPaginate("https://api.github.com/repos/microsoft/vscode/labels?per_page=100");
responses.map((response: Response) => {
return response.ok;
}).includes(false);
//=> false (`false` when no broken page, otherwise `true`)
let result = [];
for (let response in responses) {
result = await response.json();
}
result;
/*=>
[
{
"id": 2339554941,
"node_id": "MDU6TGFiZWwyMzM5NTU0OTQx",
"url": "https://api.github.com/repos/microsoft/vscode/labels/:apple:%20si",
"name": ":apple: si",
"color": "e99695",
"default": false,
"description": "Issues related to apple silicon"
},
{
"id": 421131022,
"node_id": "MDU6TGFiZWw0MjExMzEwMjI=",
"url": "https://api.github.com/repos/microsoft/vscode/labels/*as-designed",
"name": "*as-designed",
"color": "E2A1C2",
"default": false,
"description": "Described behavior is as designed"
},
{
"id": 409283388,
"node_id": "MDU6TGFiZWw0MDkyODMzODg=",
"url": "https://api.github.com/repos/microsoft/vscode/labels/*caused-by-extension",
"name": "*caused-by-extension",
"color": "E2A1C2",
"default": false,
"description": "Issue identified to be caused by an extension"
},
{
"id": 766755777,
"node_id": "MDU6TGFiZWw3NjY3NTU3Nzc=",
"url": "https://api.github.com/repos/microsoft/vscode/labels/*dev-question",
"name": "*dev-question",
"color": "E2A1C2",
"default": false,
"description": "VS Code Extension Development Question"
},
{
"id": 366106217,
"node_id": "MDU6TGFiZWwzNjYxMDYyMTc=",
"url": "https://api.github.com/repos/microsoft/vscode/labels/*duplicate",
"name": "*duplicate",
"color": "E2A1C2",
"default": false,
"description": "Issue identified as a duplicate of another issue(s)"
},
... +467
]
*/