dinocollab-http-service
v1.1.5
Published
A TypeScript library for sending HTTP and GraphQL requests with automatic site detection, customizable headers, and flexible configuration. Suitable for DinoCollab projects.
Readme
🦕 Dinocollab Http Service
A TypeScript library for sending HTTP and GraphQL requests with automatic site detection, customizable headers, and flexible configuration. Suitable for DinoCollab projects.
Installation
npm install dinocollab-http-service@latestInitialization Per Dependency
npm install [email protected]
npm install --save-dev [email protected]Basic Usage
1. Sending a GraphQL Request
// Create an instance for the GraphQL endpoint
import { createGraphqlRequest } from 'dinocollab-http-service'
import { execute } from '../__generated'
export const Graphql = createGraphqlRequest({ execute, baseUrl: '/grql/api/v1/graphql' })
// Use the instance to send a query
import { media$$, mediaPage$, mediaStoreGraphDbContext$, query$ } from '../__generated/fetchers'
const MediaSelector = media$$
export type TMedia = ModelType<typeof MediaSelector>
export type TMediasFilterParams = Parameters<typeof mediaStoreGraphDbContext$.medias>[0]
export const Medias = (params: TMediasFilterParams) => {
const MediaPage = mediaPage$.items(MediaSelector).hasNextPage.hasPreviousPage.totalItems
return query$.mediaStore(mediaStoreGraphDbContext$.medias(params, MediaPage))
}
// Send a request to get the media list
export const fetchMedias = async (params: TMediasFilterParams) => {
const res = await Graphql.query(Medias(params))
return res
}2. Customization
// Set custom headers
await graphql.addCustomHeader({ headers: { 'x-custom-header': 'value' } })
// Set the current site
await graphql.setSite('site2')
// Get the current site
const site = await graphql.getSite()CLI Tool
This package provides a CLI tool to generate TypeScript code from a remote GraphQL schema.
Usage
npx dinocollab-http-service --schema-url=<GRAPHQL_SCHEMA_URL> [--secure] [--out-dir=<OUTPUT_DIR>]--schema-url: (required) URL to the GraphQL schema endpoint.--secure: (optional) Enable SSL certificate validation. By default, SSL validation is disabled.--out-dir: (optional) Output directory for generated code. Defaults to__generatedat the project root.
Example
npx dinocollab-http-service --schema-url=https://your-graphql-endpoint/graphql --out-dir=src/__generatedMain API
GraphqlRequest
Query(fetcher, options?): Send a GraphQL query/mutation.QueryPushNotify(fetcher, options?): Send a query and push errors to the notification context.addCustomHeader(config?): Add headers for the next request.setSite(site: string): Set the current site.getSite(): Get the current site.
HttpRequest
Request(fetcher, options?): Send an HTTP request.addCustomHeader(config?): Add headers for the next request.setSite(site: string): Set the current site.getSite(): Get the current site.
Main Types
IGraphqlRequestOptions,IHttpRequestOptions: Options for instance initialization.IGraphqlQueryOptions,IHttpRequestConfig: Options for sending requests.IGraphqlResult<T>: Standard result for list queries.
Development
- Clone the repo
- Install dependencies:
npm install - Build:
npm run build - Test:
npm test
License
MIT
