Skip to main content

Module: jsonapi

Namespaces

Classes

Enhancers

fields

fields<C, I>(...fieldset): (action: Action<C>) => Promise<Action<Awaited<C> & { params: {} }, {}>>

Select the given JSON:API fieldsets for the current context's model. The new fieldsets will be merged with the previous ones.

Type parameters

NameType
Cextends Object
Iextends never

Parameters

NameType
...fieldsetArrayableVariadic<ModelKey<I>>

Returns

fn

▸ (action): Promise<Action<Awaited<C> & { params: {} }, {}>>

Parameters
NameType
actionAction<C>
Returns

Promise<Action<Awaited<C> & { params: {} }, {}>>

Defined in

src/jsonapi/actions/context/enhancers/fields.ts:25


fieldsFor

fieldsFor<C, M>(model, ...fieldset): (action: Action<C>) => Promise<Action<Awaited<C> & { params: {} }, {}>>

Select the given JSON:API fieldsets for the given model. The new fieldsets will be merged with the previous ones.

Type parameters

NameType
Cextends Object
Mextends Model

Parameters

NameType
modelM
...fieldsetArrayableVariadic<ModelKey<M>>

Returns

fn

▸ (action): Promise<Action<Awaited<C> & { params: {} }, {}>>

Parameters
NameType
actionAction<C>
Returns

Promise<Action<Awaited<C> & { params: {} }, {}>>

Defined in

src/jsonapi/actions/context/enhancers/fieldsFor.ts:22


filterBy

filterBy(key, value?): <C>(action: Action<C>) => Promise<Action<Awaited<C> & { params: {} }, {}>>

Filter the JSON:API resource by the given key and value. When key is an object, it will spread the object as a filter values map. The new filter will be merged with the previous ones.

Parameters

NameType
keystring | Dictionary
value?unknown

Returns

fn

▸ <C>(action): Promise<Action<Awaited<C> & { params: {} }, {}>>

Type parameters
NameType
Cextends Object
Parameters
NameType
actionAction<C>
Returns

Promise<Action<Awaited<C> & { params: {} }, {}>>

Defined in

src/jsonapi/actions/context/enhancers/filterBy.ts:17


paginate

paginate(page): <C>(action: Action<C>) => Promise<Action<Awaited<C> & { params: {} }, {}>>

Paginate the JSON:API resource by the given params. JSON:API specification on pagination is agnostic, so page params may be anything used by your implementation.

Parameters

NameType
pageunknown

Returns

fn

▸ <C>(action): Promise<Action<Awaited<C> & { params: {} }, {}>>

Type parameters
NameType
Cextends Object
Parameters
NameType
actionAction<C>
Returns

Promise<Action<Awaited<C> & { params: {} }, {}>>

Defined in

src/jsonapi/actions/context/enhancers/paginate.ts:14


sortBy

sortBy(keys): <C, E>(action: Action<C, E>) => Promise<void>

Sort the JSON:API resource by the given keys and directions. The new sort will be merged with the previous ones. Sorts priority are kept.

Parameters

NameType
keysDictionary<SortDirection>

Returns

fn

▸ <C, E>(action): Promise<void>

Type parameters
NameType
Cextends Object
Eextends Object
Parameters
NameType
actionAction<C, E>
Returns

Promise<void>

Defined in

src/jsonapi/actions/context/enhancers/sortBy.ts:38

sortBy(keys, directions?): <C, E>(action: Action<C, E>) => Promise<void>

Sort the JSON:API resource by the given keys and directions. The new sort will be merged with the previous ones. Sorts priority are kept.

Parameters

NameType
keysArrayable<string>
directions?Arrayable<SortDirection>

Returns

fn

▸ <C, E>(action): Promise<void>

Type parameters
NameType
Cextends Object
Eextends Object
Parameters
NameType
actionAction<C, E>
Returns

Promise<void>

Defined in

src/jsonapi/actions/context/enhancers/sortBy.ts:41


sortByAsc

sortByAsc(...keys): <C, E>(action: Action<C, E>) => Promise<void>

Shortcut for the sortBy function with an asc direction.

Parameters

NameType
...keysArrayableVariadic<string>

Returns

fn

▸ <C, E>(action): Promise<void>

