CancelingEmploymentUnavailableForEmployee

Type parameters

T: SuperConstructor

Hierarchy

  • DomainError

    CancelingEmploymentUnavailableForEmployee

Implements

  • Definable
  • Hookable
  • Versionable
  • Ejsonable

Index

Constructors

Properties

Methods

Constructors

constructor

+ new CancelingEmploymentUnavailableForEmployee(employeeId: string): CancelingEmploymentUnavailableForEmployee

Overrides void

Parameters:

NameType
employeeIdstring

Returns: CancelingEmploymentUnavailableForEmployee

Properties

Optional code

code? : number

Inherited from CancelingEmploymentUnavailableForEmployee.code

Overrides StateError.code


message

message: string

Inherited from CancelingEmploymentUnavailableForEmployee.message

Overrides StateError.message


name

name: string

Inherited from CancelingEmploymentUnavailableForEmployee.name

Overrides StateError.name


Optional schemaVersion

schemaVersion? : number

Inherited from CancelingEmploymentUnavailableForEmployee.schemaVersion

Overrides void


Optional stack

stack? : string

Inherited from CancelingEmploymentUnavailableForEmployee.stack

Overrides StateError.stack

Methods

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

class Person extends DefinableMixin {
firstName: string;
lastName: string;
age: number;
constructor(firstName: string, lastName: string, age: number) {
super();
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
}
}
const firstPerson = new Person('Jane', 'Doe', 28);
const secondPerson = new Person('Jane', 'Doe', 28);
expect(firstPerson.equals(secondPerson)).to.be.true;

example

const firstPerson = new Person('Jane', 'Doe', 28);
const secondPerson = new Person('John', 'Doe', 30);
expect(firstPerson.equals(secondPerson)).to.be.false;

example

const firstPerson = new Person('Jane', 'Doe', 28);
const secondPerson = {firstName: 'John', lastName: 'Doe', age: 30);
expect(firstPerson.equals(secondPerson)).to.be.false;

Parameters:

NameTypeDescription
otheranyOther instance of DefinableMixin.

Returns: boolean

Returns true if other instance of DefinableMixin is equal, else false.


fillErrorProps

fillErrorProps(props: ErrorProps): ErrorProps

Inherited from StateError.fillErrorProps

Parameters:

NameType
propsErrorProps

Returns: ErrorProps


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).


getHook

getHook(action: string, id: string): Hook | undefined

Inherited from CreateEmployee.getHook

Returns hook for action and id.

example

class MyClass extends HookableMixin {}
const hook = sinon.spy();
MyClass.prototype.registerHook('onConstruction', 'my-hook', hook);
expect(MyClass.prototype.getHook('onConstruction', 'my-hook')).to.be.equal(hook);

Parameters:

NameTypeDescription
actionstringAction for which hook is resolved.
idstringIdentifier 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:

NameTypeDescription
actionstringAction for which hook is resolved.
idstringIdentifier 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:

NameTypeDescription
actionstringAction for which hooks are resolved.

Returns: Mappings

Collection of hooks.


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:

NameTypeDescription
schemaVersionnumberSchema 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.


getPropTypes

getPropTypes(): Props

Inherited from CreateEmployee.getPropTypes

Returns class properties types from whole inheritance tree.

example

@define()
class MyClass extends DefinableMixin {
stringKey: string
constructor(props: Record<keyof any, any>) {
super()
Object.assign(this, props);
}
}
expect(new MyClass({stringKey: 'my-string'}).getPropTypes()).to.be.eql({
stringKey: PropTypes.instanceOf(String)
})

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

@define()
class MyClass extends Struct {
stringKey = 'my-string';
numberKey = 1337;
constructor(props: Partial<MyClass>) {
super();
Object.assign(this, this.processProps(props));
}
}
expect(new MyClass().getPropertyInitializers()).to.be.eql({
stringKey: 'my-string',
numberKey: 1337
})

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.


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:

NameTypeDescription
actionstringAction for which hook is existence is evaluated.

Returns: boolean

Returns true if hooks for action exists, else false.


hasHook

hasHook(action: string, id: string): boolean

Inherited from CreateEmployee.hasHook

Evaluates if hook for action with id is registered.

Parameters:

NameTypeDescription
actionstringAction for which hook is existence is evaluated.
idstringIdentifier 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:

NameTypeDescription
schemaVersionnumberSchema version.

Returns: boolean

Returns true if legacy transformer for schema version is registered, 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:

NameTypeDescription
actionstringAction for which hook will be registered(like onConstruction, onSend, onPublish etc.)
idstringIdentifier under which hook will be registered for further reference.
hookHookHook 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:

