How openfoodfacts/openfoodfacts-js works
This is the Open Food Facts JavaScript/TypeScript SDK: callers create a client with a fetch implementation, invoke product or supporting service methods, and receive typed API responses. Its main workflow is routed through the OpenFoodFacts facade to Product Opener v2/v3, with separate query, Robotoff, and NutriPatrol clients. Other exported capabilities include search, folksonomy, prices, and knowledge panels. The graph reflects documented and indexed relationships; unsampled module internals are represented only where the tree and README support them.
Main entry points: off.ts OpenFoodFacts client · schemas OpenAPI schemas · robotoff.ts Robotoff client · off-v2.ts Product Opener v2
Components 22
Client facade
- OpenFoodFacts client
src/off.ts
Product API
- Product Opener v2
src/off-v2.ts - Product Opener v3
src/off-v3.ts - Product Opener API
- Taxonomy API
src/taxonomy/api.ts
Data services
- Facet query client
src/query.ts - Query service
- Search client
src/search.ts - Search service
- Robotoff client
src/robotoff.ts - Robotoff service
- NutriPatrol client
src/nutripatrol.ts - NutriPatrol service
- Folksonomy client
src/folksonomy.ts - Folksonomy service
- Prices client
src/prices.ts - Prices service
- Knowledge panels
src/knowledgepanels.ts
Types and schemas
- Taxonomy types
src/taxonomy/types.ts - OpenAPI schemas
src/schemas - Form body encoding
src/formbody.ts
Other components
- SDK caller
Connections 27
- SDK caller → OpenFoodFacts client: creates client
README.md - SDK caller → Search client: uses exported client
- OpenFoodFacts client → Product Opener v2: constructs
src/off.ts - OpenFoodFacts client → Product Opener v3: constructs
src/off.ts - OpenFoodFacts client → Robotoff client: constructs
src/off.ts - OpenFoodFacts client → NutriPatrol client: constructs
src/off.ts - OpenFoodFacts client → Facet query client: constructs
src/off.ts - Product Opener v2 → Product Opener API: sends API requests
src/off-v2.ts - Product Opener v3 → Product Opener API: sends API requests
src/off-v3.ts - OpenFoodFacts client → Taxonomy API: fetches taxonomy
src/off.ts - Facet query client → Query service: posts aggregates
src/query.ts - Search client → Search service: sends endpoint requests
src/search.ts - Robotoff client → Robotoff service: sends endpoint requests
src/robotoff.ts - NutriPatrol client → NutriPatrol service: sends API requests
- Folksonomy client → Folksonomy service: sends API requests
- Prices client → Prices service: sends API requests
- OpenFoodFacts client → Knowledge panels: exposes panel methods
- Product Opener v2 → OpenAPI schemas: uses v2 bindings
src/off-v2.ts - Product Opener v3 → OpenAPI schemas: uses v3 bindings
src/off-v3.ts - Facet query client → OpenAPI schemas: uses query bindings
src/query.ts - Search client → OpenAPI schemas: uses search bindings
src/search.ts - Robotoff client → OpenAPI schemas: uses service bindings
src/robotoff.ts - NutriPatrol client → OpenAPI schemas: uses service bindings
src/nutripatrol.ts - Folksonomy client → OpenAPI schemas: uses service bindings
src/folksonomy.ts - Prices client → OpenAPI schemas: uses service bindings
src/prices.ts - OpenFoodFacts client → Taxonomy types: uses taxonomy types
src/off.ts - Robotoff client → Form body encoding: serializes form body
src/robotoff.ts