0.0.27 • Published 7 months ago

eprel-client v0.0.27

Weekly downloads
-
License
MIT
Repository
github
Last release
7 months ago

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.

📖 Usage

Create a EPREL Client

Use createEPRELClient() to create a client with your API key.

import { createEPRELClient } from 'eprel-client';

const client = createEPRELClient({
	apiKey: 'YOUR_API_KEY'
});

Fetch Available Product Groups

Fetches the available product groups from the ERAP API.

const productGroupsResult = await client.getProductGroups();
const productGroups = productGroupsResult.unwrap();

Error Handling

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, ..
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);
	}
}
0.0.27

7 months ago

0.0.24

7 months ago

0.0.25

7 months ago

0.0.26

7 months ago

0.0.22

9 months ago

0.0.23

9 months ago

0.0.21

9 months ago

0.0.20

10 months ago

0.0.19

11 months ago

0.0.18

1 year ago

0.0.17

1 year ago

0.0.16

1 year ago

0.0.15

1 year ago

0.0.14

1 year ago

0.0.13

1 year ago

0.0.12

1 year ago

0.0.11

1 year ago

0.0.10

1 year ago

0.0.9

1 year ago

0.0.8

1 year ago

0.0.7

1 year ago

0.0.6

1 year ago

0.0.5

1 year ago

0.0.4

1 year ago

0.0.3

1 year ago

0.0.2

1 year ago