@dotcms/client
Version:
Official JavaScript library for interacting with DotCMS REST APIs.
46 lines (45 loc) • 2.14 kB
TypeScript
import { DotGraphQLApiResponse, DotHttpClient } from '@dotcms/types';
/**
* Builds a GraphQL query for retrieving page content from DotCMS.
*
* @param {string} pageQuery - Custom fragment fields to include in the ClientPage fragment
* @param {string} additionalQueries - Additional GraphQL queries to include in the main query
* @returns {string} Complete GraphQL query string for page content
*/
export declare const buildPageQuery: ({ page, fragments, additionalQueries, verbose }: {
page?: string;
fragments?: string[];
additionalQueries?: string;
verbose?: boolean;
}) => string;
/**
* Converts a record of query strings into a single GraphQL query string.
*
* @param {Record<string, string>} queryData - Object containing named query strings
* @returns {string} Combined query string or empty string if no queryData provided
*/
export declare function buildQuery(queryData: Record<string, string>): string;
/**
* Filters response data to include only specified keys.
*
* @param {Record<string, unknown> | undefined} responseData - Original response data object
* @param {string[]} keys - Array of keys to extract from the response data
* @returns {Record<string, unknown> | undefined} New object containing only the specified keys
*/
export declare function mapContentResponse(responseData: Record<string, unknown> | undefined, keys: string[]): Record<string, unknown> | undefined;
/**
* Executes a GraphQL query against the DotCMS API.
*
* @param {Object} options - Options for the fetch request
* @param {string} options.body - GraphQL query string
* @param {Record<string, string>} options.headers - HTTP headers for the request
* @param {DotHttpClient} options.httpClient - HTTP client for making requests
* @returns {Promise<DotGraphQLApiResponse>} Parsed JSON response from the GraphQL API
* @throws {DotHttpError} If the HTTP request fails (non-2xx status or network error)
*/
export declare function fetchGraphQL({ baseURL, body, headers, httpClient }: {
baseURL: string;
body: string;
headers?: HeadersInit;
httpClient: DotHttpClient;
}): Promise<DotGraphQLApiResponse>;