NameTypeDescription
schemaVersionnumberSchema version.
transformerHookTransformer function.

Returns: void


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

import {expect} from 'chai';
import {HookableMixin} from 'eveble'
class Document extends HookableMixin {
content: string;
version: number;
constructor(props: Record<keyof any, any>) {
super();
const processedProps = { ...props };
const hooks = this.getHooks('onConstruction');
for (const hook of Object.values(hooks)) {
hook.bind(this)(processedProps);
}
Object.assign(this, processedProps);
}
}
const versionable = (props: Record<keyof any, any>) => {
if (props.version === undefined) {
props.version = 0;
}
return props;
};
Document.prototype.registerHook('onConstruction', 'versionable', versionable);
const newDoc = new Document({ content: 'My document content' });
expect(newDoc.version).to.be.equal(0);

Parameters:

NameTypeDefaultDescription
actionstring-Action for which hook will be registered(like onConstruction, onSend, onPublish etc.)
idstring-Identifier under which hook will be registered for further reference.
hookHook-Hook as a function matching declaration for required action that will be invoked upon action.
shouldOverridebooleanfalseFlag 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:

NameTypeDefaultDescription
schemaVersionnumber-Schema version.
transformerHook-Transformer function.
shouldOverridebooleanfalseFlag 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

class MyClass extends HookableMixin {}
const hook = sinon.spy();
MyClass.prototype.registerHook('onConstruction', 'my-hook', hook);
MyClass.prototype.removeHook('onConstruction', 'my-hook')
expect(MyClass.prototype.getHook('onConstruction', 'my-hook')).to.be.undefined;

Parameters:

NameTypeDescription
actionstringAction for which hook is removed.
idstringIdentifier under which hook was was registered.

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

@define('Address')
class Address extends Serializable {
city: string;
street: string;
}
@define('Person')
class Person extends Serializable {
firstName: string;
lastName: string;
address?: Address;
}
const person = new Person({
firstName: 'Jane',
lastName: 'Doe',
address: new Address({
city: 'New York',
street: 'Wall Street',
}),
});
expect(person.toJSONValue()).to.be.eql({
firstName: 'Jane',
lastName: 'Doe',
address: {
city: 'New York',
street: 'Wall Street',
},
});
**Returns:** *Record‹string, any*
Normalized value as JSON-compatible without type identifers.
___
### toPlainObject
**toPlainObject**(): *[Props](../modules/types.md#props)*
*Inherited from [CreateEmployee](createemployee.md).[toPlainObject](createemployee.md#toplainobject)*
Converts properties to plain object.
**`remarks`**
**Loosing object references is required** since in scenarios when properties resolved
from `toPlainObject` are transformed - in such changes to the modified plain object
will cascade to original instance(**THIS** instance, since properties are **referenced**).
**`example`**
```ts
@define()
class Point extends DefinableMixin {
x: number;
y: number;
z: number;
}
const point = new Point({x: 1, y: 2, z: 3})
expect(point.toPlainObject()).to.be.eql({x: 1, y: 2, z: 3});

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:

NameTypeDescription
propsPropsProperties 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

@define()
class MyClass extends DefinableMixin {
stringKey: string
constructor(props: Record<keyof any, any>) {
super()
Object.assign(this, props);
}
}
const instance = new MyClass({stringKey: 'my-string'});
expect(
() => instance.validateProps({stringKey: 1337}, this.getPropTypes())
).to.throw(ValidationError)

Parameters:

NameTypeDefaultDescription
propsProps{}Properties to validate.
propTypesPropTypes-Properties types.
isStrictbooleantrueFlag indicating that validation should be done in strict mode.

Returns: boolean

Returns true if properties are valid, else throws.


Static getPropTypes

getPropTypes(): Props

Inherited from CreateEmployee.getPropTypes

Returns class properties types from whole inheritance tree.

example

@define()
class MyClass extends DefinableMixin {
stringKey: string
constructor(props: Record<keyof any, any>) {
super()
Object.assign(this, props);
}
}
expect(MyClass.getPropTypes()).to.be.eql({
stringKey: PropTypes.instanceOf(String)
})

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

@define()
class MyClass extends Struct {
stringKey = 'my-string';
numberKey = 1337;
constructor(props: Partial<MyClass>) {
super();
Object.assign(this, this.processProps(props));
}
}
expect(MyClass.getPropertyInitializers()).to.be.eql({
stringKey: 'my-string',
numberKey: 1337
})

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