Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@kv/jsonapi-client / src / client / index.ts
Size: Mime:
import { IConfig, IPlugin, ApiClient } from 'jsonapi-react';

export type JsonApiSchemaItemOptions = {
  type: string;
  relationships?: Record<string, JsonApiSchemaItemOptions>;
};

export type JsonApiSchema = Record<string, JsonApiSchemaItemOptions>;

export type JsonApiClientOptions = IConfig & {
  schema?: JsonApiSchema;
  plugins?: IPlugin[];
};

export const defaultOptions: Partial<JsonApiClientOptions> = {
  fetch: (url: string, options: IConfig) =>
    window.fetch(url, {
      ...options,
      headers: {
        ...options.headers,
      },
    }),
};

export const createJsonApiClient = (options: JsonApiClientOptions) =>
  new ApiClient({
    ...defaultOptions,
    ...options,
  });