AcceptTask
Type parameters
▪ T: SuperConstructor
Hierarchy
Command‹AcceptTask›
↳ AcceptTask
Implements
- Definable
- Hookable
- Ejsonable
- Message
- Command
- Identifiable
Index
Constructors
Properties
Methods
- assignMetadata
- equals
- getActions
- getAssignment
- getCorrelationId
- getHook
- getHookOrThrow
- getHooks
- getId
- getLegacyTransformer
- getLegacyTransformers
- getMetadata
- getPropTypes
- getPropertyInitializers
- getSchemaVersion
- getTimestamp
- getTypeName
- hasAction
- hasCorrelationId
- hasHook
- hasLegacyTransformer
- hasMetadata
- in
- isDeliverable
- isScheduled
- overrideHook
- overrideLegacyTransformer
- processSerializableList
- registerHook
- registerLegacyTransformer
- removeHook
- schedule
- setCorrelationId
- toJSONValue
- toPlainObject
- toString
- transformLegacyProps
- typeName
- validateProps
- disableSerializableLists
- enableSerializableLists
- from
- getPropTypes
- getPropertyInitializers
- getTypeName
- toString
- typeName
Constructors
constructor
+ new AcceptTask(props
: ConstructorType‹AcceptTask› & object): AcceptTask
Inherited from CreateEmployee.constructor
Overrides void
Creates an instance of Message.
Parameters:
Name | Type | Description |
---|---|---|
props | ConstructorType‹AcceptTask› & object | Properties matching generic T with targetId as `Guid |
Returns: AcceptTask
Properties
id
• id: Guid
Optional
metadata
• metadata? : Record‹string, any›
Inherited from CreateEmployee.metadata
remarks
Since Command & Event are frozen after construction, metadata
property must be assigning on construction. This ensures that
content of message is immutable; however metadata as an object will
be unaffected by Object.freeze - thus allowing for additional data
to be assigned later on.
Exposed as optional - but always assigned with use of
Message.prototype.processProps
for easier interaction.
Optional
schemaVersion
• schemaVersion? : number
Inherited from CreateEmployee.schemaVersion
Overrides void
targetId
• targetId: Guid | string
Inherited from CreateEmployee.targetId
Optional
timestamp
• timestamp? : Date
Inherited from CreateEmployee.timestamp
remarks
Exposed as optional - but always assigned with use of
Message.prototype.processProps
for easier interaction.
Methods
assignMetadata
▸ assignMetadata(props
: Record‹string, any›): void
Inherited from CreateEmployee.assignMetadata
Assigns metadata to message.
Parameters:
Name | Type | Description |
---|---|---|
props | Record‹string, any› | Metadata properties object with all information related to Message . |
Returns: void
equals
▸ equals(other
: any): boolean
Inherited from CreateEmployee.equals
Evaluates if value and value's type of passed other instance are equal to current one.
example
example
example
Parameters:
Name | Type | Description |
---|---|---|
other | any | Other instance of DefinableMixin. |
Returns: boolean
Returns true
if other instance of DefinableMixin is equal, else false
.
getActions
▸ getActions(): Actions
Inherited from CreateEmployee.getActions
Returns a collection of all available actions with matching registered hooks as nested collection.
Returns: Actions
Collection of actions(key) with matching registered hooks as nested collection(value).
getAssignment
▸ getAssignment(): Assignment | undefined
Inherited from CreateEmployee.getAssignment
Returns scheduling assignment if present.
Returns: Assignment | undefined
Instance of Assignment
, else undefined
.
getCorrelationId
▸ getCorrelationId(key
: string): string | undefined
Inherited from CreateEmployee.getCorrelationId
Returns metadata correlation id for message.
Parameters:
Name | Type | Description |
---|---|---|
key | string | Key under which correlation is set with support of dotted notation for nested objects. |
Returns: string | undefined
String identifier of correlating element.
getHook
▸ getHook(action
: string, id
: string): Hook | undefined
Inherited from CreateEmployee.getHook
Returns hook for action and id.
example
Parameters:
Name | Type | Description |
---|---|---|
action | string | Action for which hook is resolved. |
id | string | Identifier under which hook was was registered. |
Returns: Hook | undefined
Hook as a function
matching declaration, else undefined
.
getHookOrThrow
▸ getHookOrThrow(action
: string, id
: string): Hook
Inherited from CreateEmployee.getHookOrThrow
Returns hook for action and id or throws.
throws
{HandlerNotFoundError}
Thrown if there is no hook registered for action with id.
Parameters:
Name | Type | Description |
---|---|---|
action | string | Action for which hook is resolved. |
id | string | Identifier under which hook was was registered. |
Returns: Hook
Hook as a function
matching declaration, else throws.
getHooks
▸ getHooks(action
: string): Mappings
Inherited from CreateEmployee.getHooks
Returns a collection of all available hooks registered for action.
Parameters:
Name | Type | Description |
---|---|---|
action | string | Action for which hooks are resolved. |
Returns: Mappings
Collection of hooks.
getId
▸ getId(): Guid | string
Inherited from CreateEmployee.getId
Returns command's targeted element by id.
Returns: Guid | string
Command's target identifier as a instance of Guid
or string.
getLegacyTransformer
▸ getLegacyTransformer(schemaVersion
: number): Hook
Inherited from CreateEmployee.getLegacyTransformer
Returns legacy transformer for schema version.
throws
{LegacyTransformerNotFoundError}
Thrown if transformer for schema version can't be found.
Parameters:
Name | Type | Description |
---|---|---|
schemaVersion | number | Schema version. |
Returns: Hook
Legacy transformer for schema version.
getLegacyTransformers
▸ getLegacyTransformers(): LegacyTransformers
Inherited from CreateEmployee.getLegacyTransformers
Returns all available legacy transformers.
Returns: LegacyTransformers
Map instance of all registered legacy transformers with number version as a key and transformer function as a value.
getMetadata
▸ getMetadata(): Record‹string, any›
Inherited from CreateEmployee.getMetadata
Returns metadata assigned to the message.
Returns: Record‹string, any›
Returns metadata assigned to the message as an object.
getPropTypes
▸ getPropTypes(): Props
Inherited from CreateEmployee.getPropTypes
Returns class properties types from whole inheritance tree.
example
Returns: Props
Plain object representation of properties types.
getPropertyInitializers
▸ getPropertyInitializers(): Props
Inherited from CreateEmployee.getPropertyInitializers
Returns default values metadata from property initializers conversion for whole inheritance tree.
example
Returns: Props
Default values for properties.
getSchemaVersion
▸ getSchemaVersion(): number | undefined
Inherited from CreateEmployee.getSchemaVersion
Returns current instance schema version.
Returns: number | undefined
Schema version as a number, else undefined
.
getTimestamp
▸ getTimestamp(): Date
Inherited from CreateEmployee.getTimestamp
Returns time when message was created.
Returns: Date
Returns instance of Date
.
getTypeName
▸ getTypeName(): TypeName
Inherited from CreateEmployee.getTypeName
Returns definable type name.
Returns: TypeName
Type name as a string.
hasAction
▸ hasAction(action
: string): boolean
Inherited from CreateEmployee.hasAction
Evaluates if hooks for action are registered.
Parameters:
Name | Type | Description |
---|---|---|
action | string | Action for which hook is existence is evaluated. |
Returns: boolean
Returns true if hooks for action exists, else false.
hasCorrelationId
▸ hasCorrelationId(key
: string): boolean
Inherited from CreateEmployee.hasCorrelationId
Evaluates if message contains correlation id on metadata.
Parameters:
Name | Type | Description |
---|---|---|
key | string | Key under which correlation is set with support of dotted notation for nested objects. |
Returns: boolean
Returns true
if metadata contains correlated element, else false
.
hasHook
▸ hasHook(action
: string, id
: string): boolean
Inherited from CreateEmployee.hasHook
Evaluates if hook for action with id is registered.
Parameters:
Name | Type | Description |
---|---|---|
action | string | Action for which hook is existence is evaluated. |
id | string | Identifier under which hook was was registered. |
Returns: boolean
Returns true if hook exists, else false.
hasLegacyTransformer
▸ hasLegacyTransformer(schemaVersion
: number): boolean
Inherited from CreateEmployee.hasLegacyTransformer
Evaluates is there is registered legacy transformer for schema version.
Parameters:
Name | Type | Description |
---|---|---|
schemaVersion | number | Schema version. |
Returns: boolean
Returns true
if legacy transformer for schema version is registered, else false
.
hasMetadata
▸ hasMetadata(): boolean
Inherited from CreateEmployee.hasMetadata
Evaluates if there is assigned metadata to message.
Returns: boolean
Returns true if message
has assigned metadata, else false
.
in
▸ in‹T›(listName
: string): List‹T›
Inherited from CreateEmployee.in
Returns List
for Serializable
array.
throws
{InvalidListError}
Thrown if the provided container name does not point to list of supported Serializables
.
example
Type parameters:
▪ T
Parameters:
Name | Type | Description |
---|---|---|
listName | string | Property name of the Serializable list on this instance. |
Returns: List‹T›
Instance of List
implementation.
isDeliverable
▸ isDeliverable(): boolean
Inherited from CreateEmployee.isDeliverable
Evaluates if message is deliverable(i.e. is not scheduled or is past delivery time).
Returns: boolean
Returns true
if command is deliverable, else false
.
isScheduled
▸ isScheduled(): boolean
Inherited from CreateEmployee.isScheduled
Evaluates if command is scheduled for delivery.
Returns: boolean
Returns true
if command is scheduled, else false
.
overrideHook
▸ overrideHook(action
: string, id
: string, hook
: Hook): void
Inherited from CreateEmployee.overrideHook
Overrides registered hook by action and id or registers a new one.
throws
{InvalidHookActionError}
Thrown if the the action argument is not a string
.
throws
{InvalidHookIdError}
Thrown if the the id argument is not a string
.
Parameters:
Name | Type | Description |
---|---|---|
action | string | Action for which hook will be registered(like onConstruction , onSend , onPublish etc.) |
id | string | Identifier under which hook will be registered for further reference. |
hook | Hook | Hook as a function matching declaration for required action that will be invoked upon action. |
Returns: void
overrideLegacyTransformer
▸ overrideLegacyTransformer(schemaVersion
: number, transformer
: Hook): void
Inherited from CreateEmployee.overrideLegacyTransformer
Overrides registered transformer by schema version or registers a new one.
throws
{InvalidSchemaVersionError}
Thrown if the the schema version argument is not a number.
Parameters:
Name | Type | Description |
---|---|---|
schemaVersion | number | Schema version. |
transformer | Hook | Transformer function. |
Returns: void
processSerializableList
▸ processSerializableList(props
: Props): Props
Inherited from CreateEmployee.processSerializableList
Processes properties for Serializable by wrapping each serializable list property with List
.
Parameters:
Name | Type | Default | Description |
---|---|---|---|
props | Props | {} | Properties of the type required for construction. |
Returns: Props
Processed properties with any registered onConstruction
hooks and
validates them against prop types.
registerHook
▸ registerHook(action
: string, id
: string, hook
: Hook, shouldOverride
: boolean): void
Inherited from CreateEmployee.registerHook
Registers hook by action type and id.
throws
{InvalidHookActionError}
Thrown if the the action argument is not a string.
throws
{InvalidHookIdError}
Thrown if the the id argument is not a string.
throws
{HookAlreadyExistsError}
Thrown if the existing hook with id would be overridden.
example
Parameters:
Name | Type | Default | Description |
---|---|---|---|
action | string | - | Action for which hook will be registered(like onConstruction , onSend , onPublish etc.) |
id | string | - | Identifier under which hook will be registered for further reference. |
hook | Hook | - | Hook as a function matching declaration for required action that will be invoked upon action. |
shouldOverride | boolean | false | Flag indicating that hook should be overridden if exist. |
Returns: void
registerLegacyTransformer
▸ registerLegacyTransformer(schemaVersion
: number, transformer
: Hook, shouldOverride
: boolean): void
Inherited from CreateEmployee.registerLegacyTransformer
Registers legacy transformer for version.
throws
{InvalidSchemaVersionError}
Thrown if the the schema version argument is not a number.
throws
{LegacyTransformerAlreadyExistsError}
Thrown if transformer for version would overridden without explicit call.
Parameters:
Name | Type | Default | Description |
---|---|---|---|
schemaVersion | number | - | Schema version. |
transformer | Hook | - | Transformer function. |
shouldOverride | boolean | false | Flag indicating that transformer should be overridden if exist. |
Returns: void
removeHook
▸ removeHook(action
: string, id
: string): void
Inherited from CreateEmployee.removeHook
Removes a hook by action and id.
example
Parameters:
Name | Type | Description |
---|---|---|
action | string | Action for which hook is removed. |
id | string | Identifier under which hook was was registered. |
Returns: void
schedule
▸ schedule(assignment
: Assignment): void
Inherited from CreateEmployee.schedule
Schedules command for delivery at specific time.
Parameters:
Name | Type | Description |
---|---|---|
assignment | Assignment | Scheduling assignment information. |
Returns: void
setCorrelationId
▸ setCorrelationId(key
: string, id
: Stringifiable): void
Inherited from CreateEmployee.setCorrelationId
Sets correlation id metadata on message.
remarks
Databases like MongoDB does not support object keys with dots like: my.nested.key
Since for correlation key - namespaced 'type name' like MyNamespace.MyMessage
can be used we utilize lodash'es 'set' method to construct nested object from
such notation.
Parameters:
Name | Type | Description |
---|---|---|
key | string | Key under which correlation is set with support of dotted notation for nested objects. |
id | Stringifiable | Identifier of correlating element. |
Returns: void
toJSONValue
▸ toJSONValue(): Record‹string, any›
Inherited from CreateEmployee.toJSONValue
Serializes value into a JSON-compatible value. It preserves all custom field types, however the initial value type is not saved.
example
Returns: Props
Public properties with assigned values as plain object.
toString
▸ toString(): TypeName
Inherited from CreateEmployee.toString
Returns definable type name
Returns: TypeName
Type name as a string.
transformLegacyProps
▸ transformLegacyProps(props
: Props): Props
Inherited from CreateEmployee.transformLegacyProps
Registrable hook for transforming legacy schema.
Parameters:
Name | Type | Description |
---|---|---|
props | Props | Properties object to be transformed. |
Returns: Props
Transformed legacy properties or their unchanged state if up to date.
typeName
▸ typeName(): TypeName
Inherited from CreateEmployee.typeName
alias
getTypeName
remarks
Compatibility for EJSON serializer: @eveble/ejson
Returns: TypeName
validateProps
▸ validateProps(props
: Props, propTypes
: PropTypes, isStrict
: boolean): boolean
Inherited from CreateEmployee.validateProps
Validates if provided properties matches prop types.
throws
{ValidationError}
Thrown if the passed properties do not match prop types.
remarks
Disabling of runtime validation is possible via Kernel's configuration(and by
that env flags also) or by annotating class with @validable(false)
.
This is useful when there is external layer(like transportation) that does all the heavy lifting of validation and there are no other sources of incoming data beside points that is handled by layer.
Use env EVEBLE_VALIDATION_TYPE
set to manual
to disable validation on
initialization. You ca re-enable it again on your application configuration via
path validation.type
set to runtime
before staring application.
example
Parameters:
Name | Type | Default | Description |
---|---|---|---|
props | Props | {} | Properties to validate. |
propTypes | PropTypes | - | Properties types. |
isStrict | boolean | true | Flag indicating that validation should be done in strict mode. |
Returns: boolean
Returns true
if properties are valid, else throws.
Static
disableSerializableLists
▸ disableSerializableLists(): void
Inherited from CreateEmployee.disableSerializableLists
Disables conversion of serializable lists to List
instances.
Returns: void
Static
enableSerializableLists
▸ enableSerializableLists(): void
Inherited from CreateEmployee.enableSerializableLists
Enables conversion of serializable lists to List
instances.
remarks
Since using mixins with polytype on extendable classes like: Serializable
, Entity
,
EventSourceable
, ValueObject
will result in loosing all registered hooks on metadata
- this ensures that hook can be easily re-applied.
Returns: void
Static
from
▸ from(...sources
: Record‹string, any›[]): any
Inherited from CreateEmployee.from
Create an Serializable
from multiple property sources. Have similar api
like Object.assign
.
throws
{ValidationError}
Thrown if the passed properties does not match serializeble's property types.
example
Parameters:
Name | Type | Description |
---|---|---|
...sources | Record‹string, any›[] | One or more source of properties. |
Returns: any
New instance of Serializable
with assigned properties.
Static
getPropTypes
▸ getPropTypes(): Props
Inherited from CreateEmployee.getPropTypes
Returns class properties types from whole inheritance tree.
example
Returns: Props
Plain object representation of properties types.
Static
getPropertyInitializers
▸ getPropertyInitializers(): Props
Inherited from CreateEmployee.getPropertyInitializers
Returns class property initializers for whole inheritance tree.
example
Returns: Props
Plain object representation of property initializers.
Static
getTypeName
▸ getTypeName(): TypeName
Inherited from CreateEmployee.getTypeName
Returns definable type name.
Returns: TypeName
Type name as a string.
Static
toString
▸ toString(): TypeName
Inherited from CreateEmployee.toString
Returns definable type name
Returns: TypeName
Type name as a string.
Static
typeName
▸ typeName(): TypeName
Inherited from CreateEmployee.typeName
alias
getTypeName
remarks
Compatibility for EJSON serializer: @eveble/ejson
Returns: TypeName