Type parameters
NameType
Cextends Object
Eextends Object
Parameters
NameType
actionAction<C, E>
Returns

Promise<void>

Defined in

src/jsonapi/actions/context/enhancers/sortByAsc.ts:13


sortByDesc

sortByDesc(...keys): <C, E>(action: Action<C, E>) => Promise<void>

Shortcut for the sortBy function with a desc direction.

Parameters

NameType
...keysArrayableVariadic<string>

Returns

fn

▸ <C, E>(action): Promise<void>

Type parameters
NameType
Cextends Object
Eextends Object
Parameters
NameType
actionAction<C, E>
Returns

Promise<void>

Defined in

src/jsonapi/actions/context/enhancers/sortByDesc.ts:13

Other

JsonApiAbstractResource

Ƭ JsonApiAbstractResource: Object

See

JSON:API specification

Type declaration

NameType
attributes?JsonApiAttributes
lid?string
links?JsonApiLinks
meta?JsonApiMeta
relationships?JsonApiRelationships
typestring

Defined in

src/jsonapi/types.ts:52


JsonApiAttributes

Ƭ JsonApiAttributes: Dictionary

See

JSON:API specification

Defined in

src/jsonapi/types.ts:33


JsonApiDocument

Ƭ JsonApiDocument: Object

See

JSON:API specification

Type declaration

NameType
data?JsonApiResource[] | JsonApiResource | JsonApiNewResource | null
errors?JsonApiError[]
included?JsonApiResource[]
jsonapi?{ meta?: JsonApiMeta ; version?: string }
jsonapi.meta?JsonApiMeta
jsonapi.version?string
links?JsonApiLinks
meta?JsonApiMeta

Defined in

src/jsonapi/types.ts:94


JsonApiError

Ƭ JsonApiError: Object

See

JSON:API specification

Type declaration

NameType
code?string
detail?string
meta?JsonApiMeta
source?{ header?: string ; parameter?: string ; pointer?: string }
source.header?string
source.parameter?string
source.pointer?string
status?string
title?string

Defined in

src/jsonapi/types.ts:78


Ƭ JsonApiLink: { href: string ; meta?: JsonApiMeta } | string

See

JSON:API specification

Defined in

src/jsonapi/types.ts:6


Ƭ JsonApiLinks: Dictionary<JsonApiLink>

See

JSON:API specification

Defined in

src/jsonapi/types.ts:14


JsonApiMeta

Ƭ JsonApiMeta: Dictionary<any>

See

JSON:API specification

Defined in

src/jsonapi/types.ts:19


JsonApiNewResource

Ƭ JsonApiNewResource: JsonApiAbstractResource & { id?: string }

See

JSON:API specification

Defined in

src/jsonapi/types.ts:71


JsonApiRelationship

Ƭ JsonApiRelationship: Object

See

JSON:API specification

Type declaration

NameType
data?JsonApiResourceIdentifier[] | JsonApiResourceIdentifier | null
links?JsonApiLinks
meta?JsonApiMeta

Defined in

src/jsonapi/types.ts:38


JsonApiRelationships

Ƭ JsonApiRelationships: Dictionary<JsonApiRelationship>

See

JSON:API specification

Defined in

src/jsonapi/types.ts:47


JsonApiResource

Ƭ JsonApiResource: JsonApiAbstractResource & { id: string }

See

JSON:API specification

Defined in

src/jsonapi/types.ts:64


JsonApiResourceIdentifier

Ƭ JsonApiResourceIdentifier: Object

See

JSON:API specification

Type declaration

NameType
idstring
lid?string
typestring

Defined in

src/jsonapi/types.ts:24


usingDocument

usingDocument<I, DD, D>(data): D & { document: JsonApiDocument = data.deserialized.document }

Append the JSON:API document object to data object. Use it as the parameter of allUsing and oneUsing runners.

Type parameters

NameType
Iextends ModelInstance
DDextends JsonApiDeserializedData<I>
Dextends AllData<Response, DD, I> | OneData<Response, DD, I>

Parameters

NameType
dataD

Returns

D & { document: JsonApiDocument = data.deserialized.document }

Defined in

src/jsonapi/actions/context/runners/usingDocument.ts:10