Skip to main content

Class: JsonApiDeserializer

jsonapi.JsonApiDeserializer

Deserializer implementation for JSON:API.

Hierarchy

Constructors

constructor

new JsonApiDeserializer(config?)

Parameters

NameType
config?ObjectDeserializerConfig

Inherited from

ObjectDeserializer.constructor

Defined in

src/object/objectDeserializer.ts:41

Properties

NON_IDENTIFIED_LOCAL_ID

Static Protected NON_IDENTIFIED_LOCAL_ID: string = '__non_identified__'

Inherited from

ObjectDeserializer.NON_IDENTIFIED_LOCAL_ID

Defined in

src/object/objectDeserializer.ts:39

Methods

configure

configure(config?, override?): void

Parameters

NameTypeDefault value
config?ObjectDeserializerConfigundefined
overridebooleantrue

Returns

void

Inherited from

ObjectDeserializer.configure

Defined in

src/object/objectDeserializer.ts:45


deserialize

deserialize(data, context): Promise<JsonApiDeserializedData<ModelInstance>>

Parameters

NameType
dataResponse
contextObject

Returns

Promise<JsonApiDeserializedData<ModelInstance>>

Inherited from

ObjectDeserializer.deserialize

Defined in

src/object/objectDeserializer.ts:49


deserializeAttributeValue

Protected deserializeAttributeValue(_instance, def, rawValue, _context): Promise<unknown>

Parameters

NameType
_instanceModelInstance
defModelAttribute
rawValueunknown
_contextObject

Returns

Promise<unknown>

Inherited from

ObjectDeserializer.deserializeAttributeValue

Defined in

src/object/objectDeserializer.ts:432


deserializeRelationValue

Protected deserializeRelationValue(extractedData, instancesMap, instance, def, rawValue, context): Promise<undefined | null | ModelInstance | { $MODEL_TYPE: "instance" ; $loaded: Dictionary<true> ; $model: ModelClass<any> ; $original: ModelSnapshot<any> ; $raw: any ; $values: Partial<ModelValues<any>> ; exists: boolean } & ModelDefinitionWritableValues<any> & Readonly<Pick<ModelDefinitionProperties<any>, string>> & ModelDefinitionDescriptors<any>[] | JsonApiNewResource>

Parameters

NameType
extractedDataJsonApiExtractedData
instancesMapdefault<string, ModelIdType, Promise<ModelInstance>>
instanceModelInstance
defModelRelation
rawValueOptional<JsonApiNewResource | JsonApiNewResource[]>
contextObject

Returns

Promise<undefined | null | ModelInstance | { $MODEL_TYPE: "instance" ; $loaded: Dictionary<true> ; $model: ModelClass<any> ; $original: ModelSnapshot<any> ; $raw: any ; $values: Partial<ModelValues<any>> ; exists: boolean } & ModelDefinitionWritableValues<any> & Readonly<Pick<ModelDefinitionProperties<any>, string>> & ModelDefinitionDescriptors<any>[] | JsonApiNewResource>

Inherited from

ObjectDeserializer.deserializeRelationValue

Defined in

src/object/objectDeserializer.ts:443


deserializeResource

Protected deserializeResource(extractedData, instancesMap, resource, context, parent?, relation?): Promise<ModelInstance>

Parameters

NameType
extractedDataJsonApiExtractedData
instancesMapdefault<string, ModelIdType, Promise<ModelInstance>>
resourceJsonApiNewResource
contextObject
parent?ModelInstance
relation?ModelRelation

Returns

Promise<ModelInstance>

Inherited from

ObjectDeserializer.deserializeResource

Defined in

src/object/objectDeserializer.ts:119


deserializeResourceOnInstance

Protected deserializeResourceOnInstance(extractedData, instancesMap, resource, identifier, instance, context): Promise<ModelInstance>

Parameters

NameType
extractedDataJsonApiExtractedData
instancesMapdefault<string, ModelIdType, Promise<ModelInstance>>
resourceJsonApiNewResource
identifierObjectNormalizedIdentifier
instanceModelInstance
contextObject

Returns

Promise<ModelInstance>

Inherited from

ObjectDeserializer.deserializeResourceOnInstance

Defined in

src/object/objectDeserializer.ts:156


extractAttributeValue

Protected extractAttributeValue(_extractedData, resource, serializedKey): Promise<unknown>

Parameters

