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.