Typesafe and straightforward fetch client for interacting with the European Product Registry for Energy Labelling (EPREL) API using feature-fetch
npm install eprel-client> Status: Experimental
eprel-client is a typesafe and straightforward fetch client for interacting with the European Product Registry for Energy Labelling (EPREL) API using feature-fetch.
Use createEPRELClient() to create a client with your API key.
``ts
import { createEPRELClient } from 'eprel-client';
const client = createEPRELClient({
apiKey: 'YOUR_API_KEY'
});
`
Fetches the available product groups from the ERAP API.
`ts`
const productGroupsResult = await client.getProductGroups();
const productGroups = productGroupsResult.unwrap();
Errors can occur during API requests, and the client will return detailed error information. Possible error types include:
- NetworkError: Indicates a failure in network communication, such as loss of connectivity
- RequestError: Occurs when the server returns a response with a status code indicating an error (e.g., 4xx or 5xx)
- FetchError: A general exception type that can encompass other error scenarios not covered by NetworkError or RequestError, for example when the response couldn't be parsed, ..
`ts
const productGroupsResult = await client.getProductGroups();
// First Approach: Handle error using isErr()
if (productGroupsResult.isErr()) {
const { error } = productGroupsResult;
if (error instanceof NetworkError) {
console.error('Network error:', error.message);
} else if (error instanceof RequestError) {
console.error('Request error:', error.message, 'Status:', error.status);
} else if (error instanceof FetchError) {
console.error('Service error:', error.message, 'Code:', error.code);
} else {
console.error('Unexpected error:', error);
}
}
// Second Approach: Unwrap response with try-catch``
try {
const productGroups = productGroupsResult.unwrap();
} catch (error) {
if (error instanceof NetworkError) {
console.error('Network error:', error.message);
} else if (error instanceof RequestError) {
console.error('Request error:', error.message, 'Status:', error.status);
} else if (error instanceof FetchError) {
console.error('Service error:', error.message, 'Code:', error.code);
} else {
console.error('Unexpected error:', error);
}
}