NameType
_extractedDataJsonApiExtractedData
resourceJsonApiNewResource
serializedKeystring

Returns

Promise<unknown>

Inherit Doc

Overrides

ObjectDeserializer.extractAttributeValue

Defined in

src/jsonapi/jsonApiDeserializer.ts:68


extractData

Protected extractData(response): Promise<{ document: JsonApiDocument ; included: default<string, ModelIdType, JsonApiResource> ; resources: undefined | null | JsonApiResource | JsonApiNewResource | JsonApiResource[] = document.data; response: Response }>

Parameters

NameType
responseResponse

Returns

Promise<{ document: JsonApiDocument ; included: default<string, ModelIdType, JsonApiResource> ; resources: undefined | null | JsonApiResource | JsonApiNewResource | JsonApiResource[] = document.data; response: Response }>

Inherit Doc

Overrides

ObjectDeserializer.extractData

Defined in

src/jsonapi/jsonApiDeserializer.ts:44


extractIdentifier

Protected extractIdentifier(resource, context, parent?, relation?): Promise<ObjectNormalizedIdentifier>

Parameters

NameType
resourceJsonApiNewResource
contextObject
parent?ModelInstance
relation?ModelRelation

Returns

Promise<ObjectNormalizedIdentifier>

Inherited from

ObjectDeserializer.extractIdentifier

Defined in

src/object/objectDeserializer.ts:218


extractIncluded

Protected extractIncluded(extractedData, identifier): JsonApiNewResource

Extract an included JSON:API resource from extracted data.

Parameters

NameType
extractedDataJsonApiExtractedData
identifierJsonApiResourceIdentifier

Returns

JsonApiNewResource

Defined in

src/jsonapi/jsonApiDeserializer.ts:102


extractLocalId

Protected extractLocalId(_resource, identifier, _context): Promise<ModelIdType>

Parameters

NameType
_resourceJsonApiNewResource
identifierObjectNormalizedIdentifier
_contextObject

Returns

Promise<ModelIdType>

Inherited from

ObjectDeserializer.extractLocalId

Defined in

src/object/objectDeserializer.ts:248


extractOptionalIdentifier

Protected extractOptionalIdentifier(resource): Promise<JsonApiNewResource>

Parameters

NameType
resourceJsonApiNewResource

Returns

Promise<JsonApiNewResource>

Inherit Doc

Overrides

ObjectDeserializer.extractOptionalIdentifier

Defined in

src/jsonapi/jsonApiDeserializer.ts:61


extractPropValue

Protected extractPropValue(_resource, _serializedKey, _context): Promise<unknown>

Parameters

NameType
_resourceJsonApiNewResource
_serializedKeystring
_contextObject

Returns

Promise<unknown>

Inherited from

ObjectDeserializer.extractPropValue

Defined in

src/object/objectDeserializer.ts:328


extractRelationValue

Protected extractRelationValue(extractedData, resource, serializedKey): Promise<undefined | null | JsonApiNewResource | JsonApiNewResource[]>

Parameters

NameType
extractedDataJsonApiExtractedData
resourceJsonApiNewResource
serializedKeystring

Returns

Promise<undefined | null | JsonApiNewResource | JsonApiNewResource[]>

Inherit Doc

Overrides

ObjectDeserializer.extractRelationValue

Defined in

src/jsonapi/jsonApiDeserializer.ts:79


findInstance

Protected findInstance(_resource, identifier, context): Promise<null | ModelInstance>

Parameters

NameType
_resourceJsonApiNewResource
identifierObjectNormalizedIdentifier
contextObject

Returns

Promise<null | ModelInstance>

Inherited from

ObjectDeserializer.findInstance

Defined in

src/object/objectDeserializer.ts:265


findOrMakeInstance

Protected findOrMakeInstance(resource, identifier, context): Promise<ModelInstance>

Parameters

NameType
resourceJsonApiNewResource
identifierObjectNormalizedIdentifier
contextObject

Returns

Promise<ModelInstance>

Inherited from

ObjectDeserializer.findOrMakeInstance

Defined in

src/object/objectDeserializer.ts:256


hydrateAttributeInInstance

Protected hydrateAttributeInInstance(instance, def, value): Promise<void>

Parameters

NameType
instanceModelInstance
defModelAttribute
valueunknown

Returns

Promise<void>

Inherited from

ObjectDeserializer.hydrateAttributeInInstance

Defined in

src/object/objectDeserializer.ts:369


hydratePropInInstance

