@ce-storefront/core
v0.0.1
Published
This package provides a JavaScript client for interacting with the Commerce Engine API. It handles token management, including token refresh, and provides methods for anonymous authentication, login, OTP verification, and making requests to the API.
Downloads
75
Readme
@ce-storefront/core
This package provides a JavaScript client for interacting with the Commerce Engine API. It handles token management, including token refresh, and provides methods for anonymous authentication, login, OTP verification, and making requests to the API.
Installation
To install this package, run the following command in your project directory:
pnpm add @ce-storefront/core
Usage
Here's a basic example of how to use the ApiClient
class:
import { ApiClient } from '@ce-storefront/core';
const client = new ApiClient({
apiKey: 'your_api_key_here',
environment: 'staging', // or 'prod'
storeId: 'your_store_id_here',
persistTokens: true, // Optional, defaults to false
});
// Authenticate anonymously
await client.authenticateAnonymous();
// Fetch products
const products = await client.request<{ products: { id: string; name: string }[] }>('/catalog/products');
console.log('Products:', products);
Methods
authenticateAnonymous()
Authenticates the client anonymously, retrieving an access token and refresh token if available.
request<T>(endpoint: string, init: RequestInit = {})
Makes a request to the API with the provided endpoint and initialization options. It handles token refresh if necessary.
Token Management
The ApiClient
class manages tokens automatically. It stores tokens in local storage if persistTokens
is set to true
in the constructor options. It also refreshes tokens when they expire or when a request fails due to an expired token.
Environment Variables
This package assumes the following environment variables are set:
CE_API_KEY
: Your Commerce Engine X-Api-Key.STORE_ID
: Commerce Engine store ID.
You can set these variables in your project's environment configuration or replace them with your actual values in the code.