Skip to content

Latest commit

 

History

History

headless

npm version

Coveo Headless

Using the library: Coveo Headless Library Official Documentation.

Entry points

The @coveo/headless package exposes several entry points.

The entry point from which you will import Coveo Headless resources depends on the engine type you are using:

Engine type Entry point
Search engine @coveo/headless
Search SSR engine @coveo/headless/ssr
CaseAssist engine @coveo/headless/case-assist
Commerce engine @coveo/headless/commerce
Commerce SSR engine @coveo/headless/ssr-commerce 
Insight engine @coveo/headless/insight
Recommendation engine @coveo/headless/recommendation

Contributing

Getting started

Once you have cloned the repo, follow the instructions in the top-level README.md to install dependencies and link packages.

To start the project in development mode, run:

npm run dev

To build the library for production, run:

npm run build

To run the unit tests, run:

npm test

To run the unit tests and watch, run:

npm run test:watch

To use @coveo/headless locally, you have to build the package by running:

npm run build

Redux

The headless project intensively uses "Redux" along with "Redux Toolkit", so prior knowledge is necessary.

Source folder structure

The base of the /src folder should only contain exports.

/app contains app-wide setup: Redux store, root reducer, middlewares.

/state contains interfaces for the various application states.

/features has folders that each owns the functionalities of a feature, which is a subpart of the redux state. Following the "ducks pattern", those files contain Redux slices & reducers that define the state shape. Each feature folder has a file with actions that can be exported with the project.

/controllers contains all the headless controllers in folders. Those controllers are exported and used to provide abstraction from the store's features by being closer to the actual UI controllers of a customer's application.

/utils contains common useful utilities.

/api contains everything regarding api calls.

/test contains test mocks.

Contribution guide: Adding a new controller.

Please see the contributor guide for guidance.

Contribution guide: Troubleshooting bundle content.

Please see the contributor guide for guidance.