Registry / search / graphql-compose-elasticsearch

graphql-compose-elasticsearch

JSON →
library5.2.3jsnpmunverified

graphql-compose-elasticsearch version 5.2.3 is a library that exposes the Elasticsearch REST API via GraphQL. It acts as a proxy to the official elasticsearch-js client, automatically generating GraphQL field configs for all available Elasticsearch methods (search, index, delete, etc.) with params and descriptions. Additionally, it provides a plugin for graphql-compose that derives GraphQL types from Elasticsearch mappings, generating resolvers like search, searchConnection (Relay Cursor Connection), searchPagination, findById, and updateById. It supports Elasticsearch versions 1.7 through 7.x and requires graphql-compose ^7.0.4, ^8.0.0, or ^9.0.0. The library ships TypeScript types and is actively maintained.

npm install graphql-compose-elasticsearch
INSTALL
IMPORT
SIG · GRAPHQL-COMPOSE-EL
G
graphql-compose-elasticsearch
searchjavascriptv5.2.3
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

elasticApiFieldConfig
import { elasticApiFieldConfig } from 'graphql-compose-elasticsearch'
const { elasticApiFieldConfig } = require('graphql-compose-elasticsearch')
ESM import recommended; CommonJS require also works but is not tree-shakeable.
composeWithElastic
import { composeWithElastic } from 'graphql-compose-elasticsearch'
import composeWithElastic from 'graphql-compose-elasticsearch'
composeWithElastic is a named export, not default. Wrong default import will cause undefined.
ElasticApiParser
import { ElasticApiParser } from 'graphql-compose-elasticsearch'
const ElasticApiParser = require('graphql-compose-elasticsearch').ElasticApiParser;
Available in ESM and CJS; typically not used directly unless customizing API parsing.

Creates a GraphQL schema that exposes Elasticsearch API for two different versions (5.0 and 2.4) using elasticApiFieldConfig.

import { GraphQLSchema, GraphQLObjectType } from 'graphql'; import elasticsearch from 'elasticsearch'; import { elasticApiFieldConfig } from 'graphql-compose-elasticsearch'; const schema = new GraphQLSchema({ query: new GraphQLObjectType({ name: 'Query', fields: { elastic50: elasticApiFieldConfig( new elasticsearch.Client({ host: process.env.ES_HOST ?? 'http://localhost:9200', apiVersion: '5.0', }) ), elastic24: elasticApiFieldConfig({ host: process.env.ES_HOST ?? 'http://localhost:9200', apiVersion: '2.4', }), }, }), });
Debug
Known issues
breakingRequires graphql-compose ^7.0.4, ^8.0.0, or ^9.0.0. Using graphql-compose v6 or v10 may cause incompatibility.
fix
Install compatible graphql-compose: npm install graphql-compose@^9.0.0
affects: >=5.0.0
deprecatedThe elasticsearch npm package (v16.x) is deprecated in favor of @elastic/elasticsearch. graphql-compose-elasticsearch still uses the old client.
fix
Use elasticsearch v16.x with graphql-compose-elasticsearch, or migrate to a newer Elastic client.
affects: >=5.0.0
gotchasearchConnection resolver does not support backward pagination: 'before' argument will not work due to Elasticsearch search_after limitations.
fix
Use searchPagination or custom pagination for backward navigation.
affects: >=1.0.0
gotchaWhen using composeWithElastic, the mapping must include properties field. Missing properties will cause runtime errors.
fix
Ensure the mapping object has a 'properties' key with valid field definitions.
affects: >=5.0.0
breakingRemoved support for graphql-compose v6 and v7.x <7.0.4 in v5.
fix
Upgrade graphql-compose to ^7.0.4 or higher (^8.0.0 or ^9.0.0 recommended).
affects: ^5.0.0
Errors
Common errors & fixes
TypeError: elasticApiFieldConfig is not a function
Incorrect import: default import instead of named import, or wrong path.
fix
Use named import: import { elasticApiFieldConfig } from 'graphql-compose-elasticsearch'
Cannot find module 'graphql-compose'
Missing graphql-compose peer dependency.
fix
Run: npm install graphql-compose@^9.0.0
Elasticsearch client is not provided or invalid
Passed a plain object to elasticApiFieldConfig when expecting a client instance (or vice versa).
fix
Provide either a Client instance or a plain config object consistently.
Mapping must have 'properties' key
composeWithElastic received a mapping object without a 'properties' field.
fix
Check your Elasticsearch mapping and ensure it contains a 'properties' object.
Upgrade
Version history
5.2.3latest on npm
Audit
Dependencies
elasticsearchrequiredOfficial Elasticsearch client for Node.js; required for all Elasticsearch operations.
graphql-composerequiredProvides schema composition utilities and ObjectTypeComposer for mapping integration.
Agent activity
38 hits · last 30 days
node
34
Resources
graphql-compose-elasticsearch — npm install graphql-compose-elasticsearch · libregistry