Protected hydratePropInInstance(instance, def, value): void

Parameters

NameType
instanceModelInstance
defModelRelation | ModelAttribute
valueunknown

Returns

void

Inherited from

ObjectDeserializer.hydratePropInInstance

Defined in

src/object/objectDeserializer.ts:360


hydrateRelationInInstance

Protected hydrateRelationInInstance(instance, def, value): Promise<void>

Parameters

NameType
instanceModelInstance
defModelRelation
valueunknown

Returns

Promise<void>

Inherited from

ObjectDeserializer.hydrateRelationInInstance

Defined in

src/object/objectDeserializer.ts:377


initInstancesMap

Protected initInstancesMap(): Promise<default<string, ModelIdType, Promise<ModelInstance>>>

Returns

Promise<default<string, ModelIdType, Promise<ModelInstance>>>

Inherited from

ObjectDeserializer.initInstancesMap

Defined in

src/object/objectDeserializer.ts:83


makeDeserializedData

Protected makeDeserializedData(instances, extractedData): Promise<{ document: JsonApiDocument = extractedData.document; instances: ModelInstance[] ; response: Response = extractedData.response }>

Parameters

NameType
instancesModelInstance[]
extractedDataJsonApiExtractedData

Returns

Promise<{ document: JsonApiDocument = extractedData.document; instances: ModelInstance[] ; response: Response = extractedData.response }>

Inherit Doc

Overrides

ObjectDeserializer.makeDeserializedData

Defined in

src/jsonapi/jsonApiDeserializer.ts:30


makeInstance

Protected makeInstance(_resource, identifier, context): Promise<ModelInstance>

Parameters

NameType
_resourceJsonApiNewResource
identifierObjectNormalizedIdentifier
contextObject

Returns

Promise<ModelInstance>

Inherited from

ObjectDeserializer.makeInstance

Defined in

src/object/objectDeserializer.ts:283


prepareInstancesMap

Protected prepareInstancesMap(extractedData, instancesMap, context): Promise<void>

Parameters

NameType
extractedDataJsonApiExtractedData
instancesMapdefault<string, ModelIdType, Promise<ModelInstance>>
contextObject

Returns

Promise<void>

Inherited from

ObjectDeserializer.prepareInstancesMap

Defined in

src/object/objectDeserializer.ts:87


releaseInstance

Protected releaseInstance(resource, instance, context): Promise<void>

Parameters

NameType
resourceJsonApiNewResource
instanceModelInstance
contextObject

Returns

Promise<void>

Inherited from

ObjectDeserializer.releaseInstance

Defined in

src/object/objectDeserializer.ts:306


serializeAttributeKey

Protected serializeAttributeKey(instance, def, _context): Promise<string>

Parameters

NameType
instanceModelInstance
defModelAttribute
_contextObject

Returns

Promise<string>

Inherited from

ObjectDeserializer.serializeAttributeKey

Defined in

src/object/objectDeserializer.ts:388


serializeRelationKey

Protected serializeRelationKey(instance, def, _context): Promise<string>

Parameters

NameType
instanceModelInstance
defModelRelation
_contextObject

Returns

Promise<string>

Inherited from

ObjectDeserializer.serializeRelationKey

Defined in

src/object/objectDeserializer.ts:396


shouldDeserializeAttribute

Protected shouldDeserializeAttribute(instance, def, rawValue, context): Promise<boolean>

Parameters

NameType
instanceModelInstance
defModelAttribute
rawValueunknown
contextObject

Returns

Promise<boolean>

Inherited from

ObjectDeserializer.shouldDeserializeAttribute

Defined in

src/object/objectDeserializer.ts:404


shouldDeserializeProp

Protected shouldDeserializeProp(_instance, def, rawValue, _context): Promise<boolean>

Parameters

NameType
_instanceModelInstance
defModelRelation | ModelAttribute
rawValueunknown
_contextObject

Returns

Promise<boolean>

Inherited from

ObjectDeserializer.shouldDeserializeProp

Defined in

src/object/objectDeserializer.ts:422


shouldDeserializeRelation

Protected shouldDeserializeRelation(instance, def, rawValue, context): Promise<boolean>

Parameters

NameType
instanceModelInstance
defModelRelation
rawValueunknown
contextObject

Returns

Promise<boolean>

Inherited from

ObjectDeserializer.shouldDeserializeRelation

Defined in

src/object/objectDeserializer.ts:413