UNPKG

@orbit/jsonapi

Version:

JSON:API support for Orbit.

72 lines (71 loc) 3.56 kB
import { RecordKeyMap, RecordSchema, RecordQueryExpression, RecordTransform, RecordQuery } from '@orbit/records'; import { Dict } from '@orbit/utils'; import { RecordTransformRequest } from './lib/transform-requests'; import { RecordQueryRequest } from './lib/query-requests'; import { ResourceDocument } from './resource-document'; import { RecordDocument } from './record-document'; import { JSONAPIRequestOptions } from './lib/jsonapi-request-options'; import { JSONAPIURLBuilder, JSONAPIURLBuilderSettings } from './jsonapi-url-builder'; import { JSONAPISerializer, JSONAPISerializerSettings } from './jsonapi-serializer'; import { SerializerForFn, SerializerClassForFn, SerializerSettingsForFn } from '@orbit/serializers'; import { RecordOperation } from '@orbit/records'; import { JSONAPIResponse } from './jsonapi-response'; export interface FetchSettings { headers?: Dict<any>; method?: string; json?: Dict<any>; body?: string; params?: Dict<any>; timeout?: number; credentials?: string; cache?: string; redirect?: string; referrer?: string; referrerPolicy?: string; integrity?: string; } export interface JSONAPIRequestProcessorSettings { sourceName: string; serializerFor?: SerializerForFn; serializerClassFor?: SerializerClassForFn; serializerSettingsFor?: SerializerSettingsForFn; SerializerClass?: new (settings: JSONAPISerializerSettings) => JSONAPISerializer; URLBuilderClass?: new (settings: JSONAPIURLBuilderSettings) => JSONAPIURLBuilder; namespace?: string; host?: string; defaultFetchSettings?: FetchSettings; allowedContentTypes?: string[]; schema: RecordSchema; keyMap?: RecordKeyMap; } export declare class JSONAPIRequestProcessor { sourceName: string; urlBuilder: JSONAPIURLBuilder; allowedContentTypes: string[]; defaultFetchSettings: FetchSettings; schema: RecordSchema; keyMap?: RecordKeyMap; protected _serializer?: JSONAPISerializer; protected _serializerFor: SerializerForFn; constructor(settings: JSONAPIRequestProcessorSettings); /** * @deprecated since v0.17, use `serializerFor` instead */ get serializer(): JSONAPISerializer; get serializerFor(): SerializerForFn; fetch(url: string, customSettings?: FetchSettings): Promise<JSONAPIResponse>; initFetchSettings(customSettings?: FetchSettings): FetchSettings; operationsFromDeserializedDocument(deserialized: RecordDocument): RecordOperation[]; buildFetchSettings(request: RecordQueryRequest | RecordTransformRequest): FetchSettings; mergeRequestOptions(options: JSONAPIRequestOptions | undefined | (JSONAPIRequestOptions | undefined)[]): JSONAPIRequestOptions | undefined; /** * @deprecated since v0.17, use `mergeRequestOptions` instead */ customRequestOptions(queryOrTransform: RecordQuery | RecordTransform, queryExpressionOrOperation: RecordQueryExpression | RecordOperation): JSONAPIRequestOptions | undefined; preprocessResponseDocument(document: ResourceDocument | undefined, request: RecordQueryRequest | RecordTransformRequest): void; protected responseHasContent(response: Response, ignoreUnrecognizedContent?: boolean): boolean; protected initDefaultFetchSettings(settings: JSONAPIRequestProcessorSettings): void; protected handleFetchResponse(response: Response): Promise<JSONAPIResponse>; protected handleFetchResponseError(response: Response, data?: unknown): Promise<Error>; protected handleFetchError(e: Error | string): Promise<Error>; }