Skip to main content

Overview

@empathyco/x-adapter-platform is a pre-built adapter that provides a complete client for the Empathy Platform search API. It implements the adapter pattern from @empathyco/x-adapter with all the endpoint configurations needed to connect Interface X to Empathy’s search services.

Installation

npm install @empathyco/x-adapter-platform

Basic Usage

import { platformAdapter } from '@empathyco/x-adapter-platform';
import { XInstaller } from '@empathyco/x-components';

// Configure the platform adapter
const adapter = platformAdapter({
  env: 'staging',
  instance: 'your-instance-id',
  lang: 'en',
  consent: true
});

// Install with X Components
const installer = new XInstaller({
  adapter,
  domElement: '#app',
  xModules: {
    // Your module configuration
  }
});

installer.init();

Configuration

env
string
default:"'live'"
Environment to connect to. Options: 'staging', 'live'
instance
string
required
Your Empathy Platform instance identifier
lang
string
default:"'en'"
Language code for search results (e.g., ‘en’, ‘es’, ‘fr’)
Whether user has given consent for tracking
documentId
string
Optional document ID for tracking
uiLang
string
Optional UI language (defaults to lang value)

Supported Endpoints

The platform adapter provides pre-configured endpoints for:
  • Search - Main search query endpoint
  • Query Suggestions - Autocomplete suggestions
  • Popular Searches - Trending search queries
  • Recommendations - Product recommendations
  • Next Queries - Related search suggestions
  • Related Tags - Tag-based refinements
  • Identifier Results - SKU/model number search
  • Semantic Queries - AI-powered alternative queries
  • Experience Controls - Feature flags and configuration
  • Tagging - Analytics event tracking

Advanced Configuration

Custom Base URL

import { platformAdapter } from '@empathyco/x-adapter-platform';

const adapter = platformAdapter({
  env: 'staging',
  instance: 'your-instance',
  lang: 'en',
  // Override base URL
  baseUrl: 'https://custom-domain.empathy.co'
});

Response Interceptors

import { platformAdapter } from '@empathyco/x-adapter-platform';

const adapter = platformAdapter({
  env: 'live',
  instance: 'your-instance',
  lang: 'en'
});

// Add custom response transformation
const customAdapter = {
  ...adapter,
  search: async (request) => {
    const response = await adapter.search(request);
    // Custom transformation
    return {
      ...response,
      results: response.results.map(result => ({
        ...result,
        customField: 'custom value'
      }))
    };
  }
};

TypeScript Support

The adapter is fully typed and exports interfaces for all request and response types:
import type { 
  SearchRequest, 
  SearchResponse,
  PlatformAdapterConfig 
} from '@empathyco/x-adapter-platform';

const config: PlatformAdapterConfig = {
  env: 'staging',
  instance: 'my-instance',
  lang: 'en',
  consent: true
};

Dependencies

  • @empathyco/x-adapter - Base adapter utilities
  • @empathyco/x-types - TypeScript type definitions
  • @empathyco/x-utils - Shared utilities

x-adapter

Base adapter pattern and utilities

Platform Integration

Integration guide for Empathy Platform

Custom API

Creating custom API adapters

x-components

Main component library

Build docs developers (and LLMs) love