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.

Type parameters

  • T

Hierarchy

Implements

Index

Constructors

constructor

Properties

componentName

componentName: string

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

Abstract serializeGroupSymbol

serializeGroupSymbol: any

The symbol representing the group this serializer belongs to.

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 | undefined, context?: any): any
  • off(name: string | undefined, callback?: EventCallback, context?: any): any

on

  • on(eventMap: EventMap, context?: any): any
  • on(eventMap: EventMap, callback?: EventCallback, context?: any, priority?: undefined | number): any
  • on(name: string, callback: EventCallback, context?: any, priority?: undefined | 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

Abstract serializeGroup

  • serializeGroup(instance: unknown): boolean
  • 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) { return instance instanceof Reflection }
     serializeGroupSymbol = Reflection;
    }

    Use the Type class to group all type based serializers:

    class TypeSerializer {
     serializeGroup(instance) { return instance instanceof Type }
     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 do not need to declare a predicate nor a group.

    Parameters

    • instance: unknown

    Returns boolean

stopListening

Abstract supports

  • supports(item: unknown): boolean

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