Options
All
  • Public
  • Public/Protected
  • All
Menu

Class SerializerComponent<T>

Represents Serializer plugin component.

Like Converter plugins each Serializer plugin defines a predicate that instructs if an object can be serialized by it, this is done dynamically at runtime via a supports method.

Additionally, each Serializer plugin must defines a predicate that instructs the group it belongs to.

Grouping serializers is required due to performance, we don't need to check all the reflection serializers when we are looking for type (or any other) serializers.

Serializer will compare the function referenced in serializeGroup for each serializer component instance, this is why, when extending SerializerComponent, it is recommended to reference serializeGroup to an existing function instead of creating a new function on for every new plugin. This will ensure maximum performance.

It is also possible to set a get accessor in the prototype to return the same function.

Type parameters

  • T

Hierarchy

Implements

Index

Constructors

constructor

Properties

componentName

componentName: string

The name of this component as set by the @Component decorator.

Abstract serializeGroup

serializeGroup: function

A high-level predicate filtering which group this serializer belongs to. This is a high-level filter before the SerializerComponent.supports predicate filter.

When the filter returns true the group identifier is taken from [[SerializerComponentType.serializeGroupSymbol]].

For example, use the Reflection class class to group all reflection based serializers:

class ReflectionSerializer {
 serializeGroup = instance => instance instanceof Reflection ? Reflection : undefined;
 serializeGroupSymbol = Reflection;
}

Use the Type class to group all type based serializers:

class TypeSerializer {
 serializeGroup = instance => instance instanceof Type ? Type : undefined;
 serializeGroupSymbol = Type;
}

When a serializer component extends a parent serializer component the SERIALIZE_GROUP and SERIALIZE_GROUP_SYMBOL are also inherited so child serializers of the same group does not need to declare a predicate nor a group.

Type declaration

    • (instance: boolean): boolean
    • Parameters

      • instance: boolean

      Returns boolean

Abstract serializeGroupSymbol

serializeGroupSymbol: any

The symbol representing the group this serializer belongs to.

supports

supports: function

Type declaration

    • (item: T): boolean
    • Parameters

      • item: T

      Returns boolean

Static PRIORITY

PRIORITY: number = 0

The priority this serializer should be executed with. A higher priority means the Serializer will be applied earlier.

Accessors

application

owner

priority

  • get priority(): number

Methods

Protected bubble

getOptionDeclarations

Protected initialize

  • initialize(): void

listenTo

listenToOnce

off

  • off(): any
  • off(eventMap: EventMap, context?: any): any
  • off(name: string, callback?: EventCallback, context?: any): any

on

  • on(eventMap: EventMap, context?: any): any
  • on(eventMap: EventMap, callback?: EventCallback, context?: any, priority?: number): any
  • on(name: string, callback: EventCallback, context?: any, priority?: number): any

once

  • once(eventMap: EventMap, context?: any): any
  • once(name: string, callback: EventCallback, context?: any, priority?: any): any
  • Bind an event to only be triggered a single time. After the first time the callback is invoked, its listener will be removed. If multiple events are passed in using the space-separated syntax, the handler will fire once for each event, not once for a combination of all events.

    Parameters

    • eventMap: EventMap
    • Optional context: any

    Returns any

  • Parameters

    • name: string
    • callback: EventCallback
    • Optional context: any
    • Optional priority: any

    Returns any

stopListening

Abstract toObject

  • toObject(item: T, obj?: any): any

trigger

  • Trigger one or many events, firing all bound callbacks. Callbacks are passed the same arguments as trigger is, apart from the event name (unless you're listening on "all", which will cause your callback to receive the true name of the event as the first argument).

    Parameters

    Returns this

Generated using TypeDoc