UNPKG

@orbit/jsonapi

Version:

JSON:API support for Orbit.

39 lines (38 loc) 2.16 kB
import { FilterSpecifier, RecordKeyMap, PageSpecifier, SortSpecifier } from '@orbit/records'; import { Dict } from '@orbit/utils'; import { JSONAPISerializer } from './jsonapi-serializer'; import { SerializerForFn } from '@orbit/serializers'; import { RecordQueryRequest } from './lib/query-requests'; import { RecordTransformRequest } from './lib/transform-requests'; export interface JSONAPIURLBuilderSettings { host?: string; namespace?: string; serializer?: JSONAPISerializer; serializerFor: SerializerForFn; keyMap?: RecordKeyMap; } export declare class JSONAPIURLBuilder { host?: string; namespace?: string; serializerFor: SerializerForFn; serializer?: JSONAPISerializer; keyMap?: RecordKeyMap; constructor(settings: JSONAPIURLBuilderSettings); resourceNamespace(type?: string): string | undefined; resourceHost(type?: string): string | undefined; resourceURL(type: string, id?: string): string; resourcePath(type: string, id?: string): string; resourceRelationshipURL(type: string, id: string, relationship: string): string; relatedResourceURL(type: string, id: string, relationship: string): string; buildFilterParam(filters: FilterSpecifier[] | Dict<unknown | unknown[]>, request?: RecordQueryRequest | RecordTransformRequest): Dict<unknown>[]; buildSortParam(sortSpecifiers: (SortSpecifier | string)[] | string, request?: RecordQueryRequest | RecordTransformRequest): string; buildPageParam(pageSpecifier: PageSpecifier, request?: RecordQueryRequest | RecordTransformRequest): Dict<unknown>; buildIncludeParam(includeSpecifier: string | string[] | string[][], request?: RecordQueryRequest | RecordTransformRequest): string; buildFieldsParam(fieldsSpecifier: Dict<string | string[]>, request?: RecordQueryRequest | RecordTransformRequest): Dict<string>; appendQueryParams(url: string, params: Dict<string>): string; protected serializeFieldParam(field: string, options?: { type?: string; kind?: 'attribute' | 'relationship'; }): string; protected serializeRelationshipInPath(type: string | undefined, relationship: string): string; }